Comment vérifier l’utilisation de la mémoire sous 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.
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
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
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
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
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
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
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:
- 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
- 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.
Flux RSS newsletter Newsletter hebdomadaire par e-mail ➔
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 |