为什么默认非 irix 模式下 top 的 CPU 故障(选项 1)会显示相互矛盾的结果?

为什么默认非 irix 模式下 top 的 CPU 故障(选项 1)会显示相互矛盾的结果?

我在 的各种分叉上运行一些基准测试,bitcoind并且在运行时注意到一些相互冲突的值top

在下面的屏幕截图中,8 个 cpu 中的每一个的 cpu 利用率均匀分布在 30% 左右。但在其下方的列表视图中,bitcoind显示 CPU 为 105%。鉴于这不是在 Irix 模式下,这意味着bitcoind1 个 cpu 的使用率为 100%。但在上面的细分中并没有这样显示。此外,我正在运行的 Python 进程在底部读数中每个报告约 40%,但顶部的 cpu 都没有读取约 40%。

该机器确实有 8 个物理核心,运行非虚拟化的 Ubuntu。

这里发生了什么? 比特币顶部

stress为了进行比较,这里在具有相同显示屏的 8 个 cpu 上运行top。请注意,8 个 cpu 每个都有 100% 的利用率,并且 8 个stress进程每个都有 100% 的报告。 应力顶部

更新:确实,我正在测试的变体是多线程的,并且该H选项显示了故障,谢谢@TheGeek

顶部-h

答案1

这是因为你的硬币是多线程的。按顶部的字母“H”打开线程模式。这将向您显示 bitcoind 的子线程。然后您可以看到 CPU 使用率的分布情况。

您还可以尝试 gstack 查看线程列表。

相关内容