Mémoire

Commandes pour gérer la mémoire Linux

Commandes pour gérer la mémoire Linux
Les systèmes UNIX/Linux contiennent un outil de ligne de commande pour presque tout. Cela inclut également des programmes pour gérer la mémoire. Dans cet article, nous vous montrons une sélection de commandes qui vous sont très utiles en tant qu'utilisateur Linux.

Détecter le matériel à l'aide de dmidecode

La détection automatique du matériel a toujours été un peu comme une loterie, mais elle s'est améliorée ces dernières années, car de nombreux fabricants documentent leurs produits plus en détail et ont également des informations spécifiques disponibles en ligne. Pour connaître les informations matérielles concernant la RAM installée sur votre machine, utilisez le dmidecode commande (package pour Debian GNU/Linux, Ubuntu et Linux Mint : dmidecode).

Entre autres informations, cet outil rapporte des données détaillées sur les composants du système installés tels que le processeur, la carte de base et la RAM. Les informations sont basées sur l'interface de gestion de bureau (DMI) [1], qui est un cadre qui classe les composants individuels sur un ordinateur de bureau, un ordinateur portable ou un serveur en faisant abstraction de ces composants du logiciel qui les gère [2]. L'option --mémoire de type fait référence aux dispositifs de mémoire. Pour les autres classes DMI, consultez la page de manuel de dmidecode.

# dmidecode --type mémoire
# dmidecode 2.12
SMBIOS 2.7 présent.
Poignée 0x0007, type DMI 16, 23 octets
Matrice de mémoire physique
Emplacement : carte système ou carte mère
Utilisation : mémoire système
Type de correction d'erreur : aucun
Capacité maximale : 16 Go
Gestion des informations d'erreur : non fourni
Nombre d'appareils : 1
Poignée 0x0008, type DMI 17, 34 octets
Périphérique de mémoire
Poignée de tableau : 0x0007
Gestion des informations d'erreur : non fourni
Largeur totale : 64 bits
Largeur des données : 64 bits
Taille : 8192 Mo
Facteur de forme : SODIMM
Ensemble : aucun
Localisateur : CanalA-DIMM0
Localisateur de banque : BANQUE 0
Type : DDR3
Détail du type : synchrone
Vitesse : 1600 MHz
Fabricant : Samsung
Numéro de série : 25252105
Étiquette d'actif : aucun
Numéro de pièce : M471B1G73DB0-YK0
Rang : Inconnu
Vitesse d'horloge configurée : 1600 MHz

Cette machine est actuellement équipée d'une RAM DDR3 8G avec une vitesse d'horloge configurée de 1600 MHz. Comme vous pouvez le voir, la capacité maximale disponible de la RAM embarquée est de 16G, ce qui signifie qu'elle peut être étendue par un deuxième module 8G.

Informations graphiques sur la mémoire

Si vous préférez une interface graphique pour récupérer ces informations les outils Hardinfo [3] et Hardware Lister (version GTK+) [4] pourraient vous intéresser. Sur Debian GNU/Linux, Ubuntu et Linux Mint ces programmes sont disponibles via les packages hardinfo et lshw-gtk. La figure 2 montre l'interface utilisateur de Hardinfo affichant les informations de mémoire sur une installation Xubuntu.

Combien de mémoire est actuellement disponible

Parfois, moins c'est plus. Sur la ligne de commande, les informations concernant la mémoire sont disponibles via le libre commander. Sur Debian GNU/Linux, Ubuntu et Linux Mint ce programme fait partie du paquet procps [5]. La figure 2 montre la sortie dans une fenêtre de terminal.

En tant que sélection des autres options, libre accepte divers paramètres tels que :

Dans la figure 3, la sortie est affichée en mégaoctets à l'aide de l'option -m. Le système dispose de 4G de RAM alors que 725M sont actuellement utilisés.

Informations sur la mémoire du point de vue du noyau Linux

Les outils mentionnés ci-dessus reposent sur des informations brutes qui sont conservées dans le système de fichiers proc du noyau Linux. Pour afficher ces détails, affichez le contenu du fichier /proc/meminfo en utilisant le chat utilitaire dans un terminal :

$ cat /proc/meminfo
MemTotal : 7888704 ko
MemFree: 302852 Ko
MemDisponible : 448824 ko
Tampons : 17828 Ko
En cache : 326104 ko
SwapCached : 69592 Ko
Actif : 2497184 Ko
Inactif : 650912 Ko
Actif(anon): 2338748 ko
Inactif(anon): 525316 ko
Actif(fichier): 158436 ko
Inactif(fichier): 125596 Ko
Inévitable : 64 ko
Mlocké : 64 ko
SwapTotal : 16150524 ko
SwapFree: 15668480 Ko
Sale : 3008 ko
Réécriture : 0 ko
AnonPages : 2774656 ko
Mappé : 4414752 ko
Shmem : 59900 ko
Dalle : 130216 ko
SRécupérable : 61748 ko
SUnreclaim: 68468 ko
KernelStack : 7328 ko
Tableaux des pages : 42844 ko
NFS_Instable : 0 ko
Rebond : 0 ko
WritebackTmp : 0 ko
Limite d'engagement : 20094876 ko
Engagé_AS : 10344988 ko
VmallocTotal : 34359738367 kB
VmallocUtilisé : 367296 ko
VmallocChunk : 34359345768 ko
MatérielCorrompu : 0 ko
AnonÉnormesPages : 0 ko
Pages énormes_Total : 0
Pages énormes_gratuites : 0
ImmensePages_Rsvd : 0
Pages énormes_Surp : 0
Taille de la page énorme : 2048 ko
DirectMap4k : 78448 ko
DirectMap2M : 2756608 Ko
DirectMap1G : 5242880 Ko
$

Pour plus d'informations statistiques sur l'utilisation du processeur, la mémoire et les processus, vous pouvez consulter les outils vmstat, et iostat (paquets Debian procps et sysstat).

Travailler avec des processus - ps, htop et pstree

Pour afficher les processus actifs de votre système Linux, utilisez le ps commander. Habituellement, la sortie est triée par ordre alphabétique. Mais le ps commande peut faire beaucoup plus. Utilisation des options aux --trier -rss la sortie de la liste des processus est triée par leur utilisation de la mémoire dans un ordre descendant. La figure 4 montre les processus qui ont la plus forte demande en mémoire. La sortie est triée par la 6ème colonne intitulée RSS qui abrège la taille de l'ensemble résident. La valeur est donnée en kilo-octets.

Les commandes ps, pstree et htop sont étroitement liés en termes d'informations que ces outils affichent. Tous les deux pstree et htop afficher un graphique pour visualiser les dépendances du processus. htop agit comme une version interactive qui vous permet de faire défiler la liste des processus de haut en bas. La figure 5 montre htop sur un système de bureau avec une sélection de processus triés par leur utilisation spécifique de la mémoire (5ème colonne).

Recherche de processus qui utilisent la mémoire d'échange

Plus il y a de processus lancés, plus la mémoire est utilisée en même temps. Dès que votre système Linux n'a plus de pages de mémoire inutilisées, le noyau Linux décide d'échanger les pages de mémoire sur le disque en utilisant la méthode la moins utilisée (LRU). Pour répondre à la question, quels processus utilisent la mémoire d'échange et quelle quantité est utilisée en particulier, vous pouvez jeter un œil à la sortie du programme supérieur. En 2016, Erik Ljungstrom a publié une brève description de la façon de récupérer ces informations et d'étendre cette colonne à la sortie de top [6]. La figure 6 montre cette sortie sur un système qui a beaucoup de pages de mémoire dans la RAM et n'utilise pas Swap, actuellement.

De plus, en 2011, il a déjà publié un script bash qui évalue les informations du système de fichiers proc pour afficher l'utilisation du swap processus par processus [7]. Même 7 ans plus tard et déjà décrit comme obsolète, le script est toujours excellent et montre comment automatiser des tâches sur un système Linux. C'est pourquoi nous sommes certains qu'il est utile de le montrer ici encore une fois.

La sortie du script est la suivante (exécutez comme racine l'utilisateur récupère les données complètes):

# ./échanger.sh
PID=1 - Swap utilisé : 0 - (systemd )
PID=2 - Swap utilisé : 0 - (kthreadd )
PID=3 - Swap utilisé : 0 - (ksoftirqd/0 )
PID=5 - Swap utilisé : 0 - (kworker/0:0H )
PID=6 - Swap utilisé : 0 - (kworker/u16:0 )
PID=7 - Swap utilisé : 0 - (rcu_sched )
PID=8 - Swap utilisé : 0 - (rcu_bh )
PID=9 - Swap utilisé : 0 - (migration/0 )
PID=10 - Swap utilisé : 0 - (chien de garde/0 )
PID=11 - Swap utilisé : 0 - (chien de garde/1 )
PID=12 - Swap utilisé : 0 - (migration/1 )
PID=13 - Swap utilisé : 0 - (ksoftirqd/1 )
PID=15 - Swap utilisé : 0 - (kworker/1:0H )
PID=16 - Swap utilisé : 0 - (chien de garde/2 )
PID=17 - Swap utilisé : 0 - (migration/2 )
PID=18 - Swap utilisé : 0 - (ksoftirqd/2 )
PID=20 - Swap utilisé : 0 - (kworker/2:0H )

#

Conclusion

La boîte à outils Linux contient une liste infinie de programmes disponibles pour vous aider à analyser l'utilisation de la mémoire de votre système Linux. Nous venons de jeter un coup d'œil - des données brutes aux informations prétraitées - tout est là. Connaissez simplement vos outils. Pour se familiariser avec eux, prenez un peu de temps et jouez avec eux.

Ceci est la partie 2 de la série sur la gestion de la mémoire du noyau Linux.  La partie 1 traite de la mémoire d'échange, dans la troisième partie de cette série, nous discuterons de la façon d'optimiser l'utilisation de la mémoire. Cela inclura la gestion des disques virtuels ainsi que des fichiers d'échange compressés.

Liens et références

Série de gestion de la mémoire Linux

Remerciements

L'auteur tient à remercier Mandy Neumeyer et Gerold Rupprecht pour leur soutien lors de la préparation de cet article.

Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...
Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...