gpt4 book ai didi

linux - 休眠进程的 CPU 使用率很高

转载 作者:IT王子 更新时间:2023-10-29 00:25:31 24 4
gpt4 key购买 nike

我有一个似乎死锁的进程:

# strace -p 5075
Process 5075 attached - interrupt to quit
futex(0x419cf9d0, FUTEX_WAIT, 5095, NULL

它正处于“futex”系统调用中,似乎在无限期地等待锁。当“top”运行时,该进程显示消耗大量 CPU:

# top -b -n 1
top - 23:13:18 up 113 days, 4:19, 1 user, load average: 1.69, 1.74, 1.72
Tasks: 269 total, 1 running, 268 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.1%us, 0.1%sy, 0.0%ni, 91.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 12165696k total, 3810476k used, 8355220k free, 29440k buffers
Swap: 8388600k total, 43312k used, 8345288k free, 879988k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5075 omdb 18 0 2373m 1.7g 26m S 199.7 14.9 102804:11 java

该进程还显示为处于“S” - sleep 状态,如果它正在等待某些资源,这是有意义的。但是,我不明白为什么如果进程处于 sleep 状态,CPU 利用率会接近 200%。为什么 top 在休眠进程中报告如此高的 CPU 使用率?它的 CPU 利用率不应该为零吗?

最佳答案

top 报告的 CPU 使用率与进程状态之间没有关联。 man page说(强调我的):

%CPU -- CPU usage

The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time.

因此,自上次屏幕更新以来,您的进程确实使用了大量处理器时间。是的,它正在休眠,但那是因为当前运行的进程是 top 本身(这是有道理的,因为它当前正在更新屏幕)。

关于linux - 休眠进程的 CPU 使用率很高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10628037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com