Lorsque vous lancez cette commande depuis Linux:
# cat /proc/loadavg
0.75 0.35 0.25 1/25 1747
Quels sont les 2 derniers chiffres?
Le dernier continue d'augmenter de 2 par seconde, devrais-je m'inquiéter?
Lorsque vous lancez cette commande depuis Linux:
# cat /proc/loadavg
0.75 0.35 0.25 1/25 1747
Quels sont les 2 derniers chiffres?
Le dernier continue d'augmenter de 2 par seconde, devrais-je m'inquiéter?
La dernière est le système de charge de travail pour les 15 dernières minutes.
Les trois premiers champs de ce fichier sont à la charge moyenne des chiffres donnant le nombre d'emplois dans la file d'attente d'exécution (état R) ou en attente de disque I/O (état D) en moyenne plus de 1, 5 et 15 minutes. Ils sont la de même que la charge moyenne des nombres donnés par temps de fonctionnement(1) et d'autres de programmes.
Le quatrième champ est constitué de deux nombres séparés par un la barre oblique (/). Le premier est le nombre de actuellement en cours d'exécution entités d'ordonnancement du noyau (processus, threads); ce sera moins inférieur ou égal au nombre de Processeurs. La valeur après la barre oblique est le nombre d'entités d'ordonnancement du noyau qui existent actuellement sur le système.
Le cinquième champ est le PID du processus qui a été le plus récemment créé sur le système.
Je voudrais faire un commentaire accepté de répondre.
Le quatrième champ est constitué de deux chiffres séparés par une barre oblique (/). L' première, c'est le nombre de actuellement en cours d'exécution d'ordonnancement du noyau les entités (processus, threads); ce sera inférieure ou égale à la nombre de Processeurs.
J'ai fait un test de programme qui lit entier N à partir de l'entrée, puis crée N threads et leur exécution pour toujours. Sur RHEL 6.5 ordinateur que j'ai 8 processeur et chaque processeur dispose de la technologie hyper threading. De toute façon, si je lance mon test et il crée 128 threads, je vois dans le quatrième champ des valeurs qui sont supérieures à 128, par exemple 135. Il est nettement plus grand que le nombre de CPU. Ce poste prend en charge mon observation: http://juliano.info/en/Blog:Memory_Leak/Understanding_the_Linux_load_average
Il est intéressant de noter que l'explication courante dans proc(5) page de manuel (comme de l'homme-les pages de la version 3.21, Mars 2009) est erroné. Il signale l' premier numéro de la quatrième champ que le nombre de cours d'exécution la planification des entités, et donc prédit qu'il ne peut pas être supérieure à la nombre de Processeurs. Qui ne correspond pas à la véritable mise en œuvre, lorsque cela la valeur des rapports le nombre de threads exécutables.
Il ya des idées fausses sur ce que signifie et comment sont calculées les valeurs signalées par l' /proc/loadavg
pseudo-fichier. La plupart idée fausse commune est que ces valeurs sont des pourcentages de combien le système est chargé.
L' proc
système de fichiers est un pseudo-système de fichiers dont les fichiers de fournir une interface à la structure de données du noyau, et est généralement monté en /proc
. Des informations instantanées sur le système peuvent être obtenus à partir des fichiers de ce système de fichiers, et certains peuvent être modifiés par écrit à ces mêmes fichiers.
L' /proc/loadavg
fournit le courant calculé de la charge moyenne du système. Lorsque le fichier est lu, il renvoie à quelque chose comme:
9.30 10.14 12.10 12/256 21132
Ces valeurs représentent la moyenne de la charge du système dans le dernier 1, 5 et 15 minutes, le nombre d'actifs / nombre total d'entités d'ordonnancement (tâches) et le PID du dernier processus créé dans le système.
Il est intéressant de noter que l'explication courante en proc(5)
page de manuel (comme de l'homme-les pages de la version 3.21, Mars 2009) est faux. Il présente le premier numéro de la quatrième champ que le nombre de cours d'exécution de la planification des entités, et donc prédit qu'il ne peut pas être supérieur au nombre de Processeurs. Qui ne correspond pas à la mise en œuvre réelle, où cette valeur rapports le nombre de threads exécutables.
La charge d'un système Linux est mesurée par le nombre d'actifs de planification des entités, ou des tâches. Les tâches sont essentiellement des threads du processus. Les tâches peuvent être dans l'un des un certain nombre de différents états, comme la course, dormir ou bloqué. Tâches en cours d'exécution sont, en fait, les tâches qui peuvent être en cours à cette heure, ou dans la file d'attente d'exécution. C'est mieux dite active ou prêt tâches, pour éviter toute confusion.
Le système a un nombre de Processeurs disponibles pour les tâches d'entretien. Par souci de simplicité, d'envisager des noyaux (dans les systèmes multi-core) et le PROCESSEUR de threads (hyper-threading) pour les systèmes individuels de Processeurs. Chaque PROCESSEUR peut servir tout au plus qu'une seule tâche à la fois. Chaque PROCESSEUR peut avoir seulement l'un des deux instantanée états possibles: soit il est inactif, ou il est en cours de traitement. Ceci est important parce que beaucoup de gens ne comprennent pas les informations fournies par le système commun de suivi logiciel, et pensent que l'utilisation de l'UC, à tout moment, est calculée à l'aide de pourcentages.
La première importante de la charge du système métrique disponible est l'instant de la charge. L'instant de la charge d'un système est le nombre de tâches dans le système de file d'attente de tâche à l'instant même où elle est mesurée. C'est le premier numéro de la quatrième champ du contenu retourné par /proc/loadavg
(dans cet exemple, 12
):
9.30 10.14 12.10 12/256 21132
Vous devez prendre en compte que lorsque cette valeur est mesurée, le processus de la prise de cette valeur est compté comme en cours d'exécution. En d'autres termes, cette valeur ne doit jamais être inférieur à un dans des conditions normales. À moins que votre processus de suivi est dans une boucle serrée, la lecture de cette valeur (c'est une très mauvaise idée), vous devez n'oubliez pas de soustraire l'un de la raison pour ignorer l'activité de la procédure de suivi.
Une bonne valeur de mesure instantanée de la charge du système est le rapport entre le nombre de tâches actives au nombre de Processeurs disponibles.
De manière générale, si le nombre de tâches actives est plus petit que le nombre de Processeurs disponibles, le système n'est pas à l'aide de sa pleine puissance de traitement, plus de tâches peut être activé pour utiliser la pleine puissance de traitement disponible. Si ce nombre est égal au nombre de Processeurs disponibles, le système en est à sa charge optimale: tous les processeurs sont en permanence traitement et toutes les tâches sont traitées autour de 100% du temps. Si ce nombre est supérieur au nombre de Processeurs disponibles, alors le système est au-dessus de la charge optimale: les tâches ne sont pas desservis à 100% du temps, ils prennent plus de temps que nécessaire pour traiter la même quantité d'information.
Il devrait être clair que les affirmations ci-dessus sont très hypothétique, pour une inexistant "parfait" de l'architecture. Dans la pratique, la technologie hyper-threading, l'invalidation du cache, le changement de contexte et d'autres questions vont commencer à se dégrader les performances du système avant que le nombre de tâches actives est égal au nombre de Processeurs disponibles.
Le noyau calcule trois moyennes de ce nombre de tâches actives, conduisant à la deuxième importante de la charge du système métrique, connu comme charges moyennes. Ces valeurs sont calculées régulièrement (toutes les 5 secondes) à l'aide d'une moyenne mobile (ou, plus précisément, une décroissance exponentielle de la fonction) sur leurs valeurs précédentes et le nombre de tâches actives. Ils représentent le nombre moyen de tâches actives dans le dernier 1, 5 ou 15 minutes. Ces mesures sont de façon exponentielle amortie, les moyennes mobiles, ce qui signifie que les récentes mesures de poids de plus que les anciens.
9.30 10.14 12.10 12/256 21132
Ces moyennes sont beaucoup plus utiles pour le système de charge de travail et l'évaluation de la performance, mais ils ont besoin d'une certaine prudence lors de l'interpréter: il ne veut pas dire par exemple, qu'après une minute avec exactement une tâche dans une boucle serrée, de la minute moyenne de charge sera à 1.0. Il aura besoin de plus de trois fois le temps de voir la minute de chargement moyen de se stabiliser à 1.0. L'explication est longue, et il y a des spéculations sur pourquoi Linux fait les choses de cette façon. La suite de la série d'articles par le Dr Neil Gunther est une bonne lecture sur ce problème:
UNIX® de Charge Moyenne de la Partie 1: Comment Ça marche
UNIX® de Charge Moyenne de la Partie 2: Pas Votre Moyenne
UNIX® Charge Moyenne pesé de nouveau
Enfin, un tiers de la charge du système métrique est que l'utilisation CPU ratio. C'est la métrique qui est généralement affiché en commun système de surveillance de logiciel. Il affiche combien de temps chaque PROCESSEUR du système passé à traiter dans un court intervalle de temps (généralement une seconde). Cette valeur est habituellement un pourcentage, de 0% d'un système inactif et 100% entièrement occupé système.
Que l'utilisation CPU ratio a très peu d'utilisation pour le système de charge et de performance de l'évaluation. Si vous avez un ou une centaine de fils en boucles serrées dans un mono-PROCESSEUR, système d', dans les deux cas, cette valeur est tout juste de retour de 100% d'utilisation du PROCESSEUR, même si dans ce dernier cas, le système est cent fois plus chargé.
Cette valeur est calculée à partir des valeurs obtenues à partir d' /proc/stat
. Ce fichier a le format suivant:
cpu 32324408 289613 6872365 314122880 2353643 387624 3666716 0 0
cpu0 17308810 171514 3515221 150168483 1838418 385903 3613224 0 0
cpu1 15015597 118099 3357143 163954396 515225 1721 53492 0 0
...
La première ligne présente les compteurs pour le système global d'utilisation de l'UC, tandis que les lignes suivantes présentent des compteurs pour chaque CPU. D'autres système de statistiques suivez. Tous les nombres représentent la quantité de temps CPU dans les unités de USER_HZ
, ce qui est généralement de 1/100ème de seconde. Les chiffres sont, dans l'ordre:
user: Time spent executing user applications (user mode).
nice: Time spent executing user applications with low priority (nice).
system: Time spent executing system calls (system mode).
idle: Idle time.
iowait: Time waiting for I/O operations to complete.
irq: Time spent servicing interrupts.
softirq: Time spent servicing soft-interrupts.
steal, guest: Used in virtualization setups.
Tous ces moments sont accumulées depuis le démarrage du système. Pour utiliser ces paramètres, vous devez collecter au moins deux échantillons d'entre eux dans un intervalle, et de soustraire chaque nouvelle valeur à partir de son instance précédente. La somme de toutes les valeurs est tout le temps que le système est en cours d'exécution. Il existe deux façons de calculer l'utilisation de l'UC:
usage = (user + nice + system) / total
usage = (total - idle) / total
Ce sont les plus communs paramètres utilisés lors de l'évaluation de la performance sur les systèmes Linux.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.