Что «кэшируется» в верхней команде?

42

При запуске top я получаю:

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

Посмотреть детали: 2256128k cached? Что именно это означает?

Я сравниваю два VPS от двух провайдеров, у этого всегда есть большая сумма (70% используемой памяти), а другой поставщик VPS всегда показывает 0.

    
задан KKK 10.10.2012 в 15:19
источник

2 ответа

13

Это число до кэширования - это количество физической памяти, которое используется буферами кэша для ваших файловых систем.

Это на самом деле , связанное с SWAP, несмотря на то, что оно находится на линии «Swap:».

Чтобы проверить мой ответ с небольшим экспериментом, попробуйте следующее:

Запустите верх и обратите внимание на значение 'cached'. Теперь запустите

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

, если вы снова вернетесь, вы заметите, что «кешированный» вырос на 128M

Теперь удалите файл

rm ~/trick

Снова верните верх, и вы увидите, что «кэшированный» упал на 128M

Итак, для Mem:

total = used + free и

used = <all apps> + buffers + cached

(где буферы в основном метаданные для кэширования). Немного запутанный пользовательский интерфейс.

    
ответ дан user61928 10.10.2012 в 15:34
источник
102

ядро ​​Linux будет использовать доступную память для кэширования дисков, если это не требуется выполняемой программой.

Это считается хорошим; скажем, у вас 4 ГБ ОЗУ, а ваши программы используют только 1 ГБ. Остальные 3 ГБ будут растраты. Несмотря на впечатления от «хорошего настроения», зная, что вы используете только 25% своей памяти, аналогичным является то, что остальные 75% не используются. Поэтому ядро ​​использует это для кеширования файлов, что значительно повышает производительность. Это автоматический; в отличие от старых операционных систем, вам не нужно решать, сколько стоит уделять кешу диска или вручную настроить его.

«Кэш диска Linux очень ненавязчивый: он использует запасную память для значительного увеличения скорости доступа к диску и без отвлечения памяти от приложений. Полностью используемый магазин ram на Linux - это эффективное использование аппаратного обеспечения, а не предупреждающий знак. «

Это такой общий вопрос, что для него есть целый веб-сайт:

Ссылка

На веб-сайте даже есть способ очистить дисковый кеш, чтобы вы могли запускать некоторые приложения и видеть, насколько быстрее они работают с кешем:)

    
ответ дан roadmr 10.10.2012 в 16:05