|
La commande vmstat est l’outil de surveillance Linux/Unix le plus courant qui affiche les valeurs d’état d’un serveur à un intervalle de temps donné, y compris celles du serveurUtilisation du processeur, utilisation de la mémoire, échange de mémoire virtuelle, lecture et écriture d’E/S. Cette commande est ma préférée pour vérifier Linux/Unix, d’abord que Linux/Unix est pris en charge, et l’autre est que, comparé au haut, je peux voir l’utilisation du CPU, de la mémoire et des entrées de la machine dans son ensemble, au lieu de simplement voir l’utilisation du CPU et de la mémoire de chaque processus (scénarios d’utilisation différents). En général, l’utilisation de l’outil vmstat se fait à travers deux paramètres numériques : le premier paramètre est le nombre d’intervalles de temps échantillonnés, l’unité est les secondes, et le second paramètre est le nombre d’échantillons, tels que :
root@ubuntu :~# vmstat 2 1 déclenche -----------mémoire---------- ---swap-- -----io---- -système-- ----CPU---- r b swpd cache de buff gratuit si donc bi bo dans cs us sy id wa 1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0 2 signifie que l’état du serveur est collecté toutes les deux secondes, et 1 signifie que l’état du serveur n’est collecté qu’une seule fois. En fait, pendant le processus de candidature, nous surveillerons pendant un certain temps, et si nous ne voulons pas le surveiller, nous pouvons simplement mettre fin directement au vmstat, par exemple :
root@ubuntu :~# VMSTAT 2 déclenche -----------mémoire---------- ---swap-- -----io---- -système-- ----CPU---- r b swpd cache de buff gratuit si donc bi bo dans cs us sy id wa 1 0 0 3499840 315836 3819660 0 0 0 1 2 0 0 0 100 0 0 0 0 3499584 315836 3819660 0 0 0 0 88 158 0 0 100 0 0 0 0 3499708 315836 3819660 0 0 0 2 86 162 0 0 100 0 0 0 0 3499708 315836 3819660 0 0 0 10 81 151 0 0 100 0 1 0 0 3499732 315836 3819660 0 0 0 2 83 154 0 0 100 0
Cela signifie que vmstat collecte des données toutes les 2 secondes et continue jusqu’à ce que je termine le programme, et je termine le programme après avoir collecté les données 5 fois ici. D’accord, la commande est introduite, commençons maintenant à expliquer la signification de chaque paramètre. rCela signifie faire tourner la file d’attente (c’est-à-dire combien de processus sont réellement alloués au CPU), le serveur que j’ai testé est actuellement relativement inactif, il n’y a aucun programme en cours d’exécution, et quand cette valeur dépasse le nombre de CPU, il y aura un goulot d’étranglement CPU. Cela est aussi lié à la charge du sommet : en général, la charge est plus élevée si elle dépasse 3, elle est plus élevée si elle dépasse 5, et si elle dépasse 10, ce n’est pas normal, et l’état du serveur est très dangereux. La charge du sommet est similaire à celle d’une file d’attente en cours par seconde. Si la file d’attente en cours est trop grande, cela signifie que votre processeur est occupé, ce qui entraîne généralement une forte utilisation du CPU. bCela signifie que le processus bloqué, ce n’est pas grand-chose à dire, le processus est bloqué, tout le monde comprend. SWWPDSi la taille de la mémoire virtuelle utilisée est supérieure à 0, cela signifie que votre machine a une mémoire physique insuffisante, et si ce n’est pas la cause de la fuite de mémoire du programme, il est temps de mettre à jour la mémoire ou de migrer les tâches qui consomment beaucoup de mémoire vers une autre machine. Gratuit La taille de la mémoire physique libre, ma mémoire machine est de 8G au total, et le reste de 3415M. buff Le système Linux/Unix est utilisé pour stocker le contenu dans le répertoire, les permissions, etc. en cache, j’occupe probablement plus de 300M sur cette machine cacheLe cache est directement utilisé pour mémoriser les fichiers que nous ouvrons, les mettre en mémoire tampon, je prends plus de 300M sur ma propre machine (voici l’astuce de Linux/Unix : prendre une partie de la mémoire physique libre pour mettre en cache des fichiers et des répertoires, afin d’améliorer les performances d’exécution du programme, quand le programme utilise de la mémoire, le tampon/mise en cache sera rapidement utilisé). ) si Si cette valeur est supérieure à 0, cela signifie que la mémoire physique n’est pas suffisante ou que la mémoire est fuitée. Ma machine a beaucoup de mémoire et tout va bien. ainsi La taille du disque écrit dans la mémoire virtuelle par seconde, si cette valeur est supérieure à 0, est la même que ci-dessus. bi Équipement de blocageLe nombre de blocs reçus par seconde, ici le bloc fait référence à tous les disques et autres périphériques à blocs du système, la taille par défaut du bloc est de 1024 octets, je n’ai aucune opération d’E/S sur la machine, donc elle a toujours été 0, mais j’ai vu cela sur des machines qui gèrent de grandes quantités de données (2-3T) atteindre 140000/s, et la vitesse d’écriture du disque est de près de 140M par seconde BoLe nombre de blocs envoyés par seconde par un dispositif de blocage, par exemple, lorsque nous lisons un fichier, bo est supérieur à 0. Bi et bo sont généralement proches de zéro, sinon l’IO est trop fréquent et doit être ajusté. dansLe nombre d’interruptions par seconde de CPU, y compris les interruptions temporelles CSLe nombre de changements de contexte par seconde, par exemple, lorsque nous appelons une fonction système, nous devons changer de contexte, et de commuter les threadsContexte du processusPar exemple, dans les serveurs web comme Apache et nginx, nous faisons généralement des tests de performance avec des milliers voire des dizaines de milliers de concurrents, et le processus de choix d’un serveur web peut être réduit par le pic du processus ou du thread, un test de stress, jusqu’à ce que le cs atteigne une valeur relativement faible, le nombre de processus et de threads est une valeur plus appropriée. Les appels système sont également identiques : chaque fois qu’une fonction système est appelée, notre code entre dans l’espace du noyau, ce qui entraîne un changement de contexte, ce qui est très gourmande en ressources, et nous devons essayer d’éviter les appels fréquents vers des fonctions système. Trop de changements de contexte font que la plupart de votre CPU est gaspillé à la modification, ce qui réduit le temps pour le CPU pour faire des choses sérieuses, et le CPU n’est pas pleinement utilisé, ce qui n’est pas conseillé. NousutilisateurTemps CPUJ’ai vu une fois que les États-Unis étaient proches de 100 et que la file d’attente r-run atteignait 80 sur un serveur qui faisait très fréquemment du chiffrement et du déchiffrement (la machine avait été testée sous stress, et les performances n’étaient pas bonnes). sySi le temps CPU du système est trop élevé, cela signifie que les appels système sont longs, comme lors d’opérations fréquentes d’entrée. id Temps CPU inactif, en général, id + us + sy = 100, en général je pense que id est l’utilisation CPU inactive, us l’utilisation CPU utilisateur, sy l’utilisation CPU système. wtAttends le temps du processeur d’entrée.
|