décembre 17, 2021

Comment vérifier l’utilisation de la mémoire sous Linux

 Voir toutes les FAQ relatives à GNU/ Linux

Comment vérifier l’utilisation de la mémoire sous Linux à l’aide des options de ligne de commande et d’interface graphique ?
Nous avons une RAM physique telle que 16 Go et une mémoire d’échange. La mémoire d’échange n’est rien d’autre que de l’espace disque qui permet à votre ordinateur Linux d’exécuter simultanément plus d’applications que ce qui se trouve dans la mémoire système (RAM). Cette page explique diverses commandes pour vérifier l’utilisation et l’utilisation de la mémoire sous Linux à l’aide d’outils de ligne de commande et d’interface graphique.

PUBLICITÉ

Commandes pour vérifier l’utilisation de la mémoire sous Linux

Votre système Linux doit fonctionner à un niveau optimal. La mémoire joue un rôle essentiel dans un système Linux. Un développeur ou un administrateur système chevronné doit connaître la quantité totale de données physiques libres et utilisées, y compris la mémoire d’échange sur le serveur. Il serait préférable que vous gardiez également un œil sur les tampons et les caches utilisés par le noyau.

Le fichier /proc/meminfo

Le fichier /proc/meminfo rapporte des statistiques sur l’utilisation de la mémoire sous Linux. Utilisez la commande cat/less ou la commande grep/egrep comme suit sur votre boîte Linux:
cat /proc/meminfo
more /proc/meminfo

 Comment vérifier l'utilisation de la mémoire sous Linux
Chaque ligne du fichier /proc/meminfo se compose d’un nom de paramètre, suivi d’un deux-points, de la valeur du paramètre et d’une unité de mesure d’option. Par exemple, « kB ».

Comprendre les paramètres d’utilisation de la mémoire

Tableau de description des champs
Paramètre Description
MemTotal RAM totale utilisable (c.-à-d., RAM physique moins quelques bits réservés et le code binaire du noyau).
MemFree La somme de LowFree + HighFree.
MemAvailable (depuis Linux 3.14) Une estimation de la quantité de mémoire disponible pour démarrer de nouvelles applications, sans permutation.
Tampons Stockage relativement temporaire pour les blocs de disque bruts qui ne devraient pas être extrêmement volumineux (environ 20 Mo).
Mise en cache Cache en mémoire pour les fichiers lus à partir du disque (le cache de page). N’inclut pas SwapCached.
SwapCached La mémoire qui a été échangée une fois est échangée mais se trouve toujours dans le fichier d’échange.
Mémoire active qui a été utilisée plus récemment et qui n’est généralement pas récupérée sauf si cela est absolument nécessaire.
Mémoire inactive qui a été moins récemment utilisée. Il est plus admissible à être récupéré à d’autres fins.
HighTotal Quantité totale de highmem. Highmem est toute la mémoire au-dessus de ~ 860 Mo de mémoire physique. Les zones Highmem sont destinées aux programmes d’espace utilisateur ou au cache de pages. Le noyau doit utiliser des astuces pour accéder à cette mémoire, ce qui la rend plus lente que lowmem.
HighFree Quantité de highmem gratuit.
LowFree Quantité de lowmem gratuit.
SwapTotal Quantité totale d’espace d’échange disponible.
SwapFree Quantité d’espace d’échange actuellement inutilisé.
Mémoire sale qui attend d’être réécrite sur le disque.
Mémoire Writeback qui est en cours d’écriture active sur le disque.
Pages anonymes Pages non sauvegardées dans des fichiers mappées dans des tables de pages de l’espace utilisateur.
Fichiers mappés qui ont été mappés en mémoire (avec mmap(2)), tels que les bibliothèques.
Shmem Quantité de mémoire consommée dans les systèmes de fichiers tmpfs(5).
Allocations de noyau KReclaimable que le noyau tentera de récupérer sous la pression de la mémoire. Comprend SReclaimable (ci-dessous), et d’autres allocations directes avec un shrinker.
Slab Cache des structures de données dans le noyau. (Voir slabinfo(5).)
SReclaimable Partie de la dalle, qui pourrait être récupérée, comme des caches.
SUnreclaim Partie de la dalle, qui ne peut pas être récupérée sous pression de mémoire.
KernelStack Quantité de mémoire allouée aux piles du noyau.
Tables de pages Quantité de mémoire dédiée au niveau le plus bas des tables de pages.
NFS_Unstable Pages NFS envoyées au serveur, mais pas encore validées sur un stockage stable.
Mémoire de rebond utilisée pour les « tampons de rebond » des périphériques de bloc.
Mémoire WritebackTmp utilisée par FUSE pour les tampons d’effacement temporaire.
CommitLimit C’est la quantité totale de mémoire actuellement disponible à allouer sur le système, exprimée en kilo-octets. Cette limite n’est respectée que si la comptabilité stricte des surcommits est activée (mode 2 dans /proc/sys/vm/overcommit_memory). La limite est calculée selon la formule décrite sous /proc/sys/vm/overcommit_memory.
Commit_as La quantité de mémoire actuellement allouée sur le système. La mémoire validée est la somme de toute la mémoire allouée par les processus, même si elle n’a pas encore été  » utilisée » par eux. Un processus qui alloue 1 Go de mémoire (en utilisant malloc(3) ou similaire), mais ne touche que 300 Mo de cette mémoire apparaîtra comme n’utilisant que 300 Mo de mémoire même s’il dispose de l’espace d’adressage alloué pour l’ensemble des 1 Go. Ce 1 Go est de la mémoire qui a été « validée » par la machine virtuelle et peut être utilisée à tout moment par l’application d’allocation. Avec un surcommit strict activé sur le système (mode 2 dans /proc/sys/vm/overcommit_memory), les allocations qui dépasseraient le CommitLimit ne seront pas autorisées. Ceci est utile si l’on doit garantir que les processus n’échoueront pas en raison d’un manque de mémoire une fois que cette mémoire a été allouée avec succès.
VmallocTotal Taille totale de la zone mémoire vmalloc.
Vmalloc Quantité de surface vmalloc utilisée. Depuis Linux 4.4, ce champ n’est plus calculé et est codé en dur comme 0. Voir /proc/vmallocinfo.
VmallocChunk Le plus grand bloc contigu de la zone vmalloc qui est libre. Depuis Linux 4.4, ce champ n’est plus calculé et est codé en dur comme 0. Voir /proc/vmallocinfo.
LazyFree Affiche la quantité de mémoire marquée par madvise(2) MADV_FREE.
AnonHugePages D’énormes pages non sauvegardées dans des fichiers mappées dans des tables de pages de l’espace utilisateur.
ShmemHugePages Mémoire utilisée par la mémoire partagée (shmem) et tmpfs(5) allouée avec des pages énormes
ShmemPmdMapped Mémoire partagée mappée dans l’espace utilisateur avec de grandes pages.
CmaTotal Pages CMA totales (Allocateur de mémoire contigu).
CmaFree Pages CMA libres (Allocateur de mémoire contigu).
HugePages_Total La taille du pool de pages énormes.
HugePages_Free Le nombre de pages énormes dans le pool qui ne sont pas encore allouées.
HugePages_Rsvd C’est le nombre de pages énormes pour lesquelles un engagement d’allocation à partir du pool a été pris, mais aucune allocation n’a encore été faite. Ces énormes pages réservées garantissent qu’une application sera en mesure d’allouer une énorme page du pool de pages énormes au moment de la faute.
HugePages_Surap C’est le nombre de pages énormes dans le pool au-dessus de la valeur dans /proc/sys/vm/nr_hugepages. Le nombre maximum de pages énormes excédentaires est contrôlé par /proc/sys/vm/nr_overcommit_hugepages.
Hugepagesize La taille des pages énormes.
DirectMap4k Nombre d’octets de RAM mappés linéairement par le noyau dans des pages de 4 Ko.
DirectMap4M Nombre d’octets de RAM mappés linéairement par le noyau dans des pages de 4 Mo.
DirectMap2M Nombre d’octets de RAM mappés linéairement par le noyau dans des pages de 2 Mo.
DirectMap1G x86 avec les PAGES CONFIG_X86_64 et CONFIG_X86_DIRECT_GB activées.

Nous pouvons filtrer le fichier en utilisant la commande grep ou la commande egrep comme suit:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
 Fichier Linux proc meminfo

Utilisation de la commande free pour vérifier l’utilisation de la mémoire utilisée et libre

La sortie de /proc/meminfo est puissante mais pas conviviale. Par conséquent, nous devons utiliser la commande free. La commande free affiche la quantité de mémoire libre et utilisée dans le système Linux. Par exemple:
free
Vous voulez voir une sortie lisible par l’homme? Essayez:
free -h
free --human

Exemples de sorties:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
Les colonnes affichées sont les suivantes:
Colonne Description
total Mémoire installée totale
mémoire utilisée (calculée en tant que mémoire tampon totale–libre–cache)
mémoire inutilisée libre (MemFree et SwapFree dans /proc/meminfo)
mémoire partagée utilisée principalement par tmpfs (Shmem dans /proc/meminfo)
tampons Mémoire utilisée par les tampons du noyau (Tampons dans /proc/meminfo)
cache Mémoire utilisée par le cache de page et des dalles (mises en cache et pouvant être mises en mémoire dans /proc/meminfo)
buff/cache Somme des tampons et du cache
disponible Estimation de la quantité de mémoire disponible pour démarrer de nouvelles applications, sans échange.

Nous pouvons répéter l’impression de la sortie de commande libre toutes les N secondes. Par exemple, imprimez la sortie toutes les 5 secondes et quittez après dix répétitions (comptes) à l’écran:
free -s 5 -c 10
Nous pouvons contrôler la sortie de la commande libre comme suit:
free
free -k
free -g
free -m

Contrôle de la sortie de commande libre
Option Afficher la sortie dans
– b,bytesoctets
— kilo kilo-octets
— méga mégaoctets
— giga gigaoctets
— tera téraoctets
— peta pétaoctets
– k,kkibi kibioctets
– m, –mebi mebioctets
– g, — gibi gibioctets
— tebi tebioctets
— pebi pebioctets

commande vmstat

La commande vmstat est puissante et affiche des informations sur le matériel Linux, telles que:

  • Processus
  • Mémoire
  • Pagination
  • Bloc IO
  • Traps
  • Disques
  • Activité CPU

Ouvrez le terminal et tapez la commande suivante:
vmstat
Exemple de session depuis mon bureau Ubuntu Linux:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11434840 2567516 10238916 0 0 26 75 142 55 13 5 82 0 0

Passez le -w pour voir la sortie large à l’écran:
vmstat -w

procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11405404 2567988 10324528 0 0 26 75 142 58 13 5 82 0 0
DESCRIPTION DU CHAMP POUR LE MODE VM (Mémoire et échange)
Champ Description
swpd la quantité de mémoire virtuelle utilisée.
free la quantité de mémoire inactive.
buff la quantité de mémoire utilisée comme tampons.
cache la quantité de mémoire utilisée comme cache.
inactive la quantité de mémoire inactive. (- une option)
active la quantité de mémoire active. (- une option)
si Quantité de mémoire échangée depuis le disque (/s).
donc Quantité de mémoire échangée sur le disque (/s).

commande top et htop

Les commandes top et htop fournissent une vue dynamique en temps réel d’un système Linux en cours d’exécution. Cela inclut des informations sur:

Guides uniquement pour les supporters Patreon 🤓
  • Pas de publicité et de suivi
  • Guides détaillés pour les développeurs et les administrateurs système sur Opensourceflare✨
  • Rejoignez my Patreon pour soutenir les créateurs de contenu indépendants et commencer à lire les derniers guides:
    • Comment configurer le cluster Redis sentinel sur Ubuntu ou Debian Linux
    • Comment Configurer les clés SSH Avec YubiKey comme authentification à deux facteurs (U2F/FIDO2)
    • Comment configurer le cluster Mariadb Galera sur Ubuntu ou Debian Linux
    • Un tutoriel podman pour les débutants – partie I (exécuter des conteneurs Linux sans Docker et en mode sans démon)
    • Comment protéger Linux contre les périphériques USB indésirables à l’aide de USBGuard
    • Si votre domaine n’envoie pas d’e–mail, définissez ces paramètres DNS pour éviter l’usurpation d’identité et le phishing

Rejoignez Patreon ➔

  • Utilisation du matériel et du processeur
  • Disponibilité de Linux
  • Utilisation de la mémoire et de l’échange
  • Processus système et plus

Veuillez noter que le htop n’est pas installé par défaut. Mais vous pouvez l’installer sur CentOS, Debian, Ubuntu et d’autres systèmes d’exploitation facilement.

Exécutez la commande suivante:
top
htop

Rapportez l’utilisation de la mémoire avec une mémoire partagée divisée proportionnellement

L’outil smem signale:

  • Utilisation de la mémoire physique en tenant compte des pages de mémoire partagée. La mémoire non partagée est signalée comme USS (Taille de jeu unique).
  • La mémoire partagée est répartie uniformément entre les processus partageant cette mémoire.
  • La mémoire non partagée (USS) plus la proportion de mémoire partagée d’un processus est signalée comme le PSS (Taille de jeu proportionnelle).
  • L’USS et le PSS n’incluent que l’utilisation de la mémoire physique. Ils n’incluent pas la mémoire qui a été échangée sur le disque.
  • La mémoire peut être rapportée par un processus, par un utilisateur, par mappage ou à l’échelle du système. Le mode texte et la sortie graphique sont disponibles.

On peut installer smem en utilisant la commande apt/apt-get sur un Linux Debian/Ubuntu:
sudo apt install smem
Exécutez-le comme suit:
smem
# show whole system #
smem -w
# show meme usage about specifc user #
smem -u vivek
smem -u nginx
# get help #
man smem
smem --help

User Count Swap USS PSS RSS vivek 139 0 7593240 8210344 13017360

Vérification de l’utilisation de la mémoire sous Linux à l’aide de l’interface graphique

System Monitor est une application Linux GRAPHIQUE qui vous montre quels programmes sont en cours d’exécution et combien de temps de processeur, de mémoire et d’espace disque sont utilisés. Nous pouvons ouvrir le Moniteur système à partir de la vue d’ensemble des activités. Appuyez sur la touche Super de votre clavier. Vous pouvez voir vos fenêtres et applications dans la vue d’ensemble. Vous pouvez également commencer à taper pour rechercher vos applications, telles que System Monitor. L’onglet Ressources vous indique la quantité de mémoire (RAM) de votre ordinateur utilisée. Pour vérifier quels processus utilisent le plus de mémoire : Cliquez sur l’onglet Processus. Cliquez sur l’en-tête de colonne Mémoire pour trier les processus en fonction de l’utilisation de la mémoire.

Voir la documentation pour plus d’informations.

En résumant

Vous avez appris à trouver l’utilisation de la mémoire Linux (RAM) sur Linux à l’aide des outils GUI et CLI.

🐧 Obtenez les derniers tutoriels sur Linux, Open Source & DevOps via
Flux RSS newsletter Newsletter hebdomadaire par e-mail ➔

PUBLICITÉ

Catégorie Liste des commandes Unix et Linux
Gestionnaires de téléchargement wget
Documentation aide * mandb * man * pinfo
Analyseurs d’espace disque df •duf •ncdu •pydf
Gestion des fichiers cat*cp*moins * mkdir • plus * arbre
Pare-feu Alpine Awall * CentOS 8 * openSUSE * RHEL 8 * Ubuntu 16.04 * Ubuntu 18.04 * Ubuntu 20.04
Applications de bureau Linux Skype * Spotify * VLC 3
Utilitaires modernes bat*exa
Utilitaires réseau NetHogs * dig*host* ip*nmap
OpenVPN CentOS 7 * CentOS 8 * Debian 10 * Debian 8/9 * Ubuntu 18.04 * Ubuntu 20.04
Gestionnaire de paquets apk * apt
Gestion des processus bg * chroot * cron * renier * fg * regards * gtop * iotop * jobs * killall * kill * pidof * pstree • pwdx * temps * vtop
Recherche ag * grep * où est * qui
Composants shell compgen * echo * printf
Traitement de texte cut *rev
Informations utilisateur groupes * id • lastcomm • dernier * lid / libuser-lid * logname * membres * utilisateurs * whoami * qui * w
VPN WireGuard Alpine * CentOS 8 * Debian 10 * Pare-feu * Ubuntu 20.04

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.