Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fatal error: Allowed memory size of 8388608

5 réponses
Avatar
aelesman
Bonjour,

Nous avons un site Internet mais ne connaissons rien de
l'administration d'un site Internet. Ainsi, nous n'avons pas le niveau
pour résoudre les problèmes d'administration d'un serveur.
Pourriez-vous nous donner un petit coup de main ?

Sur notre serveur, il y a un tout petit trafic en décroissance depuis
qq jours. Nous avons en permanence des erreurs dont nous sommes
responsable car le code est sûrement mal écrit.

L'erreur du jour est : Fatal error: Allowed memory size of 8388608
bytes exhausted (tried to allocate 46080 bytes in
/home/virtual/site1/fst/var/www/html/add_global/config/adodb/adodb.inc.php
on line 1653.

Impossible de visualiser les pages sur le site.

Le serveur UNIX/Lunix/Fedora.

Nous avons changé le maximum_memory de 8M en standard à 12M dans
/etc/php.ini
/etc/php.ini.rpmnew
/home/virtual/site1/fst/etc/php.ini

L'erreur persiste. Notre administrateur réseau va nous dire que c'est
de notre faute et qu'il faut que l'on se débrouille tout en nous
facturant ce conseil. Il a sûrement raison : est-ce que ce sont nos
scripts PHP qui sont à ré-écrire ?

On fait des service httpd restart toutes les minutes pour éviter
l'erreur.

Acceptez-vous de nous donner une idée quant à la résolution ?

Merci pour votre conseil

Anne Eles.

5 réponses

Avatar
John GALLET
Bonjour,

Nous avons un site Internet mais ne connaissons rien de
l'administration d'un site Internet.
Là ça ne relève pas nécessairement de l'administration.


Ainsi, nous n'avons pas le niveau
pour résoudre les problèmes d'administration d'un serveur.
Pourriez-vous nous donner un petit coup de main ?
Conseil : prenez un pro pour le faire. Au moins mettre le machin

d'équerre. Je prêche pour ma paroisse, mais si vous n'avez pas les
compétences en interne, je ne vois pas quoi vous conseiller d'autre. Le
problème ne disparaîtra pas tout seul.

L'erreur du jour est : Fatal error: Allowed memory size of 8388608
bytes exhausted (tried to allocate 46080 bytes in
/home/virtual/site1/fst/var/www/html/add_global/config/adodb/adodb.inc.php
on line 1653.


Deux choses : non seulement votre modif de 8 à 12M n'a pas été prise en
compte, mais le fait d'utiliser adodb est néanmoins preuve qu'il y a eut
un essai de bien faire les choses. Ce serait peardb, il ne serait pas
utile de chercher plus loin l'erreur, avec adodb, oui c'est probablement
un mauvais codage applicatif "chez vous." Vérifiez quand même si le
problème n'est pas connu dans adodb, et si la version d'adodb en
*extension php* et non en *code* PHP résoud le problème.

Nous avons changé le maximum_memory de 8M en standard à 12M dans
/etc/php.ini
/etc/php.ini.rpmnew
/home/virtual/site1/fst/etc/php.ini
Et puis pourquoi pas aussi /dev/null/php.ini ...


Faites un script d'une seule ligne <?php phpinfo(); ?> pour savoir quel
script .in modifier. Ce n'est aucun de ces trois là vu que ça pête
toujours à 8Mo. Ceci soit dit c'est bien un emplâtre sur une jambe de bois
dans le but de tenir le temps de trouver.

facturant ce conseil. Il a sûrement raison : est-ce que ce sont nos
scripts PHP qui sont à ré-écrire ?
Probablement.


On fait des service httpd restart toutes les minutes pour éviter
l'erreur.
Ca ne sert strictement à RIEN car la limite mémoire ici indiquée est PAR

SCRIPT php. Ca n'est PAS une fuite mémoire. Vous pourriez mettre un
MaxRequestPerchild à 1 et servir chaque page avec un process apache neuf
que ça ne changerait rien.

Acceptez-vous de nous donner une idée quant à la résolution ?
Déjà trouver le bon php.ini à modifier et coller une limite haute ou

carrément pas de limite et voir si la machine tient ou s'écroule. Ensuite
arrêter de redémarrer apache toutes les 30 secondes, ça ne vous sert à
rien. Ensuite, embaucher quelqu'un pour faire un audit de votre biniou et
trouver d'où vient le problème. Tout le reste n'est que supputations, il
faut du factuel.

a++;
JG

Avatar
P'tit Marcel
L'erreur du jour est : Fatal error: Allowed memory size of 8388608
bytes exhausted (tried to allocate 46080 bytes in
/home/virtual/site1/fst/var/www/html/add_global/config/adodb/adodb.inc.php
on line 1653.


et yakoi aux lignes 1 à 30 et 1625 à 1675 de ce script, ô splendide
Aglaé aux poches vides ?


--
P'tit Marcel

Avatar
John GALLET
L'erreur du jour est : Fatal error: Allowed memory size of 8388608
bytes exhausted (tried to allocate 46080 bytes in
/home/virtual/site1/fst/var/www/html/add_global/config/adodb/adodb.inc.php
on line 1653.


et yakoi aux lignes 1 à 30 et 1625 à 1675 de ce script, ô splendide
Aglaé aux poches vides ?


Je ne sais pas parce que la version d'adodb que j'ai sous la main n'est
pas nécessairement la même que celle utilisée, mais ici on s'en fout un
peu. adodb est une couche d'abstraction d'accès sgbd très bien foutue,
même s'il est bien sûr possible qu'elle soit bugguée, ce n'est pas le
premier coupable qui me viendrait à l'esprit dans ce genre d'erreurs.

Sa mauvaise utilisation avec des tétrachiées de recopiées des mêmes
données en watt-milliards de versions identiques en couches successives
inutiles, ça je dis pas, mais adobd en soit, *a priori* non. Oui je sais
je le répète assez souvent : "les 'a priori' sont l'ennemi du
développeur", donc sur ce genre de problèmes, à part reproduire et tracer,
pas grand chose à faire.

Dans les pistes pour trouver le coupable, des appels bien placés à des
traces de débuggage intégrant get_memory_usage(), qui n'est compilé que si
l'option --enable-memory-limit a été activée, mais ici, pas de soucis
de définition de cette fonction, c'est visiblement le cas :-))

JG


Avatar
CrazyCat
L'erreur du jour est : Fatal error: Allowed memory size of 8388608
bytes exhausted (tried to allocate 46080 bytes in
/home/virtual/site1/fst/var/www/html/add_global/config/adodb/adodb.inc.php
on line 1653.
Acceptez-vous de nous donner une idée quant à la résolution ?


Une méthode qui fonctionne parfois est l'utilisation de unset() pour
détruire les variables qui ne sont plus utilisées.
L'utilisation des *_free_result() est aussi intéressante lorsque vous
faites des requètes qui renvoient de gros resultsets.

--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net

Avatar
Etienne SOBOLE
L'erreur du jour est : Fatal error: Allowed memory size of 8388608
bytes exhausted (tried to allocate 46080 bytes in
/home/virtual/site1/fst/var/www/html/add_global/config/adodb/adodb.inc.php
on line 1653.


dans le php.ini tu as la taille maximum de mémoire utilisée par apache pour
gérer un page.
cette valeur est par défaut 8Mb, et donc lorsque tu alloues un bloc mémoire
et que la taille dépasse 8Mb tu as ce genre de message.

donc il faut aller dans le php.ini et accroitre cette valeur.

Sinon change d'hebergeur.
Moi je suis sur un serveur semi dédié (8 utilisateurs maximum) et c'est
vraiment bien.

Etienne