J'ai un serveur virtuel hébergeant plusieurs petits sites dans un environnement LAMP. Le système était initialement un Debian 4, ensuite mis à niveau vers Debian 5. Il dispose de 1 Go de RAM dédiée et 1 Go de RAM partagée, ainsi que de 20 Go d'espace de stockage.
Récemment, le système a commencé à montrer des tendances alarmantes à ralentir aléatoirement lors de l'écriture de fichiers sur le système de fichiers (/dev/vzfs
). Lorsque ces ralentissements se produisent, les charges commencent à augmenter, mais le processeur reste principalement inactif - même le pourcentage d'attente IO reste principalement à zéro. Voici un aperçu de la dernière fois que j'ai rencontré le problème, en enregistrant un fichier de configuration Apache de 1 ko qui a pris environ 20 secondes à enregistrer :
top - 18:05:38 up 274 days, 11:50, 4 utilisateurs, charge moyenne : 0.71, 0.25, 0.08
Tâches : 54 au total, 1 en cours d'exécution, 53 en veille, 0 arrêté, 0 zombie
Cpu(s) : 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem : 2097152k au total, 471044k utilisés, 1626108k disponibles, 0k tampons
Swap : 0k au total, 0k utilisés, 0k disponibles, 0k mis en cache
Je suis principalement développeur et n'ai pas beaucoup d'expérience en administration système, donc je ne suis pas sûr par où commencer à chercher. Toute indication est grandement appréciée.
Mise à jour : Les journaux système standard ne contenaient aucune information utile concernant ce cas, alors j'ai contacté le fournisseur de services pour demander si le système hôte était surchargé. Ils ont répondu que la charge du système est normale, mais que mon conteneur semble parfois dépasser ses attributions de ressources. Voici les lignes de /proc/user_beancounters
qui ont un failcnt > 0 :
uid ressource détenues max détenues barrière limite compte échecs
shmpages 9744 19470 19567 19567 1
tcpsndbuf 306232 2453448 2449232 3598712 42347113
tcprcvbuf 299568 2459056 2449232 3598712 1640
othersockbuf 101640 843592 844366 1481926 140
numfile 3100 6000 6000 6000 11
Celle que je dépasse le plus est tcpsndbuf
de loin. Cependant, je suppose que cela ne devrait pas affecter les performances du système de fichiers. Le numfile
a été dépassé 11 fois (ce nombre est-il un total absolu ou depuis le dernier redémarrage ?) et semble être quelque chose qui pourrait être la cause du problème. La moitié des fichiers ouverts semblent appartenir à apache2
, qui a chaque fichier journal et .so ouverts pour l'ensemble de ses processus. Peut-être passer à Lighttpd ou Nginx pourrait aider ? Je vérifierai les beancounters la prochaine fois que le système ralentira et verrai si cela donne des indices.