线程的 top -H 中的 %CPU - 它是实际使用的 CPU 吗?

线程的 top -H 中的 %CPU - 它是实际使用的 CPU 吗?

我在跑

top -H -b -n 1

在 Linux 上安装 Java 应用程序

我得到带有标题的结果:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 

我看到的每个真实 CPU 的 %CPUthread是指它没有考虑线程在等待锁等方面所浪费的时间,因此它纯粹是线程在 CPU 上花费的时间。

答案1

如果你正在寻找有关进程 I/O 访问和 CPU 使用率的更多信息,也许你可以看看iotop。该应用程序提供与 top 类似的进程信息,但用于输入/输出信息。iotop 使用来自 /proc 文件的信息,此处以进程 16528 为例。

猫/proc/16528/io
rchar:48752567
wchar:549961789
syscr:5967
syscw:67138
读取字节数:49020928
写入字节数:549961728

已取消写入字节数:0

我知道可以像 top 一样在 bash 模式下调用它。

iotop -botqqq --iter=3 >> /var/log/iotop

你可以看统计信息也是,但是它就像 top 一样,对于系统来说是全局的,而不是特定于某个进程的。

您没有线程锁信息。

如果你只寻找 java 也许可以看看 控制台它用ThreadMXBeangetThreadCpuTime() 函数。

相关内容