Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2011, 21h58   #1
Invité de passage
 
Thomas
Inscription : mars 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Thomas

Informations forums :
Inscription : mars 2010
Messages : 6
Points : 0
Points : 0
Par défaut Questions/Remarques Out of memory PHP

Bonsoir à tous!

Je me débats en ce moment pas mal avec une erreur "Out of memory" de PHP. Après pas mal de lectures sur cette erreur, j'ai réussi à résoudre (pour le moment ...) l'erreur en augmentant la taille de la mémoire allouée à PHP (passant de 128Mo à 256Mo ce qui est je pense assez conséquent). Même si l'erreur est pour le moment résolue je continue de me poser des questions et j'essaye d'anticiper la suite. Voici mes quelques questions:

- La mémoire allouée à PHP est-elle un cumul basé sur tous les utilisateurs actuellement sur le site. Pour être plus clair prenons une mémoire à 256Mo. Chaque client a-t-il pour chaque génération de page un maximum de 256Mo alloué à PHP par le serveur ou les 256Mo sont-ils répartis entre les différents utilisateurs? Après quelques tests à l'aide de la fonction memory_get_usage placé dans le footer, il apparait que la page ne demande environ que 20Mo.

- Une question découle de la première. L'erreur affichait un "Allocated %M" et un "Tried to allocate %M" bien inférieur à l'ancienne limite. De mémoire il allouait 30Mo et essayait d'allouer "16 bytes" alors que la limite était de 128M. Ce n'est pas la première fois que je vois ce soucis de la requête qui essaye d'allouer une quantité inférieure à la limite ... mais qui plante quand même!

- Peut-on à coup sûr dire: L'erreur "Out of memory" n'est pas due au serveur mais aux scripts hébergés sur ce serveur? Je suis actuellement chez Gandi sur un mutualisé (1 coeur, environ 2Go de RAM et 5M de bande)

Ces différentes remarques sont un peu en vrac. N'importe quelle remarque ou piste pourrait m'aider. Je précise que je suis sur un Wordpress (qui n'a d'ailleurs pas grand chose d'un Wordpress car il est assez customisé par des classes etc.) / qui tourne sur PHP5 / et donc chez Gandi!

Un grand merci d'avance pour vos réponses!

Thomas
Thomas.NET est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 22h31   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il s'agit bien de la mémoire utilisé par l'execution d'un script.
Citation:
memory_limit
Cette option détermine la mémoire limite, en octets, qu'un script est autorisé à allouer
L'erreur indique purement le dépassement de cette limite.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 10h08   #3
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 78
Points : 33
Points : 33
Hello,

je te suggère tout d'abord de vérifier la mémoire utilisée par le script non avec memory_get_usage, mais memory_get_peak_usage : http://www.php.net/manual/fr/functio...peak-usage.php

Celle-ci te donne le pic le plus haut demandé par php lors de l'exécution du script, alors que la première te renvoie l'a mémoire utilisée à l'instant où la fonction est appelée.

Si tu dépasses la limite, allouée automatiquement par php ou bien manuellement par ton script, tu as alors une erreur du type que tu reçois. C'est probablement que tu as des variables trop volumineuses dans ta page. Tente d'y insérer des unset() sur les plus grosses variables à des moments clés, utilise plus de boucles et gère les données au fur et à mesure pour les réduire, etc...

Je ne pense pas que le server puisse être en cause.

Bonne chance !
JerryOne3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web