Jusqu'où peut aller la charge du système?


12

Chaque fois que je me connecte à mes serveurs via SSH, cela me fait clignoter un peu d'informations sur le serveur. Adresse IP IE, utilisation du swap, utilisation de la mémoire, etc. L'une des autres choses qu'il me fait clignoter est la charge du système. Maintenant, la plupart du temps, le nombre de charge du système est <0,10, mais d'autres fois, je l'ai vu monter à 0,89 (généralement autour du démarrage).

Cela soulève la question de savoir à quelle hauteur la charge système peut-elle aller? Par exemple, est-il possible qu'il monte jusqu'à 2,00 voire 100,00?


La partie fractionnaire indique l'utilisation du processeur, la partie décimale le nombre de processus en attente. Quelque chose comme 100.89serait plus probable que100.00
Lekensteyn

doublon possible de la charge moyenne acceptable
Caleb

@Caleb, je ne suis pas d'accord pour dire qu'il s'agit d'un doublon. Il est possible que l'OP ait l' intention de demander quelque chose de similaire, comme "à quelle hauteur la charge du système peut-elle aller (et fonctionner de manière acceptable)?". Mais tel que formulé, ce n'est pas la même question.
Cyclops

@Cyclops: Si l'OP n'avait pas l'intention de poser des questions sur les niveaux acceptables sur les serveurs et posait une question purement théorique sur le fonctionnement des systèmes * nix, cela ne serait-il pas hors sujet ici et un candidat pour la migration vers unix.SE?
Caleb

Réponses:


17

Cela soulève la question de savoir à quelle hauteur la charge système peut-elle aller? Par exemple, est-il possible qu'il monte jusqu'à 2,00 voire 100,00?

Absolument. En regardant la uptimepage de manuel:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

Donc, si vous avez beaucoup de processus en attente d'exécution (ou beaucoup de processus bloqués en attente d'E / S), vous aurez une moyenne de charge élevée. Cet article en parle plus en détail et propose des liens utiles vers d'autres ressources.

Sur un système non chargé, la moyenne de charge sera généralement comprise entre 0 <= load_average <= n , où n est le nombre de cœurs sur votre système.


1
Oui, attendre les E / S est un moyen facile de créer beaucoup de charge: monter un partage nfs, éteindre le serveur nfs, démarrer 10.000 processus qui essaient de toucher quelque chose sur le partage nfs: boom, charge de 10.000
Jens Timmerman

5

J'ai vu des systèmes vivants toucher des milliers de personnes. Charge moyenne une mesure relative basée sur les processus d'attente de la concurrence pour attirer l'attention des noyaux et obtenir un certain temps sur le processeur. Si la machine est submergée de travaux ou tombe en panne, cela peut prendre beaucoup de temps.

Le niveau acceptable dépend de la machine, du nombre de cœurs, du type de planificateur de travaux du noyau utilisé et des travaux que vous attendez de lui. J'ai quelques machines qui sont assez heureuses dans la gamme ~ 10 mais qui s'embourbent si elles atteignent ~ 40-50. D'autres deviennent sensiblement décalés à 2 et seraient inutilisables à 10.

Il n'est pas inhabituel que la charge soit élevée pendant le démarrage, car beaucoup de choses se font en même temps et la machine se termine. Je considérerais ~ 1 une charge tout à fait normale pour atteindre le démarrage pendant un Linux de bureau, puis s'installer à ~ 0,1 sans rien faire.


3
Correction mineure: La moyenne de charge n'est pas une mesure du temps. C'est le nombre moyen de processus en attente. Il n'y a aucun moyen de faire la différence entre 1) un processus monopolisant un processeur et un autre ne l'ayant jamais obtenu, et 2) deux processus échangés en continu. Ils seraient tous les deux des charges de 1.0.
Plutor

1
J'ai vu plus de 1500 sur une boîte Linux sérieusement fubared. Puis il est mort.
Tom O'Connor

3

Sous Linux, les valeurs moyennes de charge système sont composées de processus dans l'un des trois états différents. En général, on pourrait dire que la moyenne de charge est la quantité de processus en attente de temps CPU ou consommant du temps CPU. Les trois valeurs dans l'aperçu de la moyenne de charge sont la moyenne de charge sur la dernière minute, les 5 dernières minutes et les 15 dernières minutes.

Les trois états différents des processus pris en compte dans la moyenne de charge sont: (1) les processus en cours d'exécution sur le CPU, (2) les processus en attente de temps CPU et (3) les processus en veille sans interruption. La dernière catégorie, bien qu'elle ne génère pas de charge CPU, peut augmenter considérablement la moyenne de charge système.

Par exemple, une douzaine de processus en attente de lectures à partir d'un disque très occupé ou indisponible générera une charge moyenne de 12 en tant que processus en veille sans interruption, mais votre CPU peut être parfaitement inactif entre-temps.

Donc, oui, la charge moyenne peut facilement atteindre deux chiffres. La gravité de cette situation dépend plutôt de votre matériel. Si vous avez 16 cœurs, avoir 16 processus en attente de temps CPU n'est pas si mal. Sur une machine monocœur, avoir 3 processus en attente de temps CPU peut être très mauvais.


Je pense que ce n'est mauvais que si ce sont des processus liés au processeur, ce qui est rare. La plupart des gros processus sont liés aux E / S ou / et liés à la RAM.
peterh

3

Créez un processus C simple exécutant des boucles infinies dans 10000 threads. Donnez-lui une très faible priorité (+20). Votre charge sera de 10000, tandis que votre système sera toujours utilisable. Il n'utilisera que très peu de RAM (au plus quelques mégaoctets).

Bien qu'il s'agisse d'une configuration assez rare, dans les systèmes réels, vous ne la trouverez pas.

La charge système signifie uniquement le nombre moyen de processus en attente d'un intervalle de temps CPU, ni plus ni moins. Voici une autre réponse sur la bonne façon d'interpréter la charge du système .

Dans l'expérience quotidienne, une charge supérieure à 30+ signifie principalement un problème.


2

Quelques secondes après avoir tué un processus qui mangeait un vieux processeur 450Mhz:

entrez la description de l'image ici


1

Lorsque vous démarrez à plusieurs reprises des processus qui se bloquent immédiatement, la charge sera aussi élevée que le nombre de processus que vous parvenez à démarrer. En supposant que vous avez suffisamment de RAM pour que le système ne permute pas, le système restera même réactif car la charge due aux processus de blocage n'est pas vraiment nuisible.


1

J'ai vu un serveur fonctionner à> 200 de charge.

Je voudrais stresser et voir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.