我正在尝试确定服务器上的进程使用了多少内核堆栈。我发现一个文件这表明 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