我正在使用NumPy和Python3Pool多处理程序在一个服务器上运行一些矩阵乘法,服务器上有4个IntelXeonE5-4620,总共有64个核心。
Solaris模式中的top显示:
top - 16:00:55 up 7 days, 16:42, 2 users, load average: 292.74, 295.09, 297.44
Tasks: 704 total, 8 running, 696 sleeping, 0 stopped, 0 zombie
%Cpu(s): 76.6 us, 23.4 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 52830358+total, 52306323+free, 3022900 used, 2217456 buff/cache
KiB Swap: 6553596 total, 6553596 free, 0 used. 52376304+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
75266 splitti+ 20 0 3050540 294912 10808 R 25.0 0.1 27649:20 python3
75264 splitti+ 20 0 3050028 292448 10936 R 21.7 0.1 27750:10 python3
75286 splitti+ 20 0 3006504 325704 10668 R 20.3 0.1 26831:30 python3
75598 splitti+ 20 0 3006820 326264 11164 R 20.2 0.1 27221:56 python3
75288 splitti+ 20 0 3006504 325696 10660 R 10.5 0.1 26351:29 python3
75265 splitti+ 20 0 3050028 294292 10728 R 1.6 0.1 22889:05 python3
...
在Irix模式下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
75266 splitti+ 20 0 3050028 292292 10808 R 1494 0.1 27712:54 python3
75264 splitti+ 20 0 3050540 295028 10936 R 1390 0.1 27803:50 python3
75288 splitti+ 20 0 3006504 325696 10660 R 1305 0.1 26395:29 python3
75598 splitti+ 20 0 3006820 326112 11164 R 1240 0.1 27275:08 python3
75286 splitti+ 20 0 3006504 325628 10668 R 752.6 0.1 26874:41 python3
75265 splitti+ 20 0 3050028 294292 10728 R 153.9 0.1 22893:03 python3
...
在每核心模式下:
top - 16:03:40 up 7 days, 16:45, 2 users, load average: 299.56, 297.12, 297.83
Tasks: 704 total, 8 running, 696 sleeping, 0 stopped, 0 zombie
%Cpu0 : 76.9 us, 23.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 71.9 us, 28.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 70.4 us, 29.6 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 74.6 us, 25.4 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 73.9 us, 26.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 79.9 us, 20.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 80.9 us, 19.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 78.9 us, 21.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 : 80.3 us, 19.7 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 : 78.9 us, 21.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 : 80.2 us, 19.8 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
...
问题是:这些价值观是如何联系起来的?
如果顶部显示每个核心使用率的80%和每个进程Solaris模式的25%,那么50%的核心使用率在哪里消失?这9个Python进程(我只粘贴了6个)如何使用所有64个内核?
发布于 2018-02-07 07:23:16
这个top
命令页描述CPU百分比如下:
自上次屏幕更新以来,任务在经过的CPU时间中所占的份额,表示为总CPU时间的百分比。在真正的SMP环境中,如果进程是多线程的,并且top不在线程模式下运行,则可以报告大于100%的数量。您可以使用
H' interactive command. Also for multi-processor environments, if Irix mode is Off, top will operate in Solaris mode where a task's cpu usage will be divided by the total number of CPUs. You toggle Irix/Solaris modes with the
i的交互式命令切换线程模式。
在Solaris模式中,百分比显示每个进程正在使用多少CPU容量;因此,带有标识符75266的进程在上一次刷新周期中使用了所有CPU容量的25%。在Irix模式下,百分比显示每个进程使用一个CPU“单元”的多少;因此,标识符为75266的进程在上一次刷新周期中使用的CPU时间相当于14.94个CPU时间(假定它正在运行15个线程或更多的线程,这说明了9个进程如何可以使用9个以上的内核)。
您可以从一种类型的计算到另一种计算,方法是除以或乘以执行单元的数量: 15几乎等于64个的25% (足够接近匹配,考虑到屏幕的“截图”不是相同的刷新周期)。
https://unix.stackexchange.com/questions/422558
复制相似问题