显示 Linux 中进程的内核堆栈使用情况

显示 Linux 中进程的内核堆栈使用情况

我正在尝试确定服务器上的进程使用了​​多少内核堆栈。我发现一个文件这表明 sysrq-t 的输出在进程名称所在行的第 4 个字段中显示了未使用的堆栈量。问题是,除了旧的 32 位 CentOS 5 机器外,我在每台运行 sysrq-t 的机器上,这个字段始终为 0。还有其他方法可以确定堆栈使用情况吗?

答案1

要填充该值,必须使用 编译内核CONFIG_DEBUG_STACK_USAGE。我怀疑大多数生产内核都没有设置它。

# RHEL5
$ grep CONFIG_DEBUG_STACK_USAGE /boot/config-`uname -r`
# CONFIG_DEBUG_STACK_USAGE is not set

# Lucid
$ grep CONFIG_DEBUG_STACK_USAGE /boot/config-`uname -r`
# CONFIG_DEBUG_STACK_USAGE is not set

# Precise
$ grep CONFIG_DEBUG_STACK_USAGE /boot/config-`uname -r`
# CONFIG_DEBUG_STACK_USAGE is not set

相关内容