J'ai remarqué que la génération de rapports de la commande free
avait changé quelque part entre Trusty et Xenial. Voici ce que `free -m 'montre sur l'un de mes ordinateurs Trusty:
$ free -m
total used free shared buffers cached
Mem: 7916 7645 271 99 455 1764
-/+ buffers/cache: 5426 2490
Swap: 24999 805 24194
Voici l'équivalent sur (un autre) système Xenial:
$ free -m
total used free shared buff/cache available
Mem: 3553 1192 857 16 1504 2277
Swap: 3689 0 3689
La ligne +/- tampons/cache, que je regardais principalement, a disparu. Comment dois-je interpréter les nouveaux chiffres?
Veuillez considérer l'exemple de sortie obtenu avec la commande free
dans mon Ubuntu 12.04
:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
La valeur du champ Mem used
name __ (kb_main_used) est maintenant calculée comme suit:
used = total - free - cached - buffers
Auparavant, c'était:
used = total - free
Cette modification a été introduite dans le commit suivant https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b7e6c96f197f358f511f8ed9
Une valeur intermédiaire:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
La valeur +/- des tampons/cache est calculée comme suit:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
La nouvelle valeur buff/cache est calculée comme suit:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
Identique au buffers_plus_cached
, utilisé dans les versions précédentes, la différence était qu'il était auparavant utilisé en interne, et qu'il est maintenant affiché directement. La ligne suivante, -/+ buffers/cache
, a été supprimée.
Pour plus d'informations, veuillez vérifier ces commits, où ces modifications ont été introduites: https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1https://gitlab.com/procps-ng/procps/commit/c9908b59712d1afd6b9bf7971ba1d8900ae5adb8
À partir du nouveau champ available
name__, pour les noyaux Linux antérieurs à 2.6.27, sa valeur est identique à la valeur free
name__, mais pour les versions ultérieures du noyau, sa valeur est légèrement différente:
Estimation of how much memory is available for starting new
applications, without swapping. Unlike the data provided by the
cache or free fields, this field takes into account page cache
and also that not all reclaimable memory slabs will be reclaimed
due to items being in use (MemAvailable in /proc/meminfo,
available on kernels 3.14, emulated on kernels 2.6.27+,
otherwise the same as free)
Courtesy: http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html
La réponse spécifique à vos questions serait donc:
free
inclut des tampons/cache dans les calculs des valeurs de Mem used/free
.+/- buffers/cache
qui existait auparavant dans les versions précédentes de free
est maintenant disponible en tant que: used
name __ = colonne Mem used
actuelle (son calcul est détaillé ci-dessus)free
name __ est disponible en tant que valeur plus précise dans la nouvelle colonne en cours available
name__ N.B: Les noms de variables kb_*
sont les noms internes utilisés dans le code source.