Maison  >  Article  >  Opération et maintenance  >  Visualisation et gestion de la mémoire Linux

Visualisation et gestion de la mémoire Linux

巴扎黑
巴扎黑original
2017-08-02 16:07:211723parcourir

Pendant le processus de maintenance du système, il peut être nécessaire de vérifier l'utilisation du processeur à tout moment et d'analyser l'état du système en fonction des informations correspondantes. Dans CentOS, vous pouvez utiliser la commande top pour afficher l'utilisation du processeur. Après avoir exécuté la commande top, l'état d'utilisation du processeur sera affiché en plein écran et en mode conversation - à l'aide des commandes basées sur le haut, vous pouvez contrôler le mode d'affichage, etc. La commande pour quitter top est q (appuyez une fois sur la touche q pendant que top est en cours d'exécution).

La commande top est un outil d'analyse des performances couramment utilisé sous Linux. Elle peut afficher l'utilisation des ressources de chaque processus du système en temps réel. Elle est similaire au gestionnaire de tâches de Windows

Vous. peut utiliser directement la commande top pour afficher le contenu de %MEM. Vous pouvez choisir d'afficher par processus ou par utilisateur. Si vous souhaitez afficher l'utilisation de la mémoire du processus par l'utilisateur Oracle, vous pouvez utiliser la commande suivante :
 $ top -u oracle

Explication du contenu :

PID : ID du processus
UTILISATEUR : Propriétaire du processus
PR : Niveau de priorité du processus, plus la priorité est petite, la priorité est exécutée
NInice : Valeur
VIRT : Mémoire virtuelle occupée par le processus
RES : Mémoire physique occupée par le processus
SHR : Mémoire partagée utilisée par le processus
S : Statut du processus. S signifie en veille, R signifie en cours d'exécution, Z signifie état zombie, N signifie que la valeur de priorité du processus est négative
%CPU : utilisation du processeur occupée par le processus
%MEM : le pourcentage de mémoire physique et de mémoire totale utilisée par le processus
TIME+ : Le temps CPU total occupé par le processus après son démarrage, c'est-à-dire la valeur accumulée du temps d'utilisation du CPU.
COMMANDE : Nom de la commande de démarrage du processus

Exemple d'opération :

Entrez "top" dans la ligne de commande

pour démarrer top

Le mode de dialogue plein écran du haut peut être divisé en 3 parties : barre d'informations système, barre de saisie de commande et barre de liste de processus.

La première partie - la barre supérieure d'informations du système :

La première ligne (en haut) :

"00:11:04" est l'heure actuelle du système ;

 « 3:35 » est le temps de fonctionnement depuis le démarrage du système ;

   « 2 utilisateurs » est les utilisateurs actuellement connectés au système, plus précisément le nombre de terminaux connectés. à l'utilisateur-- Les connexions du même utilisateur à plusieurs terminaux du système en même temps seront considérées comme plusieurs utilisateurs se connectant au système, et le nombre d'utilisateurs ici sera également exprimé en nombre de terminaux

 « Charge moyenne » est la valeur moyenne de la charge actuelle du système. Les trois valeurs suivantes sont le nombre moyen de processus il y a 1 minute, il y a 5 minutes et il y a 15 minutes. De manière générale, on peut considérer que lorsque cette valeur est atteinte. dépasse le nombre de CPU, le CPU aura du mal à charger les processus inclus dans le système actuel

La deuxième ligne (Tâches) :

« 59 total » est le nombre total de processus système actuels ;

"1 en cours d'exécution" est le nombre de processus en cours d'exécution

  "58 en veille" est le nombre de processus actuellement en attente

 " 0 arrêté » est le nombre de processus système arrêtés ;

  « 0 zombie » est le nombre de processus restaurés

La troisième ligne (Cpus) :

Représente respectivement le courant ; utilisation du CPU ;

La quatrième ligne (Mem) :

Indique respectivement la quantité totale de mémoire, l'utilisation actuelle, la mémoire libre et la quantité de mémoire utilisée en tampon

La cinquième ligne (Swap) :

La catégorie de représentation est la même que la quatrième ligne (Mem), mais cela reflète l'utilisation de la partition d'échange (Swap). Habituellement, l'utilisation fréquente de la partition swap (Swap) sera considérée comme causée par une mémoire physique insuffisante.

La deuxième partie - la barre d'invite de commande interne dans la partie centrale :

Lorsque top est en cours d'exécution, vous pouvez contrôler le mode d'affichage du processus via la commande interne de top. Les commandes internes sont les suivantes :

s

- Modifier la fréquence de mise à jour de l'écran

l - Désactiver ou activer l'affichage des principales informations dans la première ligne du premier partie

t - Désactiver ou activer l'affichage des informations sur les tâches dans la deuxième ligne de la première partie et les informations sur le processeur dans la troisième ligne

m - Désactiver ou activer la mémoire et Échangez les informations dans la quatrième ligne de la première partie

N - Organisez la liste des processus par ordre de taille du PID (décrit plus loin dans la troisième partie)

P - Organisez la liste des processus par ordre de Utilisation du processeur (décrit plus loin dans la troisième partie)

M - Organiser la liste des processus par ordre d'utilisation de la mémoire (décrit plus loin dans la troisième partie)

h - Afficher l'aide

n - Définir le nombre de processus affichés dans la liste des processus

q - Quitter le haut

s -

Modifier le cycle de mise à jour de l'écran

Partie 3 - La colonne de la liste des processus en bas :

Distingué par PID La liste des processus sera mise à jour régulièrement en fonction de l'heure de mise à jour de l'écran définie. La méthode d'affichage ici peut être contrôlée via la commande interne supérieure

pmap

Vous pouvez visualiser la mémoire occupée par les informations liées au processus en fonction du processus (le numéro du processus peut être consulté via ps) Comme indiqué ci-dessous :

 $ pmap -d 5647

ps

Comme le montre l'exemple suivant :
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' Où rsz est la mémoire réelle
$ ps - e - o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk

  Où rsz est la mémoire réelle, l'exemple ci-dessus implémente le tri par mémoire, de grand à petit

Pour vérifier la mémoire sous Linux, nous utilisons généralement la commande free :
[root@scs-2 tmp]# free
total des tampons utilisés mis en cache
Mem : 3266180 325 0004 16176 0 110652 2668236
-/+ tampons/cache : 471116 2795064
Swap : 2048276 80160 1968116

Ce qui suit est une explication de ces valeurs :
total : taille de la mémoire physique .
utilisé : quelle taille a été utilisée.
gratuit : Combien sont disponibles.
Partagé : la quantité totale de mémoire partagée par plusieurs processus.
Buffers/cached : La taille du cache disque.
La troisième ligne (-/+ buffers/cached) :
used : combien a été utilisé.
gratuit : combien sont disponibles.
La quatrième ligne ne nécessite pas beaucoup d’explications.
Différence : La différence entre used/free dans la deuxième ligne (mem) et used/free dans la troisième ligne (-/+ buffers/cache). La différence entre les deux réside dans le point de vue de l'utilisation. La première ligne est du point de vue du système d'exploitation, car pour le système d'exploitation, les tampons/mis en cache sont tous utilisés, donc sa mémoire disponible est de 16 176 Ko et la mémoire utilisée est de 3 250 004 Ko. +buffers+cached utilisés par le noyau (OS) à l'aide de +Application (X, oracle, etc.
La troisième ligne fait référence au point de vue de l'application, buffers/cached C'est égal à disponible, car). buffer/cached est d'améliorer les performances de lecture des fichiers Lorsque l'application a besoin d'utiliser de la mémoire, le buffer/cached sera recyclé rapidement.
Donc, du point de vue de l'application, mémoire disponible = mémoire libre du système + tampons + mise en cache.
Comme dans l'exemple ci-dessus :
2795064=16176+110652+2668236

Ensuite, expliquez quand la mémoire sera échangée et de quelle manière. Lorsque la mémoire disponible est inférieure à la valeur nominale, un échange se produit.
Comment voir la note :
cat /proc/meminfo

[root@scs-2 tmp]# cat /proc/meminfo
MemTotal : 3266180 kB
MemFree : 17456 Ko
Tampons : 111328 Ko
En cache : 2664024 Ko
SwapCached : 0 Ko
Actif : 467236 Ko
Inactif : 26449 28 Ko
HighTotal :       0 Ko
HighFree :        0 Ko
LowTotal : 3266180 Ko
LowFree : 17456 Ko
SwapTotal : 2048276 Ko
SwapFree : 1968116 Ko
Dirty : 8 Ko
Réécriture : 0 Ko
Mappé : 345360 Ko
Dalle : 112344 Ko
Commit_AS : 535292 Ko
PageTables : 2340 Ko
VmallocTotal : 536870911 Ko
VmallocUsed : 272696 Ko
VmallocChunk : 536598175 Ko
HugePages_Total : 0
HugePages_Free : 0
Hugepagesize : 2048 Ko

Résultats consultés avec free -m :
[root@scs-2 tmp]# free -m
total utilisé utilisé tampons partagés gratuits mis en cache
Mem : 3189 3173 16 0 107 2605
-/+ tampons/cache : 460 2729
Swap : 2000 78 1921


Afficher la taille du fichier /proc/kcore (image mémoire) :
[root@scs-2 tmp]# ll -h /proc/kcore
-r------ - 1 root root 4.1G 12 juin 12:04 /proc/kcore

Remarque :

Mesure de la mémoire occupée

Mesurez la quantité de mémoire qu'un processus occupe, Linux le fait pour nous Fournit une méthode très pratique. Le répertoire /proc nous fournit toutes les informations. En fait, des outils tels que top l'utilisent également pour obtenir les informations correspondantes.

/proc/meminfo Informations sur l'utilisation de la mémoire de la machine

/proc/pid/maps pid est le numéro de processus, indiquant l'adresse virtuelle occupée par le processus en cours.

/proc/pid/statm Mémoire occupée par le processus

[root@localhost ~]# cat /proc/self/statm

654 57 44 0 0 334 0

Explication de sortie

CPU et CPU0. . . La signification de chaque paramètre dans chaque ligne (en prenant la première ligne comme exemple) est :

Explication du paramètre/proc//status

Taille (pages) La taille de l'espace d'adressage virtuel de la tâche VmSize/4

Résident(pages) La taille de la mémoire physique utilisée par l'application VmRSS/4

Partagé(pages) Le nombre de pages partagées 0

Trs (pages) La mémoire disponible appartenant au programme La taille de la mémoire virtuelle d'exécution VmExe/4

Lrs(pages) La taille de la bibliothèque qui est mappée à l'espace mémoire virtuelle de la tâche VmLib/4

Drs(pages) Le segment de données du programme et le mode utilisateur Taille de la pile (VmData+ VmStk) 4

dt(pages) 04

Afficher la mémoire disponible de la machine

/proc/28248/>free

total utilisé des tampons partagés gratuits mis en cache

Mem : 1023788 926400 97388 0 134668 503688

-/+ buffers/cache : 288044 735744

Échange : 1959920 8960 8 1870312

Lorsque nous vérifions la mémoire libre de la machine via la commande free, nous constaterons que la valeur de free est très petite. Cela est principalement dû au fait que Linux pense que la mémoire n'est pas utilisée en vain, elle met donc en cache et met en mémoire tampon certaines données autant que possible pour faciliter la prochaine utilisation. Mais en réalité, ces mémoires peuvent être utilisées immédiatement.

So free memory=free+buffers+cached=total-used

La commande top est un outil d'analyse des performances couramment utilisé sous Linux, qui peut afficher l'utilisation des ressources de chaque processus du système en temps réel, similaire au Gestionnaire des tâches de Windows. Ce qui suit décrit comment l'utiliser en détail.

haut - 02:53:32 en place 16 jours, 6h34, 17 utilisateurs, charge moyenne : 0,24, 0,21, 0,24
Tâches : 481 au total, 3 en cours d'exécution, 474 en veille, 0 arrêtée, 4 zombie
Cpu(s) : 10,3%us, 1,8%sy, 0,0%ni, 86,6%id, 0,5%wa, 0,2%hi, 0,6%si, 0,0%st
Mem : 4042764k total, 4001096k utilisés , 41668k gratuits, 383536k tampons
Échange : 2104472k au total, 7900k utilisés, 2096572k gratuits, 1557040k en cache

PID USER PR NI VIRT RES SHR S %C PU %MEM TIME+ COMMAND
32497 jacky 20 0 669m 222m 31m R 10 5.6 29:27.62 firefox
4788 yiuwing 20 0 257m 18m 13m S 5 0.5 5:42.44 console
5657 Liu xiaof 20 0 585m 159m 30m S 4 4.0 5:25.06 Firefox
4455 xiefc 20 0 542m 124m 30m R 4 3.1 7:23.03 firefox
6188 Liuxiaof 20 0 191m 17m 13m S 4 0.5 0:01.16 konsole


Les cinq premières lignes de la zone d'informations statistiques sont les informations statistiques globales du système. La première ligne contient les informations sur la file d'attente des tâches, qui sont les mêmes que le résultat de l'exécution de la commande uptime. Le contenu est le suivant :

01:06:48 Heure actuelle
jusqu'à 1:22 Temps de fonctionnement du système au format heures:minutes
1 utilisateur Nombre actuel d'utilisateurs connectés
charge moyenne : 0,06, 0,60, 0,48 Charge du système, c'est-à-dire la longueur moyenne de la file d'attente des tâches.
Les trois valeurs sont les valeurs moyennes d'il y a 1 minute, 5 minutes et 15 minutes jusqu'à maintenant.


Les deuxième et troisième lignes sont des informations sur le processus et le processeur. Lorsqu'il y a plusieurs processeurs, ceux-ci peuvent prendre plus de deux lignes. Le contenu est le suivant :

Tâches : 29 nombre total de processus
1 nombre de processus en cours d'exécution
28 nombre de processus en veille
0 nombre arrêté de processus arrêtés
0 zombie zombie process Nombre
Cpu(s) : 0,3% us Pourcentage de CPU occupé par l'espace utilisateur
1,0% sy Pourcentage de CPU occupé par l'espace noyau
0,0% ni Pourcentage de CPU occupé par des processus modifiés priorités dans l'espace de processus utilisateur
98,7 % du pourcentage de CPU inactif
0,0% wa pourcentage du temps CPU en attente d'entrée et de sortie
0,0% hi
0,0% si


Les deux dernières lignes sont des informations sur la mémoire. Le contenu est le suivant :

Mem : 191272k total La quantité totale de mémoire physique
173656k utilisée La quantité totale de mémoire physique utilisée
17616k libre La quantité totale de mémoire libre
22052k tampons La quantité de mémoire utilisée comme cache du noyau
Swap : 192 772 000 au total Montant total de la zone de swap
0 000 utilisés Montant total de la zone de swap utilisée
192 772 000 libres Montant total de la zone de swap libre
123988 000 mis en cache Montant total de zone d'échange tamponnée.
Le contenu de la mémoire est échangé vers la zone d'échange, puis transféré dans la mémoire, mais la zone d'échange utilisée n'a pas été écrasée.
Cette valeur est la zone d'échange où ce contenu existe déjà dans la mémoire. taille.
Il n'est pas nécessaire d'écrire dans la zone d'échange lorsque la mémoire correspondante est à nouveau échangée.


Les informations détaillées de chaque processus sont affichées sous la zone d'informations statistiques de la zone d'informations sur le processus. Tout d’abord, comprenons la signification de chaque colonne.

Nom de colonne du numéro de série signifiant
a ID de processus PID
b ID de processus parent PPID
c RUSER Nom d'utilisateur réel
d ID d'utilisateur UID du propriétaire du processus
e UTILISATEUR process Nom d'utilisateur du propriétaire
f GROUP Nom de groupe du propriétaire du processus
g TTY Le nom du terminal qui a démarré le processus. Les processus qui ne sont pas démarrés depuis le terminal sont affichés comme ?
h PR priorité
i NI belle valeur. Les valeurs négatives indiquent une priorité élevée, les valeurs positives indiquent une priorité faible
j P Le dernier CPU utilisé, significatif uniquement dans un environnement multi-CPU
k %CPU Le pourcentage de temps CPU occupé depuis la dernière mise à jour
l TIME Temps CPU total utilisé par le processus, unité secondes
m TIME+ Temps CPU total utilisé par le processus, unité 1/100 seconde
n %MEM Pourcentage de mémoire physique utilisée par le processus
o VIRT Mémoire virtuelle utilisée par le processus Montant total, unité ko. VIRT=SWAP+RES
p SWAP La taille de la mémoire virtuelle utilisée par le processus à échanger, en Ko.
q RES La taille de la mémoire physique utilisée par le processus qui n'a pas été échangée, en Ko. RES=CODE+DATA
r CODE La taille de la mémoire physique occupée par le code exécutable, en ko
s DATA La taille de la mémoire physique occupée par d'autres parties que le code exécutable (segment de données + pile), en Ko
t SHR Taille de la mémoire partagée, unité en Ko
u nFLT Nombre de défauts de page
v nDRT Le nombre de pages qui ont été modifiées depuis la dernière écriture.
w S Statut du processus.
D = état de veille ininterrompue
R = exécuter
S = veille
T = suivi/arrêt
Z = processus zombie
x COMMAND /ligne de commande
y WCHAN Si le le processus est en veille, le nom de la fonction système en veille est affiché
z Flags task flag, reportez-vous à sched.h


Par défaut, seuls les PID, USER, PR les plus importants sont affichés, NI , VIRT, RES, SHR, S, %CPU, %MEM, TIME+, COMMAND colonnes. Le contenu affiché peut être modifié à l'aide des touches de raccourci ci-dessous.
Modifiez le contenu affiché. Utilisez la touche f pour sélectionner le contenu affiché. Après avoir appuyé sur la touche f, une liste de colonnes s'affichera. Appuyez sur a-z pour afficher ou masquer les colonnes correspondantes. Enfin, appuyez sur la touche Entrée pour confirmer.
Appuyez sur la touche o pour modifier l'ordre d'affichage des colonnes. Appuyer sur les minuscules a-z déplace la colonne correspondante vers la droite, tandis que les majuscules AZ déplacent la colonne correspondante vers la gauche. Appuyez enfin sur la touche Entrée pour confirmer.
Appuyez sur la touche majuscule F ou O, puis sur a-z pour trier les processus par colonne correspondante. La touche R majuscule inverse le tri actuel.

================================

Commande top Pendant l'utilisation, vous pouvez également utiliser certaines commandes interactives pour compléter les fonctions d'autres paramètres. Ces commandes sont lancées via des touches de raccourci.
 : actualisez immédiatement.
P : Trier en fonction de l'utilisation du processeur.
T : Trier selon le temps et le temps accumulé.
q : Quittez la commande supérieure.
m : Changer l'affichage des informations sur la mémoire.
t : Basculez pour afficher les informations sur le processus et l'état du processeur.
c : basculer l'affichage du nom de la commande et compléter la ligne de commande.
M : Trier selon la taille mémoire utilisée.
W : Écrivez les paramètres actuels dans le fichier ~/.toprc. Il s'agit de la méthode recommandée pour écrire les principaux fichiers de configuration.

Comme vous pouvez le constater, la commande top est un outil très puissant pour surveiller le système, ce qui est particulièrement important pour les administrateurs système. Cependant, son inconvénient est qu’il consomme beaucoup de ressources système.

Exemple d'application
Utilisez la commande top pour surveiller les utilisateurs spécifiés. La valeur par défaut est de surveiller les processus de tous les utilisateurs. Si vous souhaitez vérifier le statut d'un utilisateur spécifié, appuyez sur la touche « U » dans le terminal, puis entrez le nom d'utilisateur et le système passera à l'interface d'exécution du processus de l'utilisateur spécifié.
a.Fonction
La commande gratuite est utilisée pour afficher l'utilisation de la mémoire, et l'autorisation d'utilisation est pour tous les utilisateurs.
b.Format
gratuit [-b -k -m] [-o] [-s delay] [-t] [-V]
c.Paramètres principaux
-b -k - m : affiche l'utilisation de la mémoire en octets (Ko, Mo).
-s delay : affiche le nombre de secondes pour afficher l'utilisation de la mémoire.
-t : Affiche la colonne de somme de la mémoire.
-o : Ne pas afficher la colonne de réglage du tampon.
d.Exemple d'application
La commande free est la commande principale utilisée pour vérifier l'utilisation de la mémoire. Par rapport à la commande top, son avantage est qu’elle est simple à utiliser et ne consomme que très peu de ressources système. Grâce au paramètre -S, vous pouvez utiliser la commande free pour surveiller en permanence la quantité de mémoire utilisée, afin de pouvoir l'utiliser comme un moniteur en temps réel pratique.
#free -b -s5
Après avoir utilisé cette commande, le terminal signalera en permanence l'utilisation de la mémoire (en octets), mise à jour toutes les 5 secondes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn