linux – 什么是shrink_slab,为什么它出现在/ var / log / messages中?

我正在调查 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一个很好的介绍.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...