View previous topic :: View next topic |
Author |
Message |
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Wed Jan 08, 2003 5:45 pm Post subject: Apache + php -> lent et bouffe des ressources ??? |
|
|
J'ai un serveur qui tourne sous Gentoo avec comme combinaison logiciel: Apache, Mysql, Php.
Les pages Php sont parfois très longues à chargés. D'ailleurs plus y'a de Php plus c'est long. Apache bouffe facilement 5% des ressources CPU (atlon XP 1500+) pour une ou deux pages de chargés. Je n'ai que rarement plus de deux accès aux pages du serveur en même temps.
Et j'assiste parfois à des pics à 99,9%
Ensuite si je fais un ping à partir de mon serveur vers ovh.net, voici ce que j'obtient parfois:
octets from 213.186.33.6: icmp_seq=32 ttl=252 time=372.6 ms
64 octets from 213.186.33.6: icmp_seq=33 ttl=252 time=949.0 ms
64 octets from 213.186.33.6: icmp_seq=34 ttl=252 time=1340.2 ms
wrong data byte #0 should be 0xb0 but was 0xafaf 46 1b 3e a5 14 c 0
8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
28 29 2a 2b 2c 2d 2e 2f
64 octets from 213.186.33.6: icmp_seq=35 ttl=252 time=1479.0 ms
wrong data byte #0 should be 0xb1 but was 0xb0b0 46 1b 3e de 14 c 0
8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
28 29 2a 2b 2c 2d 2e 2f
64 octets from 213.186.33.6: icmp_seq=36 ttl=252 time=595.7 ms
64 octets from 213.186.33.6: icmp_seq=37 ttl=252 time=57.2 ms
64 octets from 213.186.33.6: icmp_seq=40 ttl=252 time=74.9 ms
Je vois pas trop comment faire, j'ai pas mal cherché, mais personne ne semlbe savoir Quelqu'un a une idée ?
Les mêmes logiciels sur une autre distribution ça fonctionne très bien
Merci d'avance |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Wed Jan 08, 2003 10:51 pm Post subject: |
|
|
T'as quelle version de ces softs?
Pour ma part j'ai Apache 1.3.27 avec PHP 4.2.3 et ça fonctionne à merveille.
J'ai en moyenne 28000 hits par jour dessus, donc on peut pas dire que ça chôme |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Wed Jan 08, 2003 10:53 pm Post subject: |
|
|
Pareil Mêmes versions.
J'en ai marre, ça lague avec quedal d'acccès. |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Wed Jan 08, 2003 11:02 pm Post subject: |
|
|
t'es sur que c'est pas ton code PHP qui merdouille? |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Wed Jan 08, 2003 11:11 pm Post subject: |
|
|
J'héberge 100 sites. Ceux qui m'ont fait la remarque que c'est lent, c'est ceux qui ont des forums surtout. (moi en connexion local, je vois moi facilement la différence mais il y en a une) |
|
Back to top |
|
|
sergio Apprentice
Joined: 11 Jun 2002 Posts: 265 Location: Clermont Ferrand, France
|
Posted: Thu Jan 09, 2003 7:25 am Post subject: |
|
|
C'est peut être tout simplement un problème de réseau, vérifie que sur tes hubs et tes routeurs que tu n'a pas un taux de collisions, d'erreurs CRC trop élévé, ce qui oblige le serveur à faire sans cesse des retry et...
C'est un problème courant sur un réseau (parfois une carte réseau défectueuse, un cable merdique, etc...) crois en mon expérience...
A+ |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Thu Jan 09, 2003 9:29 am Post subject: |
|
|
MD@home wrote: | J'héberge 100 sites. Ceux qui m'ont fait la remarque que c'est lent, c'est ceux qui ont des forums surtout. (moi en connexion local, je vois moi facilement la différence mais il y en a une) |
Tu dis que tu héberges 100 sites et qu'il n'y a pas beaucoup de traffic sur ton serveur!
Ca me parait quand même assez étonnant... Maintenant je suis d'accord avec Sergio, vérifie les paramètres de ton réseau, c'est jamais inutile de toute façon... |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Thu Jan 09, 2003 10:57 am Post subject: |
|
|
ok, merci pour vos conseils. J'ai l'impression que ce problème est apparu en installant php 4.3 (j'avais oublié que j'avais fait l'update et il me semble que ça date de ce moment là). Je suis repassé à 4.2.3, ça à l'air de mieux fonctionner, mais je suis pas sûr.
J'ai modifié mon réseau (remplacement du routeur par un bête hub, et différentes autres config) mais ça n'a rien changé. Mon routeur ne me signale pas de problème.
Je vais quand-même changer la carte réseau du serveur, j'ai mis une peabird en attendant de trouver mieux. Du 3com serai préférable.
Sinon j'héberge 100 sites, mais la plupart ne sont pas encore installés, j'ai ouvert la plupart des comptes y'a très peu de temps, donc pas encore beaucoup de requêtes.
Merci
@+ |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Thu Jan 09, 2003 11:09 am Post subject: |
|
|
J'me suis gouré, les problèmes continuent.
Si je restart Apache ça ne le fait plus pendant un moment et ça reprend après. Si je l'arrête les problèmes cessent totalement.
Apache fait des pics d'utilisation du CPU, alors que personne n'accède au pages pendant ce temps là (je regarde les logs du traffic en même temps). Si quelqu'un charge une page, par contre, il n'utilise pas forcément de ressources. |
|
Back to top |
|
|
Bouiaw n00b
Joined: 28 Aug 2002 Posts: 54 Location: Lyon, France
|
Posted: Thu Jan 09, 2003 12:18 pm Post subject: |
|
|
Si les problèmes apparaissent surtout pour ceux qui utilisent les forums, le problème peut aussi venir de ta base de donnée |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Thu Jan 09, 2003 5:29 pm Post subject: |
|
|
C'est vrai, j'aurai du penser à ça.
Mais j'ai vérifier, et c'est dès qu'une page contient du php, qu'il utilise mysql ou non, que ça devient plus lent en comparaison à une bête page html.
Cet aprèm Apache à finit par planter |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Thu Jan 09, 2003 6:04 pm Post subject: |
|
|
T'as essayé les mailing-list de PHP?
Il doit certainement y en avoir avec une possibilité de recherche dans les archives...
Ton problême est quand même bizarre, tu es vraiment certain que ce n'est pas le code PHP qui est en cause? J'avais moi aussi planté mon serveur Apache avec du mauvais code PHP... |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Thu Jan 09, 2003 10:15 pm Post subject: |
|
|
J'vais suivre les conseils de sergio, la carte réseau est douteuse. Je vais faire des tests. Du 3Com devrait faire l'affaire. (Peabird, chiprealtek actuellement)
@+ |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Thu Jan 09, 2003 11:35 pm Post subject: |
|
|
J'ai fait un test. En moyenne le temps de chargement d'une page contenant du php fait grimper l'utilisation des ressources CPU par Apache à 2.9% en moyenne (testé avec plusieurs pages).
Contre 0.1% pour une page html.
Est-ce normal, sachant que c un XP 1500+ comme proc ?
Et sinon toujours ce ping, avec des erreurs tout le temps, ma conexion est ralentie.
J'ai bien envi de réinstaller tout.
EDIT: après une batterie de tests plus longues, il s'avère que certains forums prennent à eux seuls 6%de cpu par page. Y'a aussi 2 ou 3 sites où on peut même pas les charger. Et tant que le visiteur insiste et ne stoppe pas sa requête, la charge CPU reste à 80% voir 99% parfois. J'comprend que ça ai planté. Je vais tester d'autres versions de php plus anciennes. Sinon, j'irai voir sur des sites php si y'a pas des idées.
@+ |
|
Back to top |
|
|
sergio Apprentice
Joined: 11 Jun 2002 Posts: 265 Location: Clermont Ferrand, France
|
Posted: Fri Jan 10, 2003 7:27 am Post subject: |
|
|
MD@home wrote: |
Et sinon toujours ce ping, avec des erreurs tout le temps, ma conexion est ralentie.
J'ai bien envi de réinstaller tout.
|
Je maintient ce que je t'ai dit je penche pour un problème matériel : il n'est pas normal d'avoir des pertes de paquets ou des erreurs sur un ping...
Je m'occupe d'un réseau d'entreprise et lorsque qu'il y a des pertes de paquets sur les ping, c'est quasiment toujours lié à des problèmes hardware...
Je te propose si tu peut le faire le test suivant :
Arrêter apache et ts les services du sreveur sauf le réseau, et refaire le test des pings (d'abord avec 64 octets, puis en augementant la taille des paquets)... si tu as des erreurs c'est un problème matériel (ou peut être une défaillance du module qui gère ta carte réseau çà peut arriver avec certaines cartes à base de puces bon marché)
Tiens nous au courant...
A+ |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Mon Jan 13, 2003 6:04 pm Post subject: |
|
|
J'ai changé le pc, changé la carte réseau (mis une D-Link) puis tout réinstallé sur la machine, et toujours pareil.
Toujours ce ping et apache qui prend 5% de CPU à la moindre page de chargée.
Qu'est-ce que je peux faire ? brancher directement le modem sur le serveur sans passer par le routeur ? je doute que ça change quelque chose, ça le faisait ausis quand j'avais cette configuration. |
|
Back to top |
|
|
DuF Advocate
Joined: 09 Dec 2002 Posts: 2687 Location: Paris
|
Posted: Mon Jan 13, 2003 6:12 pm Post subject: |
|
|
Je pense un peu comme sergio, mais bon changer le matos ça ne résout pas forcément le problème, ça le contourne des fois, si la conf est mauvaise ça n'arrange rien.
S'assurer de bien mettre du full duplex par exemple, sinon si qqn a une conf semblable a la tienne, peut être pourrait-il tester ton code PHP ? Perso je peux pas, j'ai pas la conf matérielle ou logiciel pour le faire. |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Mon Jan 13, 2003 7:11 pm Post subject: |
|
|
Et en plus de ça, maintenant j'ai des problèmes de liens.
Quand on spécifie la valeur d'une variable dans l'url ça ne passe pas, enfin ça dépend des scripts php. Les forums PhpBB n'ont pas de problèmes tandis que certaines pages de sites oui: admin.php3?p=archiver ne passe pas, p est null.
Si quelqu'un a une idée au passage.
Sinon je comprend pas pourquoi j'ai toujours ce problème. Etant donné que jai changé la carte réseau et réinstallé ma gentoo, je pense pas que ça soit matériel. Si je stoppe Apache, le phénomène ne se produit plus. Et ce sont les pages php qui prennent des resources. Ca ne vient pas du code, c'est sur pleins de sites différents et des scripts connus comme phpbb.
Mon phpinfo() si ça intéresse quelqu'un: http://www.nasov.net/phpinfo.php |
|
Back to top |
|
|
dioxmat Bodhisattva
Joined: 04 May 2002 Posts: 709 Location: /home/mat
|
Posted: Mon Jan 13, 2003 10:39 pm Post subject: |
|
|
je pense pour un pb materiel ou de config materiel.
un ping ne doit pas merder comme ca, et ca na rien a avoir avec php ou apache. genre ca peut etre un mauvais mtu ou je sais pas trop quoi.
maintenant pour le load pris par apache/php, il faut bien le configurer, ne pas loader 146 000 trucs, ne pas utiliser php en tant que cgi, etc... |
|
Back to top |
|
|
skuld n00b
Joined: 13 Oct 2002 Posts: 69
|
Posted: Tue Jan 14, 2003 8:34 am Post subject: |
|
|
MD@home wrote: | Et en plus de ça, maintenant j'ai des problèmes de liens.
Quand on spécifie la valeur d'une variable dans l'url ça ne passe pas, enfin ça dépend des scripts php. Les forums PhpBB n'ont pas de problèmes tandis que certaines pages de sites oui: admin.php3?p=archiver ne passe pas, p est null. |
Ca ce n'est pas un bug, c'est un fonctionnement normal de PHP depuis la 4.2.0 : à savoir que les variables globales ne sont plus acceptées par défaut.
En clair, si on considère l'url http://www.bidule.com/toto.php?variable=valeur :
- avec PHP < 4.1.0, tu récupères valeur dans ton code avec $variable
- avec PHP >= 4.1.0, il te faut utiliser $_GET["variable"]
il y a de même $_POST["variable"], $_SESSION["variable"], $_SERVER["variable"] (plus d'infos ici : http://www.php.net/release_4_1_0.php )
soit tu modifies toutes les paqes pour les mettre en conformité avec la nouvelle méthode, soit tu passes le paramètre register_globals à On dans ton php.ini (puis tu redémarres Apache) |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Wed Jan 15, 2003 12:55 am Post subject: |
|
|
skuld: merci, je ne savais pas. Et mettre php en register_globals on, ça pose un problème de sécurité ?
Sinon ça fonctionne pour mon problème. Ca marchait toujours pas même en ayant changé de carte réseau. Hier soir j'ai compilé apache et php à la main, sans passer par les e-build en prenant les ./configure d'un autre serveur qui fonctionne bien.
Maintenant je n'ai plus de problème de ping. Reste à savoir la rapidité, je n'ai pas encore beaucoup testé. Je vous dirai ça demain.
Merci à tous pour votre aide.
@+ |
|
Back to top |
|
|
skuld n00b
Joined: 13 Oct 2002 Posts: 69
|
Posted: Wed Jan 15, 2003 6:59 am Post subject: |
|
|
avec l'ancienne méthode (donc register_globals à On), si tu sais comment est fait le code source du php, et que tu sais que la variable toto n'est pas initialisée avant son utilisation, tu peux donc l'initialiser en la passant en paramètre de l'url, ce qui peut effectivement poser des problèmes de sécurité. |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Wed Jan 15, 2003 9:11 am Post subject: |
|
|
Finalement le problème n'est pas réglé. De temps en temps apache monte à 99% d'utilisation du CPU. Y'a un site qui provoquait ça (la page ne chargait jamais et apache prenait 99% de CPU), je l'ai enlevé, mais ça continue. Peut-être y'a-t-il une page que je n'arrive pas à trouver qui provoque ça. |
|
Back to top |
|
|
MD@home n00b
Joined: 08 Jan 2003 Posts: 29
|
Posted: Wed Jan 15, 2003 10:23 am Post subject: |
|
|
Y'a plusieurs pages dont des bouts du code php font monter les ressources CPU, mais je n'arrive pas à identifier quel bout de code est en cause, donc quels fonctions.
Comment c'est possible ça ? Php devrait fonctionner, y'a pas de raison pour que ce genre de problème arrive. |
|
Back to top |
|
|
|