Linux buffer memory always stays at zero
One of my hosted server is a Xen guest running Debian and linux kernel 2.6.32 then 2.6.38. It has been running fine for quite some time (more than a year) but I recently noticed something weird. For a few months, the part of the memory allocated to buffers (disk I/O, network) always stays at zero.
The output of free is looking like that:
total used free shared buffers cached
Mem: 2071148 1775284 295864 0 0 1139388
-/+ buffers/cache: 635896 1435252
Swap: 524280 19508 504772
The buffers
column always print 0, no matter the usage of the server (this is quite a busy mail server running postfix and courier).
Here is some more information:
-
/proc/meminfo
and/proc/slabinfo
output: http://pastebin.com/raw.php?i=M8wSkj0S -
atsar -p
(paging/swapping) output from a regular day: http://pastebin.com/VwLdf1L1 (it shows there is little swapping involved)
I also have the impression, but I cannot really measure it, that the system is slow at reading some files, files that are barely used or big files like logs. Hence my wondering if this buffers
memory could be misconfigured in some way and that the disk throughput could be increased.
However, it seems there is no linux kernel parameter to govern that buffers
memory, at least nothing like the parameters that exist for the cached
memory. Or maybe I missed something?
How can this memory always be zero? Is this something I should worry about? How can I possibly change this behavior to put some RAM to better use if it is actually feasible?
Update: After a kernel upgrade (2.6.38 custom kernel from my provider), the behavior remains the same with buffers staying at 0. This is lasting for more than a year now, with the server being quite heavily used (mail server for about 2 hundred users). This server has been running Debian 6 and is now happily running Debian 7. Buffer memory still remaining at 0!
Solution 1:
buffer memory should not be 0, technically, unless the server is idle and doing absolutely nothing. Still then I would expect some buffer usage.
You say that you are noticing this recently. Have anything changed in the server recently.
You are swapping a bit, which could have a detrimental effect on performance but that should have nothing to do with buffer. And performance is a different question and buffer showing 0 is another.
Can you grab these outputs and pastebin them.
cat /proc/meminfo
cat /proc/slabinfo
mount