Назад | Перейти на главную страницу

Буферная память Linux всегда равна нулю

Один из моих размещенных серверов - это гость Xen, работающая под управлением Debian и ядра Linux 2.6.32, затем 2.6.38. Он работает нормально уже довольно долгое время (больше года), но недавно я заметил кое-что странное. В течение нескольких месяцев часть памяти, выделенная для буферов (дискового ввода-вывода, сети), всегда остается нулевой.

Результат free выглядит так:

             total       used       free     shared    buffers     cached
Mem:       2071148    1775284     295864          0          0    1139388
-/+ buffers/cache:     635896    1435252
Swap:       524280      19508     504772

В buffers столбец всегда выводит 0, независимо от использования сервера (это довольно загруженный почтовый сервер, на котором работают postfix и courier).

Вот еще немного информации:

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

Однако, похоже, нет параметра ядра Linux, который бы управлял этим buffers памяти, по крайней мере, ничего похожего на параметры, существующие для cached объем памяти. А может я что-то упустил?

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

Обновить: После обновления ядра (кастомное ядро ​​2.6.38 от моего провайдера) поведение остается таким же, буферы остаются равными 0. Это длится уже больше года, при этом сервер довольно интенсивно используется (почтовый сервер около двухсот пользователей). Этот сервер работал под управлением Debian 6, а теперь успешно работает под управлением Debian 7. Буферная память по-прежнему равна 0!

буферная память не должна быть 0, технически, если сервер не простаивает и абсолютно ничего не делает. Тем не менее, я бы ожидал некоторого использования буфера.

Вы говорите, что замечаете это в последнее время. Что-нибудь изменилось в последнее время на сервере.

Вы немного меняете местами, что может отрицательно сказаться на производительности, но это не должно иметь ничего общего с буфером. И производительность - это другой вопрос, а буфер, показывающий 0, - другой.

Можете ли вы взять эти выходные данные и вставить их.

cat /proc/meminfo 
cat /proc/slabinfo
mount