– Le /proc Le système de fichiers est un pseudo système de fichiers. Il n'existe pas sur un disque. Au lieu de cela, le noyau le crée en mémoire. Il est utilisé pour fournir des informations sur le système (à l'origine sur les processus, d'où le nom).
– Le « /proc/meminfo ' est utilisé par pour signaler la quantité de mémoire libre et utilisée (à la fois physique et d'échange) sur le système ainsi que la mémoire partagée et les tampons utilisés par le noyau.
– Le système de fichiers /proc est décrit plus en détail dans la page de manuel de la procédure (man proc).
Exemple de "cat /proc/meminfo"
La sortie de la commande "cat /proc/meminfo" serait différente selon le système d'exploitation et l'architecture du serveur. Les champs répertoriés ci-dessous peuvent être légèrement différents ou absents de votre système.
# cat /proc/meminfo MemTotal: 1882064 kB MemFree: 1376380 kB MemAvailable: 1535676 kB Buffers: 2088 kB Cached: 292324 kB SwapCached: 0 kB Active: 152944 kB Inactive: 252628 kB Active(anon): 111328 kB Inactive(anon): 16508 kB Active(file): 41616 kB Inactive(file): 236120 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Dirty: 40 kB Writeback: 0 kB AnonPages: 111180 kB Mapped: 56396 kB Shmem: 16676 kB Slab: 54508 kB SReclaimable: 25456 kB SUnreclaim: 29052 kB KernelStack: 2608 kB PageTables: 5056 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 3038180 kB Committed_AS: 577664 kB VmallocTotal: 34359738367 kB VmallocUsed: 14664 kB VmallocChunk: 34359717628 kB HardwareCorrupted: 0 kB AnonHugePages: 24576 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 69632 kB DirectMap2M: 2027520 kB
Champs
Les informations se présentent sous la forme de statistiques hautes et basses. En haut, vous voyez un résumé des valeurs les plus courantes que les gens aimeraient examiner. Vous trouverez ci-dessous les valeurs individuelles dont nous discuterons. Nous allons d'abord discuter des statistiques élevées.
Statistiques de haut niveau
- MemTotal :RAM totale utilisable (c'est-à-dire la RAM physique moins quelques bits réservés et le code binaire du noyau)
- MemFree :est la somme de LowFree+HighFree (statistique globale)
- Mempartagé :0 ; est ici pour des raisons de compatibilité mais toujours zéro.
- Tampons :Mémoire dans le cache tampon. la plupart du temps inutile comme métrique de nos jours Le stockage relativement temporaire pour les blocs de disque bruts ne devrait pas devenir extrêmement volumineux (20 Mo environ)
- En cache :Mémoire dans le pagecache (diskcache) moins SwapCache, n'inclut pas SwapCached
- SwapCache :La mémoire qui a déjà été échangée est réintroduite mais est toujours dans le fichier d'échange (si de la mémoire est nécessaire, elle n'a pas besoin d'être à nouveau échangée car elle est déjà dans le fichier d'échange. Cela permet d'économiser des E/S)
Statistiques détaillées
VM divise les pages de cache en mémoire "active" et "inactive". L'idée est que si vous avez besoin de mémoire et que du cache doit être sacrifié pour cela, vous le retirez d'inactif car il est prévu qu'il ne soit pas utilisé. La machine virtuelle vérifie régulièrement ce qui est utilisé et déplace les éléments.
Les statistiques sont :
- Actif : mémoire qui a été utilisée plus récemment et qui n'est généralement pas récupérée, sauf en cas de nécessité absolue.
- Inact_dirty :Dirty signifie "peut nécessiter une écriture sur le disque ou un swap". Prend plus de travail à libérer. L'exemple peut être des fichiers qui n'ont pas encore été écrits. Ils ne sont pas écrits en mémoire trop tôt afin de réduire les E/S. Par exemple, si vous écrivez des journaux, il peut être préférable d'attendre d'avoir un journal complet prêt avant de l'envoyer sur le disque.
- Inact_clean :Supposé être facilement libérable. Le noyau essaiera de garder toujours des éléments propres pour avoir un peu de répit.
- Inact_target :Juste une métrique d'objectif que le noyau utilise pour s'assurer qu'il y a suffisamment de pages inactives. En cas de dépassement, le noyau ne fonctionnera pas pour déplacer les pages d'actif à inactif. Une page peut également devenir inactive de plusieurs autres manières, par ex. si vous faites une longue E/S séquentielle, le noyau suppose que vous n'allez pas utiliser cette mémoire et la rend inactive de manière préventive. Ainsi, vous pouvez obtenir plus de pages inactives que la cible, car le noyau marque certains caches comme "plus susceptibles de ne jamais être utilisés" et les laisse tricher dans l'ordre des "dernières utilisations".
- Total élevé :est la quantité totale de mémoire dans la région haute. Highmem est toute la mémoire au-dessus (environ) de 860 Mo de RAM physique. Le noyau utilise des astuces indirectes pour accéder à la région de mémoire élevée. Le cache de données peut aller dans cette région de mémoire.
- Total bas :La quantité totale de mémoire non haute mémoire.
- LowFree :La quantité de mémoire libre de la région de mémoire faible. C'est la mémoire que le noyau peut adresser directement. Toutes les structures de données du noyau doivent aller dans une mémoire insuffisante.
- SwapTotal :Quantité totale de mémoire d'échange physique.
- SwapGratuit :Quantité totale de mémoire d'échange libre. Mémoire qui a été expulsée de la RAM et se trouve temporairement sur le disque
- Sale :Mémoire qui attend d'être réécrite sur le disque
- Réécriture :Mémoire qui est activement réécrite sur le disque
- Mappé :fichiers qui ont été mappés, tels que des bibliothèques
- Dalle :cache des structures de données dans le noyau
- Committed_AS :Une estimation de la quantité de RAM dont vous auriez besoin pour garantir à 99,99 % qu'il n'y aura jamais de OOM (mémoire insuffisante) pour cette charge de travail. Normalement, le noyau surchargera la mémoire. Cela signifie que, disons que vous faites un malloc de 1 Go, rien ne se passe, vraiment. Ce n'est que lorsque vous commencez à UTILISER cette mémoire malloc que vous obtiendrez de la mémoire réelle à la demande, et autant que vous en utilisez. Donc, vous prenez en quelque sorte une hypothèque et espérez que la banque ne fera pas faillite. D'autres cas peuvent inclure lorsque vous mmapez un fichier partagé uniquement lorsque vous y écrivez et que vous obtenez une copie privée de ces données. Alors qu'il est normalement partagé entre les processus. Le Committed_AS est une estimation de la quantité de RAM/d'échange dont vous auriez besoin dans le pire des cas.
- Tableaux de pages :quantité de mémoire dédiée au niveau le plus bas des tables de pages.
- Cartes inversées :nombre de reverse mappings effectués
- VmallocTotal :taille totale de la zone mémoire vmalloc
- VmallocUsed :quantité de zone vmalloc utilisée
- VmallocChunk :le plus grand bloc contigu de la zone vmalloc qui est libre