CPU使用multithreading进程

背景:在几年前开始作为Fedora Core 2安装的系统中,我有一大堆运行2.6.20和2.6.22内核的系统。 这些系统有8个cpu,正如cat /proc/cpuinfo报告的那样。

我的问题是,当使用multithreading的进程正在运行时,如果您将每个CPU上的使用情况一起添加,那么top报告的99.99%的CPU使用率是指每个CPU的99.99%或总数的99.99%? 换句话说,最高百分比应该是800%还是100%?

看起来,当其中一个进程是99.99%,如果你单独看每个CPU,他们会说25%的利用率(而不是100%)。

任何帮助表示赞赏。 如果我不清楚或困惑,让我知道,我会尽力澄清。

更新看起来好像我们可能已经看到由于程序员所使用的线程模型的问题而导致的低利用率。 他们正在使用用户线程而不是内核线程,并且正在看到用户线程被允许执行的限制。

CPU使用率达到99%几乎意味着单核的总利用率。

如果你的系统是完全加载的(每个线程占用一个cpu),你将在四核心上看到400%的使用率,或者在两个四核心上使用率达到800%。

进程/线程在cpus之间重新分配 – 这就是为什么你看到每个核心利用率的25%。 但是你可以设置他们的亲和力 ..然后他们将坚持选定的处理器/内核。

它显示每个核心的负载。 不要忘记一个伟大的“顶级”替代品叫htop。 它会绘制你个人的cpus / cores的负载。