Qu'est-ce que "cache" dans la commande supérieure?

45

En exécutant top , j'obtiens:

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 pièce: 2256128k en cache? Qu'est-ce que cela signifie exactement?

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

    
posée KKK 10.10.2012 - 15:19
la source

2 réponses

15

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

Il est pas réellement lié ​​à SWAP, bien qu’il soit 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 de 'caché'. Maintenant, lancez

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

Si vous relancez top, vous remarquerez que «caché» a augmenté de 128M

Maintenant, supprimez le fichier

rm ~/trick

Exécutez à nouveau Top et vous verrez que la mise en cache a été réduite de 128M

Donc, pour Mem:

total = used + free et

used = <all apps> + buffers + cached

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

    
réponse donnée user61928 10.10.2012 - 15:34
la source
109

Le noyau Linux utilisera la mémoire disponible pour la mise en cache des disques, à moins qu’il ne soit requis par un programme en cours d’exécution.

Ceci est considéré comme bon; disons que vous avez 4 Go de RAM, et vos programmes utilisent seulement 1 Go. Les 3 Go restants vont perdre. Malgré le sentiment de bien-être de savoir que vous n'utilisez que 25% de votre mémoire, la contrepartie est que les 75% restants ne sont pas utilisé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 anciens systèmes d'exploitation, vous n'avez pas besoin de décider combien vous devez consacrer au cache disque, ni de le configurer manuellement.

"Le cache disque Linux est très discret. Il utilise de la mémoire disponible pour augmenter considérablement les vitesses d’accès au disque et ne supprime pas de mémoire des applications. "

Il s’agit d’une question si commune qu’un site Web entier y est consacré:

lien

Le site Web a même un moyen de vider le cache du disque afin de pouvoir exécuter certaines applications et voir à quel point elles sont plus rapides avec le cache activé:)

    
réponse donnée roadmr 10.10.2012 - 16:05
la source

Lire d'autres questions sur les étiquettes