2 votes

Apache élevé travailleurs occupés et charge moyenne élevée

J'ai constaté une augmentation de la charge moyenne sur un serveur web que je gère presque quotidiennement :

  • 6 x 2,4 GHz CPU dédié
  • 3GB RAM

Il s'agit d'un VPS qui tourne sous debian 6, j'ai installé apache, php et mysql via apt . Je ne sais pas s'il y a une configuration que j'ai mal choisie.

Aujourd'hui, la charge moyenne a atteint un tel niveau que le serveur n'a pas pu servir l'application web (WordPress). La capture d'écran ci-dessous montre notre système de surveillance des serveurs. Vous remarquerez que la charge moyenne élevée correspond à un nombre élevé de travailleurs occupés par Apache, et que la mémoire atteint également son maximum.

enter image description here

Après avoir forcé le redémarrage du serveur, j'ai toujours une moyenne de charge plus élevée que d'habitude, bien que l'utilisation du CPU soit faible. Les captures d'écran suivantes montrent htop et ensuite iotop .

enter image description here

enter image description here

La moyenne de charge est maintenant > 6, voici ce que dit l'état du serveur apache :

enter image description here

J'ai vraiment du mal à savoir comment enquêter sur ce problème. Quelqu'un peut-il m'aider à résoudre ce problème ?

Mise à jour 1

J'ai cherché dans les journaux d'erreurs d'Apache et je n'ai trouvé aucune trace d'un dépassement du temps d'exécution maximum. Par contre, j'obtiens beaucoup de ce qui suit... à partir du moment où le serveur a commencé à se charger :

::1 - - [24/Feb/2014:15:03:31 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:32 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:33 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:34 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:35 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:36 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:37 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:38 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:39 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:41 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"

Notez qu'elles se succèdent toutes environ une seconde après la précédente... Il y a peut-être là quelque chose à faire.

Mise à jour 2

J'ai donc demandé à l'hébergeur de déplacer le VPS vers un nouvel hyperviseur. iowait . J'ai couru iostat 1 et voici ce que j'ai reçu :

enter image description here

Cela permet-il d'identifier le problème ?

1voto

MattDeany Points 21

Il semble que vous ayez un script quelque part qui cause le chargement.

Commencez par consulter le journal des erreurs d'Apache et cherchez les temps d'exécution maximum ou les délais d'attente. Passez ensuite aux journaux d'accès et recherchez les scripts auxquels on accède et qui peuvent être à l'origine du blocage.

0voto

davidgo Points 5870

Il y a plusieurs choses que vous pouvez faire pour examiner le problème, y compris utiliser vmstat 2 (par exemple - cela affichera la sortie des ressources clés toutes les 2 secondes).

Une chose qui me saute aux yeux est la quantité de swap utilisée - 841MB sur un serveur de 3 gigas, c'est très important. Je soupçonne votre système de faire du swap, ce qui fait que les entrées-sorties sont très élevées, ce qui augmente la charge, etc. Si cette hypothèse est correcte, la solution est de s'occuper du swapping.

Il faut soit ajouter de la mémoire au système, soit modifier la façon dont le swap est géré, soit les deux. Je suggère de commencer par la seconde solution - il est facile de configurer l'échange de mémoire. Pour ce faire, tapez echo 'vm.swappiness = 10' >> /etc/sysctl.conf puis "sysctl -p". Le processeur effectuera ainsi plus de travail, mais le swap sera moins important. Sur de nombreuses machines virtuelles, l'IO du disque est un goulot d'étranglement, les effets sont donc instantanés et remarquables.

L'ajout d'une plus grande quantité de RAM réduira également le nombre de permutations et accélérera le système.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X