Что такое & ldquo; cached & rdquo; в верхней команде?

При запуске 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 кэшируется? Что именно это означает?

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

46
задан 10 October 2012 в 17:25

2 ответа

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

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

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

Запустите top и запишите значение «cached». Теперь запустите

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

, если вы снова запустите top, вы заметите, что 'cached' вырос на 128M

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

rm ~/trick

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

Так что для Mem:

total = used + free и

used = <all apps> + buffers + cached

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

0
ответ дан 10 October 2012 в 17:25

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

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

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

Это настолько распространенный вопрос, что ему посвящен целый сайт:

http://www.linuxatemyram.com

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

0
ответ дан 10 October 2012 в 17:25

Другие вопросы по тегам:

Похожие вопросы: