|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Thomas Inscription : mars 2010 Messages : 6 ![]() |
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 |
|
|
00
|
|
|
#2 | |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Il s'agit bien de la mémoire utilisé par l'execution d'un script.
Citation:
|
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2008 Messages : 78 ![]() |
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 ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com