我的一个托pipe服务器是运行Debian和Linux内核2.6.32,然后是2.6.38的Xen客户机。 它运行良好很长一段时间(一年多),但我最近注意到一些奇怪的东西。 几个月后,分配给缓冲区(磁盘I / O,networking)的内存部分总是保持为零。
免费的输出是这样的:
total used free shared buffers cached Mem: 2071148 1775284 295864 0 0 1139388 -/+ buffers/cache: 635896 1435252 Swap: 524280 19508 504772
buffers列总是打印0,不pipe服务器的使用情况(这是相当繁忙的邮件服务器运行后缀和快递)。
这里是一些更多的信息:
/proc/meminfo和/proc/slabinfo输出: http : /proc/slabinfo atsar -p (分页/交换)从正常的date输出: http : //pastebin.com/VwLdf1L1 (它表明几乎没有交换) 我也有印象,但我不能真正衡量它,系统读取一些文件,勉强使用的文件或像日志这样的大文件很慢。 因此,我想知道,如果这种buffers内存可能会以某种方式错误configuration,并且磁盘吞吐量可能会增加。
但是,似乎没有linux内核参数来pipe理buffers内存,至less没有像cached内存的参数那样。 或者我错过了什么?
这个记忆如何总是为零? 这是我应该担心的吗? 如果实际上可行,我怎么可能改变这种行为来使一些内存更好地使用?
更新:在内核升级(2.6.38定制内核从我的提供者)后,行为仍然保持与缓冲区保持在0相同。这是持续了一年多的时间,与服务器被相当多的使用(邮件服务器2百个用户)。 这台服务器已经运行Debian 6,现在正在高兴地运行Debian 7.缓冲区内存仍然保持在0!
从技术上讲,缓冲区内存不应该是0,除非服务器空闲并且完全没有任何东西。 不过,我仍然期望一些缓冲区的使用。
你说你最近注意到了这一点。 最近服务器有什么变化。
你换了一下,这可能会对性能产生不利的影响,但这与缓冲区无关。 性能是一个不同的问题和缓冲区,显示0是另一个。
你可以抓住这些输出和pastebin他们。
cat /proc/meminfo cat /proc/slabinfo mount