我正在研究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
这是什么? 谷歌search没有帮助,我知道这是虚拟机的东西,但为什么它突然出现在/ var / log / messages?
编辑:我把它显示这是因为它可以释放的页面数(“NR”)是负面的。 这大概是一件坏事。 我发现了更新的内核的补丁,显示更有用的消息。 仍然不知道这是什么意思,或者我需要做些什么。
您的消息是由slab分配器生成的,Linux 分配器是Linux内核用来pipe理自己需要的内存部分(而不是用户空间进程)的机制。 最初它是由Jeff Bonwick为Solaris编写的,阅读Bonwick(94) ( PDF )可能是最容易理解的。
如果你想知道这个名字,Bonwick博客在他的博客里最终揭示了它的背后的故事 。
当你在看Linux的细节时,文章parsingLinux平板分配器 (链接目前已经死亡,请参阅archive.org副本 )应该覆盖。 如果您还想了解用户空间内存的pipe理, Mel Gorman,了解Linux虚拟内存pipe理器提供了更多的细节。
对于讲德语的读者来说,在德国维基百科的文章中有一个很好的关于板分配器的介绍 。