Один из моих размещенных серверов - это гость 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).
Вот еще немного информации:
/proc/meminfo
и /proc/slabinfo
вывод: http://pastebin.com/raw.php?i=M8wSkj0Satsar -p
(подкачка / свопинг) вывод за обычный день: http://pastebin.com/VwLdf1L1 (это показывает, что подкачки мало)У меня также сложилось впечатление, но я не могу его точно измерить, что система медленно читает некоторые файлы, файлы, которые почти не используются, или большие файлы, такие как журналы. Поэтому мне интересно, если это buffers
память могла быть некорректно сконфигурирована и пропускная способность диска могла быть увеличена.
Однако, похоже, нет параметра ядра Linux, который бы управлял этим buffers
памяти, по крайней мере, ничего похожего на параметры, существующие для cached
объем памяти. А может я что-то упустил?
Как эта память всегда может быть нулевой? Об этом мне следует беспокоиться? Как я могу изменить это поведение, чтобы лучше использовать некоторую оперативную память, если это действительно возможно?
Обновить: После обновления ядра (кастомное ядро 2.6.38 от моего провайдера) поведение остается таким же, буферы остаются равными 0. Это длится уже больше года, при этом сервер довольно интенсивно используется (почтовый сервер около двухсот пользователей). Этот сервер работал под управлением Debian 6, а теперь успешно работает под управлением Debian 7. Буферная память по-прежнему равна 0!
буферная память не должна быть 0, технически, если сервер не простаивает и абсолютно ничего не делает. Тем не менее, я бы ожидал некоторого использования буфера.
Вы говорите, что замечаете это в последнее время. Что-нибудь изменилось в последнее время на сервере.
Вы немного меняете местами, что может отрицательно сказаться на производительности, но это не должно иметь ничего общего с буфером. И производительность - это другой вопрос, а буфер, показывающий 0, - другой.
Можете ли вы взять эти выходные данные и вставить их.
cat /proc/meminfo
cat /proc/slabinfo
mount