我正在调查
Linux系统上的一些应用程序问题,并在最近的问题发生时注意到这一点,但不是足够明确相关的:
Jun 7 17:51:49 localhost kernel: shrink_slab: nr=-155456000 Jun 7 17:51:49 localhost kernel: shrink_slab: nr=-157859400 Jun 7 17:51:49 localhost kernel: shrink_slab: nr=-157833400 Jun 8 06:20:23 localhost kernel: shrink_slab: nr=-284172800
这是什么?谷歌搜索没有帮助,我得到它与VM的东西,但为什么它突然出现在/ var / log / messages中?
编辑:我认为它显示了这一点,因为它可以释放的页数(“nr”)是负数.这可能是一件坏事.我找到了更新内核的补丁,它们显示了更有用的消息.仍然不确定这意味着什么,或者我需要做些什么.
解决方法
您的消息由
slab allocator生成,Linux内核使用该机制来管理自身所需的内存部分(不适用于用户空间进程).最初它是由Jeff Bonwick为Solaris编写的,阅读
Bonwick(94)(
PDF)可能最容易理解.
如果你想知道这个名字,可以在他的博客Bonwick最终revealed the story behind it.
当您查看Linux细节时,文章Anatomy of the Linux slab allocator(链接目前已经死亡,见archive.org for a copy)应该涵盖这一点.如果您想了解用户空间内存的管理,Mel Gorman,Understanding the Linux Virtual Memory Manager还提供了更多细节.
对于讲德语的读者来说,German Wikipedia Article on the slab allocator有一个很好的介绍.