背景:我有一大堆运行 2.6.20 和 2.6.22 内核的系统,最初是几年前安装的 Fedora Core 2。这些系统有 8 个 CPU,如cat /proc/cpuinfo
.
我的问题是,当一个使用多线程的进程正在运行时,如果将每个 CPU 的使用率加在一起,99.99% 的 CPU 使用率是top
平均每个 CPU 的 99.99% 还是 99.99%?换句话说,最大百分比应该是 800% 还是 100%?
似乎当其中一个进程的利用率为 99.99% 时,如果您单独查看每个 CPU,它们会说利用率为 25%(而不是 100%)。
任何帮助表示赞赏。如果我不清楚或令人困惑,请告诉我,我会尽力澄清。
更新 似乎由于程序员使用的线程模型存在问题,我们可能已经看到了低利用率。他们使用的是用户线程而不是内核线程,并且看到了允许用户线程执行的操作的限制。
99% 的 cpu 使用率意味着几乎所有单核的使用率。
如果您的系统完全加载 [ 几个线程每个占用一个 cpu ] - 您将看到四核的使用率为 400% 或两个四核的使用率为 800%。
进程/线程在 cpu 之间重新分配 - 这就是为什么您会看到每个内核的利用率为 25%。但你可以为他们设置亲和力..然后他们会坚持选择的处理器/核心。
它显示每个核心的负载。不要忘记一个很棒的“顶级”替代品,称为 htop。它将吸引您加载单个 CPU/内核。