5 votes

Utilisation élevée de l'unité centrale sans information utile de la part de la commande principale

Au cours des deux derniers jours, j'ai commencé à avoir des problèmes avec un serveur qui compte quelques utilisateurs. Le serveur est un VPS OpenVZ. Normalement, lorsque l'utilisation du CPU est élevée, j'utilise toujours top pour en connaître la raison. Mais pour ce serveur, je ne reçois aucune information utile de la part de la commande top commande. Voici un exemple de capture d'écran du problème que je rencontre enter image description here

Comme on peut le voir dans la capture d'écran, la fonction %CPU est presque toujours nulle pour tous les processus, et pratiquement la plupart du temps je vois que toutes les valeurs sont nulles, pourtant l'utilisation du CPU a atteint jusqu'à 10 cœurs !

Je suis totalement perdue et ne sais pas quoi faire pour en trouver la raison. J'aimerais donc savoir si quelqu'un a une idée des causes possibles auxquelles je suis confronté ? Est-ce que cela pourrait être dû à des problèmes de serveur ?

Merci pour toute suggestion !

Edita:

Veuillez noter que cette capture d'écran n'est prise que lorsque la charge est élevée. Cela se produit toutes les quelques heures et dure environ 20 minutes. L'utilisation normale n'est que de 0,0-0,2 cœurs. Voici un exemple d'utilisation normale.

enter image description here

Nouvelle mise à jour

Le problème vient de se reproduire, voici la capture d'écran des commandes suggérées

enter image description here

Je suis désolé d'être un noob en la matière, mais si je comprends bien, il n'y a pas de problème avec l'utilisation du disque, l'utilisation de l'io est très faible.

Dernière mise à jour

J'ai essayé d'utiliser les méthodes suggérées en utilisant vmstat , ps dans les réponses et les commentaires, mais n'a pas trouvé d'informations utiles. Lorsque le pic se produit, j'ai même arrêté apache, mysql mais cela n'a pas aidé. J'ai finalement contacté le fournisseur du VPS et j'ai demandé à changer de nœud. Il m'a dit qu'il était au courant des problèmes avec le nœud, qui a été fortement abusé par des clients malveillants récemment, et qu'il travaillait à résoudre les problèmes. Je pense donc que je n'ai plus rien à faire de mon côté. Néanmoins, j'aimerais remercier tous les membres qui ont donné des suggestions, rendant cette Q&R utile pour les références futures !

9voto

iwaseatenbyagrue Points 3533

Environ 30 % du temps de l'unité centrale semble être passé en attente, et votre charge (1 minute, au moins) est la suivante très élevé.

Je commencerais donc par vérifier votre espace de stockage et vos habitudes d'utilisation de l'espace de stockage. Un bon point de départ serait de jeter un coup d'œil à iostat et/ou de surveiller les opérations lentes (écritures et lectures). Vous pouvez également vérifier le temps passé sur chaque processus dans le top, pour voir si quelque chose sort du lot. Comme vous avez mysql en cours d'exécution, je vérifierais également comment il se comporte.

Vous semblez également procéder à des échanges alors que vous disposez d'une quantité raisonnable de mémoire libre, je verrais donc ce qu'il en est de l'ajustement de la mémoire. vm.swappiness (en utilisant sysctl) pourrait faire pour vous. La RAM est plus rapide que le swap, donc si vous pouvez l'utiliser, je le ferais.

Si rien d'autre n'est possible, regardez ce que le sondage de sysrq peut faire pour vous.

Si une vue d'ensemble plus visuelle peut vous aider, je vous conseille de consulter les données nettes de firehol ( https://netdata.firehol.org/ ), si vous n'avez pas de solution préexistante.

6voto

John Mahowald Points 28597

Vous n'avez pas décrit le problème. S'il s'agit d'un problème de performance, par exemple si les applications ne sont pas assez réactives, décrivez-le.

La moyenne de la charge est de no le nombre de cœurs utilisés. Il est lié au nombre de processus sur l'unité centrale ou en attente. Lorsque la charge moyenne est beaucoup plus importante que le nombre de cœurs, cela peut indiquer que le système est moins réactif en raison de toutes les attentes.

Vous utilisez un système basé sur des conteneurs. Il n'y a qu'un seul noyau partagé pour l'hôte, sur lequel vous exécutez quelques processus. Vous verrez le pic de charge lorsque les autres conteneurs sur l'hôte travailleront, mais cela ne sera pas reflété dans votre liste de processus.

4voto

Mikhail Khirgiy Points 1993

Vous devez installer atop . Il est plus informatif.

Votre unité centrale est utilisée pour les opérations d'entrée/sortie. WA - est en attente et représente plus de 30 %. Je constate que le processus le plus utile est mysqld . Il consomme le temps de l'unité centrale plus que d'autres.

Je vous recommande d'augmenter les tampons de mémoire et de modifier d'autres paramètres de MySQL pour réduire les opérations sur le disque. Pour en savoir plus, consultez le site Dix paramètres d'optimisation des performances de MySQL après l'installation

Si vous utilisez une machine virtuelle, il se peut que d'autres machines virtuelles ou systèmes hôtes utilisent le disque de manière intensive. Il est également possible que votre disque comporte des secteurs défectueux. Vérifiez-le en lisant les attributs SMART via la commande smartctl -a sur le serveur hôte.

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