5 votes

(12)Impossible d'allouer de la mémoire : impossible de créer un processus enfant : /opt/suphp/sbin/suphp

Le contexte :

J'ai un site web CMS personnalisé qui est piloté par MYSQL. Un script php qui se connecte à un db pour charger le contenu de la page web.

Chaque page chargée se connecte à la db en utilisant le même script.

Cela inclut également les fichiers php, js et css.

Le script se connecte à la db comme suit :

$my_link=mysql_connect("localhost",$dbusername,$dbpassword);

@mysql_select_db($database) or databaserror();

L'une des pages contient le texte suivant

<link href="stackoverflow.com/administrator/files/master.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="stackoverflow.com/administrator/files/cbdb-btn.css" />
<link rel="stylesheet" type="text/css" href="stackoverflow.com/administrator/files/BreadCrumb.css"  />
<link rel="stylesheet" type="text/css" href="stackoverflow.com/administrator/files/prettyPhoto.css"  />
<link rel="stylesheet" type="text/css" href="stackoverflow.com/administrator/files/tabs.css" />

<script src="/administrator/files/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="/administrator/files/context_menu.js"></script>
<script type="text/javascript" src="/administrator/files/jquery.spinner.js"></script>
<script type="text/javascript" src="/administrator/files/jquery.jBreadCrumb.js"></script>
<script type="text/javascript" src="/administrator/files/jquery_upload.js"></script>
<script type="text/javascript" src="/administrator/files/prettyPhoto.js"></script>
<script type="text/javascript" src="/admin/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="/admin/ckeditor/adapters/jquery.js"></script>

Tous les fichiers commençant par /administrator/files/, y compris le fichier contenant les informations ci-dessus, sont gérés par mysql.

Le fichier ci-dessus a un db mysql établi

$my_link=mysql_connect("localhost",$dbusername,$dbpassword);

puis en chargeant la feuille de style

<link href="stackoverflow.com/administrator/files/master.css" rel="stylesheet" type="text/css" />

il se connecte à nouveau à la base de données en utilisant

$my_link=mysql_connect("localhost",$dbusername,$dbpassword);

et cela se répète pour tous les fichiers .css et .js.

Cela ne se produit pas à chaque rafraîchissement de page, mais je reçois un message d'erreur une fois sur cinq lors du chargement d'une page.

(12)Cannot allocate memory: couldn't create child process: /opt/suphp/sbin/suphp

Est-ce que je me connecte incorrectement à MySQL ?

Si je n'inclus pas les feuilles de style ou les fichiers js pilotés par mysql, il n'y a aucun problème, OU si je charge les pages de feuilles de style seules, il n'y a aucun problème.

La mémoire est fixée à 500 mb,

Lorsque des pages mysql sont chargées individuellement, la mémoire reste proche de 0 mb. Lorsque plus d'une page mysql est chargée, la mémoire atteint le maximum.

Faites-moi savoir si vous avez besoin de plus d'informations.

Merci.

2voto

Varun Sridharan Points 1492

Comme je l'ai déjà dit dans le commentaire que vous essayez de connecter mysql database pour chaque query car cela peut ralentir le serveur utilise plus de mémoire donc connectez-vous mysql db une seule fois et envoyer autant de requêtes que nécessaire ou vous pouvez essayer increasing memory limit en utilisant le code ci-dessous

ini_set('memory_limit','200M');

El 20M représente que son 20 Megabytes . Insérez le code ci-dessus dans votre php script où vous voulez ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X