Cpustat - surveille l'utilisation du processeur par les processus en cours d'exécution dans Linux

Cpustat - surveille l'utilisation du processeur par les processus en cours d'exécution dans Linux

Cpustat est un puissant programme de mesures de performance du système pour Linux, écrit à l'aide du langage de programmation Go GO. Il tente de révéler l'utilisation et la saturation du processeur de manière efficace, en utilisant la méthode de saturation et d'erreurs (utilisation) (une méthodologie pour analyser les performances de n'importe quel système).

Il extrait des échantillons de fréquence plus élevés de chaque processus exécuté sur le système, puis résume ces échantillons à une fréquence plus faible. Par exemple, il peut mesurer chaque processus chaque 200 ms et résumer ces échantillons chaque 5 secondes, y compris les valeurs min / moyenne / max pour certaines mesures.

Lire suggérée: 20 outils de ligne de commande pour surveiller les performances Linux

Cpustat sorti des données de deux manières possibles: une liste de texte pure de l'intervalle de résumé et un tableau de bord de défilement coloré de chaque échantillon.

Comment installer cpustat dans Linux

Vous devez avoir GO (Golang) installé sur votre système Linux pour utiliser cpustat, Cliquez sur le lien ci-dessous pour suivre les étapes d'installation de Golang, c'est si vous ne l'avez pas installée:

  1. Installez Golang (GO Language de programmation) dans Linux

Une fois que vous avez installé Aller, tapez le va chercher commande ci-dessous pour l'installer, cette commande installera le cpustat binaire dans votre Gobin variable:

# va chercher github.com / uber-common / cpustat 

Comment utiliser cpustat dans Linux

Une fois le processus d'installation se termine, exécutez cpustat Comme suit avec les privilèges racine à l'aide de la commande sudo, c'est-à-dire si vous contrôlez le système en tant qu'utilisateur non root, sinon vous obtiendrez l'erreur comme indiqué:

$ $ Gobin / cpustat Ce programme utilise l'interface NetLink TaskStats, il doit donc être exécuté comme racine. 

Note: Courir cpustat ainsi que tous les autres programmes GO que vous avez installés sur votre système comme toutes les autres commandes, incluez Gobin variable dans votre CHEMIN variable d'environnement. Ouvrez le lien ci-dessous pour apprendre à définir la variable de chemin dans Linux.

  1. Apprenez à définir en permanence vos variables de chemin $ dans Linux

C'est ainsi cpustat travaux; le / proc Le répertoire est interrogé pour obtenir la liste actuelle des ID de processus pour chaque intervalle, et:

  • Pour chaque pid, lisez / proc / pid / stat, puis calculer la différence par rapport à l'échantillon précédent.
  • Dans le cas où c'est un nouveau PID, lisez / proc / pid / cmdline.
  • Pour chaque PID, envoyez un message NetLink pour récupérer les taskstats, calculer la différence par rapport à l'échantillon précédent.
  • aller chercher / proc / stat Pour obtenir les statistiques globales du système.

Encore une fois, chaque intervalle de sommeil est ajusté pour tenir compte du temps consommé de temps pour aller chercher toutes ces statistiques. De plus, chaque échantillon enregistre également le temps nécessaire pour évoluer chaque mesure par le temps réel écoulé entre les échantillons. Cela tente de tenir compte des retards dans Cpustat lui-même.

Lorsqu'il est exécuté sans aucun argument, cpustat affichera ce qui suit par défaut: Intervalle d'échantillonnage: 200 ms, intervalle de résumé: 2s (10 échantillons), montrant les 10 premiers Procs, filtre utilisateur: tout, filtre PID: tout comme indiqué dans la capture d'écran ci-dessous:

$ sudo $ gobin / cpustat 
CPUSTAT - Utilisation du processeur Linux

À partir de la sortie ci-dessus, ce qui suit est la signification des mesures de résumé à l'échelle du système affichées avant les champs:

  • usr - Le temps d'exécution du mode utilisateur Min / AVG / MAX en pourcentage d'un CPU.
  • système - Le temps d'exécution du mode système min / avg / max en pourcentage d'un processeur.
  • bon - MODE MIN / AVG / MAX MODE DU MODE DE L'UTILISATE.
  • inactif - Le temps d'exécution du mode utilisateur Min / AVG / MAX en pourcentage d'un CPU.
  • iowait - Temps de retard min / avg / max en attente de disque IO.
  • taire - Min / AVG / maximum de processus dans un état coulant (identique à la moyenne de charge).
  • pobloc - Nombre de processus min / avg / maximum bloqué sur le disque IO.
  • pstart - Nombre de processus / threads démarrés dans cet intervalle de résumé.

Toujours à partir de la sortie ci-dessus, pour un processus donné, les différentes colonnes signifient:

  • nom - Nom du processus commun de / proc / pid / stat ou / proc / pid / cmdline.
  • piquer - ID de processus, également appelé «TGID».
  • min - Échantillon le plus bas de l'utilisateur + temps système pour le PID, mesuré à partir de / proc / pid / stat. L'échelle est un pourcentage d'un processeur.
  • max - Échantillon le plus élevé de temps utilisateur + système pour ce PID, également mesuré à partir de / proc / pid / stat.
  • usr - Temps moyen de l'utilisateur pour le PID sur la période de résumé, mesuré à partir de / proc / pid / stat.
  • système - Temps moyen du système pour le PID sur la période de résumé, mesuré à partir de / proc / pid / stat.
  • bon - indique une valeur «belle» actuelle pour le processus, mesurée à partir de / proc / pid / stat. Plus élevé signifie «plus agréable».
  • runq - Le temps que le processus et tous ses fils ont passé à couler mais en attendant de s'exécuter, mesuré à partir de taskstats via netlink. L'échelle est un pourcentage d'un processeur.
  • iow - Le temps que le processus et tous ses fils dépensés sont bloqués par le disque IO, mesurés à partir de taskstats via netlink. L'échelle est un pourcentage d'un processeur, en moyenne sur l'intervalle de résumé.
  • échanger - Le temps du processus et tous ses fils passés à attendre d'être échangés, mesurés à partir de taskstats via netlink. L'échelle est un pourcentage d'un processeur, en moyenne sur l'intervalle de résumé.
  • VCX et ICX - Nombre total de commutateurs de contexte volontaire par le processus et tous ses threads sur l'intervalle de résumé, mesuré à partir de taskstats via netLink.
  • RSS - Valeur RSS actuelle obtenue à partir de / proc / pid / stat. C'est la quantité de mémoire que ce processus utilise.
  • ctime - Somme de l'utilisateur + SYS CPU Temps consommé par attente des enfants qui sont sortis pendant cet intervalle de résumé, mesurés à partir de / proc / pid / stat.

Notez que les processus d'enfants longs peuvent souvent confondre cette mesure, car le temps n'est signalé que lorsque le processus de l'enfant sort. Cependant, cela est utile pour mesurer l'impact des travaux fréquents Cron et des contrôles de santé où le temps du CPU est souvent consommé par de nombreux processus enfants.

  • à travers - Nombre de threads à la fin de l'intervalle de résumé, mesuré à partir de / proc / pid / stat.
  • Sam - Nombre d'échantillons pour ce processus inclus dans l'intervalle de résumé. Les processus qui ont récemment commencé ou quittés peuvent avoir été visibles pour moins d'échantillons que l'intervalle de résumé.

La commande suivante affiche les 10 principaux processus d'utilisateur racine en cours d'exécution sur le système:

$ sudo $ gobin / cpustat -u racine 
Trouver des processus d'exécution de l'utilisateur racine

Pour afficher la sortie en mode terminal sophistiqué, utilisez le -t Flag comme suit:

$ sudo $ gobin / cpustat -u roo -t 
Utilisation du processus en cours d'exécution de l'utilisateur racine

Pour afficher le nombre X supérieur de processus (la valeur par défaut est 10), vous pouvez utiliser le -n Flag, la commande suivante affiche les 20 meilleurs processus Linux exécutés sur le système:

$ sudo $ gobin / cpustat -n 20 

Vous pouvez également écrire le profil CPU dans un fichier en utilisant le -cpuprofile Option comme suit, puis utilisez la commande cat pour afficher le fichier:

$ sudo $ gobin / cpustat -cpuprofile cpuprof.txt $ cat Cpuprof.SMS 

Pour afficher les informations d'aide, utilisez le -H Flag comme suit:

$ sudo $ gobin / cpustat -h 

Trouver des informations supplémentaires du référentiel GitHub Cpustat: https: // github.com / uber-common / cpustat

C'est tout! Dans cet article, nous vous avons montré comment installer et utiliser Cpustat, un outil de mesure des performances du système utile pour Linux. Partagez vos réflexions avec nous via la section des commentaires ci-dessous.