web-dev-qa-db-fra.com

Qu'est-ce qui est "caché" dans la commande top?

Lors de l'exécution de top, je reçois:

top - 09:10:52 up 18:37,  1 user,  load average: 1.56, 1.33, 1.15
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.6%sy,  1.0%ni, 92.5%id,  5.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  3045460k used,  1148844k free,        0k buffers
Swap:        0k total,        0k used,        0k free,  2256128k cached

Voir la partie: 2256128k en cache? Qu'est-ce que cela veut dire exactement?

Je compare deux VPS de deux fournisseurs, celui-ci a toujours une grande quantité là-bas (70% de la mémoire utilisée) et l’autre fournisseur de VPS indique toujours 0.

45
KKK

Ce nombre avant la mise en cache est la quantité de mémoire physique utilisée par les tampons de cache pour vos systèmes de fichiers.

C'est pas réellement lié à SWAP, bien que figurant sur la ligne "Swap:".

Pour vérifier ma réponse avec une petite expérience, essayez ce qui suit:

Exécutez top et notez la valeur 'cached'. Maintenant courir

dd if=/dev/zero of=~/trick bs=1M count=128

si vous exécutez à nouveau top, vous remarquerez que la "mise en cache" a augmenté de 128M

Maintenant, supprimez le fichier

rm ~/trick

Roulez à nouveau et vous verrez que 'caché' a été supprimé de 128M

Donc pour Mem:

total = used + free et

used = <all apps> + buffers + cached

(où les tampons sont fondamentalement métadonnées pour le caché). Un peu déroutant d'une interface utilisateur.

15
user61928

le noyau Linux utilisera la mémoire disponible pour la mise en cache du disque, sauf si cela est requis par un programme en cours d'exécution.

Ceci est considéré comme bon; Disons que vous avez 4 Go de RAM et que vos programmes n’utilisent que 1 Go. Les 3 autres Go vont être gaspillés. Malgré l'impression de "bien-être" de savoir que vous n'utilisez que 25% de votre mémoire, la contrepartie est que les 75% restants sont inutilisés. Le noyau utilise donc cela pour la mise en cache des fichiers, ce qui améliore considérablement les performances. C'est automatique; contrairement aux systèmes d'exploitation plus anciens, vous n'avez pas besoin de décider combien vous allez consacrer au cache disque ni de le configurer manuellement.

"Le cache disque de Linux est très discret. Il utilise de la mémoire de réserve pour augmenter considérablement la vitesse d'accès au disque, sans retirer de mémoire aux applications. Un magasin de RAM entièrement utilisé constitue une utilisation matérielle efficace, et non un avertissement."

C’est une question tellement courante qu’un site Web entier lui est consacré:

http://www.linuxatemyram.com

Le site Web dispose même d'un moyen de vider le cache disque afin que vous puissiez ensuite exécuter certaines applications et voir à quelle vitesse elles sont avec le cache activé :)

115
roadmr