IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Mémoire swap cache


Sujet :

Administration système

  1. #1
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Points : 59
    Points
    59
    Par défaut Mémoire swap cache
    Bonjour,

    La commande "free" permet de visualiser la mémoire utilisée par la machine mais également la partie "buffers" et "cached".

    En 3ème ligne on a la mémoire swap utilisée, si toutefois notre serveur en a eu besoin à un moment donné.

    En revanche, avec la commande "top", on retrouve bien ces valeurs mais au niveau de la mémoire swap on a aussi une partie "cached".

    Serait-ce de la mémoire en cache pour la partie swap ?

  2. #2
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 476
    Points : 11 051
    Points
    11 051
    Par défaut
    Bonjour Kevin,

    J'ai «investigué» ta question il y a quelques temps avec des réponses non encore publiées que je suppose appropriées.

    Ce sujet étant intéressant pour toutes celles et ceux qui nous lisent, peux-tu joindre des informations plus «parlantes» avec la balise code (#) pour que l'on y voit plus clairement ?
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

  3. #3
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 476
    Points : 11 051
    Points
    11 051
    Par défaut
    J'ai récupéré un man en français et joint ci-après le résultat de free et de top en exécutant la commande export LANG=C pour un affichage en anglais valable le temps d'une session dans le terminal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ free
                  total        used        free      shared  buff/cache   available
    Mem:        2992668     1273212      946048      143292      773408     1413000
    Swap:       2097148       97536     1999612
    
    
    top - 14:07:08 up  2:20,  1 user,  load average: 1.02, 1.42, 2.08
    Tasks: 173 total,   1 running, 172 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 16.7 us,  8.3 sy,  0.0 ni, 72.2 id,  2.8 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :   2922.5 total,    919.8 free,   1261.1 used,    741.6 buff/cache
    MiB Swap:   2048.0 total,   1952.7 free,     95.2 used.   1378.3 avail Mem
    man freeDESCRIPTION
    free affiche la quantité totale de mémoire physique et d'espace d'échange libre et utilisée par le système, ainsi que les tampons utilisés par le noyau. La
    colonne de mémoire partagée représente soit la valeur MemShared (noyaux de la série 2.4), soit la valeur Shmem (noyaux à partir de la série 2.6), prise dans
    le fichier /proc/meminfo. La valeur est nulle si aucune des entrées n’est exportée par le noyau.

    NOM
    proc - Pseudosystème de fichiers d'informations sur les processus

    man procDESCRIPTION
    Le système de fichiers proc est un pseudosystème de fichiers qui fournit une interface avec les structures de données du noyau. Il est généralement monté sur
    /proc. La plupart des fichiers sont en lecture seule, mais quelques uns permettent la modification de variables du noyau.

    /proc/meminfo
    Ce fichier fournit des statistiques sur l'utilisation mémoire du système. Il sert au programme free(1) pour indiquer la quantité de mémoires (physique
    et d'échange) libre et utilisée, ainsi que la mémoire partagée et les tampons utilisés par le noyau. Chaque ligne du ficher contient un nom de pa‐
    ramètre, suivi d'un deux points, la valeur du paramètre et une unité éventuelle de mesure (par exemple « kB » pour « ko »). La liste suivante décrit
    les noms de paramètre et le spécificateur de format nécessaire pour lire la valeur du champ. À part si précisé autrement, tous les champs sont pré‐
    sents depuis au moins Linux 2.6.0. Certains champs ne sont affichés que si le noyau a été configuré avec plusieurs options ; ces dépendances sont no‐
    tées dans la liste.

    MemTotal %lu
    Total de RAM utilisable (c'est-à-dire la RAM physique moins quelques bits réservés et le code binaire du noyau).

    MemFree %lu
    La somme de LowFree et HighFree.

    Buffers %lu
    Stockage relativement temporaire pour les blocs de disque bruts qui ne devraient pas devenir trop gros (environ 20 Mo).

    Cached %lu
    Cache en mémoire pour les fichiers sur le disque (le cache de pages). N'inclut pas SwapCached.

    SwapCached %lu
    La mémoire qui avait été placée en espace d'échange (« swap »), qui en a été retirée, mais qui et toujours dans le fichier d'échange (si la
    pression en mémoire est importante, ces pages n'ont pas besoin d'être de nouveau placées dans l'espace d'échange, car elles sont déjà dans le
    fichier d'échange. Cela évite des E/S).

    (.../...)

    SwapTotal %lu
    Quantité totale d'espace d'échange disponible.

    SwapFree %lu
    Quantité d'espace d'échange non utilisée.

    Dirty %lu
    Mémoire en attente d'être réécrite sur disque.

    Writeback %lu
    Mémoire en cours de réécriture sur disque.

    AnonPages %lu (depuis Linux 2.6.18)
    Pages sauvées sous une autre forme qu'un fichier, projetées dans des tables de pages en espace utilisateur.

    Mapped %lu
    Fichier qui ont été projetés en mémoire, comme les bibliothèques.

    Shmem %lu (depuis Linux 2.6.32)
    [À documenter.]

    Slab %lu
    Cache de structures de données dans le noyau.

    SReclaimable %lu (depuis Linux 2.6.19)
    Partie de Slab qui pourrait être réclamée, comme les caches.

    SUnreclaim %lu (depuis Linux 2.6.19)
    Partie de Slab qui ne peut pas être réclamée en cas de pression en mémoire.
    (.../...)



    Pour aller plus loin, Linus Torvalds nous répond in extenso

    /proc/meminfo: provide estimated available memory

    Many load balancing and workload placing programs check /proc/meminfo to
    estimate how much free memory is available. They generally do this by
    adding up "free" and "cached", which was fine ten years ago, but is
    pretty much guaranteed to be wrong today.

    It is wrong because Cached includes memory that is not freeable as page
    cache, for example shared memory segments, tmpfs, and ramfs, and it does
    not include reclaimable slab memory, which can take up a large fraction
    of system memory on mostly idle systems with lots of files.

    Currently, the amount of memory that is available for a new workload,
    without pushing the system into swap, can be estimated from MemFree,
    Active(file), Inactive(file), and SReclaimable, as well as the "low"
    watermarks from /proc/zoneinfo.

    However, this may change in the future, and user space really should not
    be expected to know kernel internals to come up with an estimate for the
    amount of free memory.

    It is more convenient to provide such an estimate in /proc/meminfo. If
    things change in the future, we only have to change it in one place.
    Source: kernel/git/torvalds/linux.git - Linux kernel source tree

    Source initiale: linux - What is the difference between MemFree and MemAvailable in /proc/meminfo - Super User


    Référence complémentaire:
    Sur les systèmes du type Unix, procfs (process file system, système de fichiers processus en anglais) est un pseudo-système de fichiers (pseudo car dynamiquement généré au démarrage1) utilisé pour accéder aux informations du noyau sur les processus. Le système de fichiers est souvent monté sur le répertoire /proc.

    Puisque /proc n'est pas une arborescence réelle, il ne consomme aucun espace disque mais seulement une quantité limitée de mémoire vive. Cela aboutit à un paradoxe apparent : un fichier non vide a une taille affichée de 0 (avec ls).

    procfs est supporté sur les systèmes suivants:

    Solaris
    BSD
    Linux, qui étend le concept au-delà des processus : entre autres, description détaillée des composants matériels, du réseau...etc
    IBM AIX (qui utilise l'implémentation de Linux pour une meilleure compatibilité)
    QNX, (Unix temps réel)
    (.../...)
    Source: Procfs - wikipedia
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

  4. #4
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 476
    Points : 11 051
    Points
    11 051
    Par défaut
    La commande vmstat (qui utilise également /proc/meminfo entre autres) permet de mieux synthétiser la réponse à la question initiale:
    La commande "free" permet de visualiser la mémoire utilisée par la machine mais également la partie "buffers" et "cached".

    En 3ème ligne on a la mémoire swap utilisée, si toutefois notre serveur en a eu besoin à un moment donné.

    En revanche, avec la commande "top", on retrouve bien ces valeurs mais au niveau de la mémoire swap on a aussi une partie "cached".

    Serait-ce de la mémoire en cache pour la partie swap ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ locale
    LANG=fr_FR.UTF-8
    LANGUAGE=fr_FR
    LC_CTYPE="fr_FR.UTF-8"
    LC_NUMERIC="fr_FR.UTF-8"
    LC_TIME="fr_FR.UTF-8"
    LC_COLLATE="fr_FR.UTF-8"
    LC_MONETARY="fr_FR.UTF-8"
    LC_MESSAGES="fr_FR.UTF-8"
    LC_PAPER="fr_FR.UTF-8"
    LC_NAME="fr_FR.UTF-8"
    LC_ADDRESS="fr_FR.UTF-8"
    LC_TELEPHONE="fr_FR.UTF-8"
    LC_MEASUREMENT="fr_FR.UTF-8"
    LC_IDENTIFICATION="fr_FR.UTF-8"
    LC_ALL=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ vmstat 3 3
    procs ----------mémoire---------- -échange- -----io---- -système- ------cpu-----
     r  b   swpd  libre tampon  cache   si   so    bi    bo   in   cs us sy id wa st
     0  1      0 917364 400472 1095060    0    0   897    58  290  473  4  2 66 27  0
     0  1      0 901636 406860 1103376    0    0  2383     4 1072 2360  1  2 64 33  0
     2  0      0 888212 413032 1111680    0    0  2357     0 1075 2188  1  2 60 37  0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ export LANG=C
    $ vmstat 3 3
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  1      0 615740 526232 1270972    0    0   926    72  314  536  4  2 66 28  0
     0  1      0 581540 538948 1292288    0    0  5644     4 1577 4069  1  5 60 34  0
     1  1      0 563612 546332 1303352    0    0  3016     7 1213 2626  1  3 64 32  0

    5.2. memory (mémoire)

    swpd : Quantité de mémoire virtuelle utilisée.
    free : Quantité de mémoire disponible.
    buff : Quantité de mémoire tampon.
    cache : Quantité de mémoire cache.
    inact : Quantité de mémoire inactive (option -a).
    active : Quantité de mémoire active (option -a).

    5.3. swap (espace d'échange)

    si : Quantité de mémoire paginée lue depuis le disque en ko/s.
    so : Quantité de mémoire paginée transférée sur disque en ko/s.
    Source : Man page 8 : vmstat
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Java et consommation de mémoire swap
    Par hugo123 dans le forum Langage
    Réponses: 5
    Dernier message: 28/01/2009, 01h05
  2. [AIX] Libération mémoire SWAP
    Par linar009 dans le forum AIX
    Réponses: 10
    Dernier message: 30/08/2008, 14h37
  3. Mémoire swap et mémoire partagée
    Par Invité dans le forum Administration système
    Réponses: 6
    Dernier message: 16/12/2005, 16h39
  4. Problème Mémoire Cache
    Par Ryadus dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 13/12/2005, 16h21
  5. mémoire cache
    Par cortex024 dans le forum Composants
    Réponses: 1
    Dernier message: 20/08/2005, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo