为什么第二个 CPU 更加空闲?

为什么第二个 CPU 更加空闲?

这是在 Dell R730 双 CPU 插槽上,每个插槽有 8 个物理核心。启用 HT 后,lscpu 看起来像

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz
Stepping:              2
CPU MHz:               2600.125
BogoMIPS:              5200.65
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

该机器运行在 Ubuntu 16.04(4.4 内核)上。此机器上运行的应用程序是 L4 负载均衡器。并且此机器具有 8x10G i40e 驱动程序的网卡。'lstopo' 命令显示 4 个 10G NIC 连接到插槽 0,其他 4 个连接到插槽 1。所以我认为如果我平等地加载所有 8 个 NIC,如果中断在所有 CPU 上均匀平衡,则所有 CPU 都必须平等使用。

我已将插槽 0 上的 4 个 NIC 固定到偶数 CPU 上,将插槽 1 上的 4 个 NIC 固定到奇数 CPU 上。我的问题是:当从客户端生成负载时,我看到几秒钟内所有 CPU 都处于同等空闲状态,约为 0.1%,而几秒钟后,插槽 1 上的 CPU 变得更加空闲,约为 30% 空闲

Tasks: 337 total,  31 running, 305 sleeping,   0 stopped,   1 zombie
%Cpu0  :  5.0 us, 22.8 sy,  0.0 ni,  1.0 id,  0.0 wa,  0.0 hi, 71.3 si,  0.0 st
%Cpu1  :  7.1 us, 43.4 sy,  0.0 ni, 27.3 id,  0.0 wa,  0.0 hi, 22.2 si,  0.0 st
%Cpu2  :  3.0 us, 18.8 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi, 76.2 si,  0.0 st
%Cpu3  : 10.0 us, 38.0 sy,  0.0 ni, 33.0 id,  0.0 wa,  0.0 hi, 19.0 si,  0.0 st
%Cpu4  :  5.0 us, 24.0 sy,  0.0 ni,  1.0 id,  0.0 wa,  0.0 hi, 70.0 si,  0.0 st
%Cpu5  :  9.9 us, 31.7 sy,  0.0 ni, 32.7 id,  0.0 wa,  0.0 hi, 25.7 si,  0.0 st
%Cpu6  :  1.0 us, 18.8 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi, 78.2 si,  0.0 st
%Cpu7  :  6.2 us, 41.7 sy,  0.0 ni, 28.1 id,  0.0 wa,  0.0 hi, 24.0 si,  0.0 st
%Cpu8  :  1.0 us, 16.0 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi, 81.0 si,  0.0 st
%Cpu9  :  5.3 us, 44.2 sy,  0.0 ni, 30.5 id,  0.0 wa,  0.0 hi, 20.0 si,  0.0 st
%Cpu10 :  7.0 us, 19.0 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi, 72.0 si,  0.0 st
%Cpu11 :  4.1 us, 46.9 sy,  0.0 ni, 29.6 id,  0.0 wa,  0.0 hi, 19.4 si,  0.0 st
%Cpu12 :  2.0 us, 22.0 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi, 74.0 si,  0.0 st
%Cpu13 :  3.0 us, 40.4 sy,  0.0 ni, 29.3 id,  0.0 wa,  0.0 hi, 27.3 si,  0.0 st
%Cpu14 :  4.0 us, 25.7 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi, 68.3 si,  0.0 st
%Cpu15 :  7.1 us, 36.4 sy,  0.0 ni, 31.3 id,  0.0 wa,  0.0 hi, 25.3 si,  0.0 st
%Cpu16 :  5.8 us, 50.5 sy,  0.0 ni,  2.9 id,  0.0 wa,  0.0 hi, 40.8 si,  0.0 st
%Cpu17 :  2.9 us, 39.8 sy,  0.0 ni, 33.0 id,  0.0 wa,  0.0 hi, 24.3 si,  0.0 st
%Cpu18 :  7.1 us, 48.5 sy,  0.0 ni,  4.0 id,  0.0 wa,  0.0 hi, 40.4 si,  0.0 st
%Cpu19 :  2.1 us, 35.8 sy,  0.0 ni, 36.8 id,  0.0 wa,  0.0 hi, 25.3 si,  0.0 st
%Cpu20 :  3.9 us, 49.5 sy,  0.0 ni,  1.9 id,  0.0 wa,  0.0 hi, 44.7 si,  0.0 st
%Cpu21 :  3.9 us, 30.4 sy,  0.0 ni, 34.3 id,  0.0 wa,  0.0 hi, 31.4 si,  0.0 st
%Cpu22 :  4.9 us, 50.5 sy,  0.0 ni,  2.9 id,  0.0 wa,  0.0 hi, 41.7 si,  0.0 st
%Cpu23 :  7.2 us, 35.1 sy,  0.0 ni, 37.1 id,  0.0 wa,  0.0 hi, 20.6 si,  0.0 st
%Cpu24 :  2.9 us, 44.1 sy,  0.0 ni,  5.9 id,  0.0 wa,  0.0 hi, 47.1 si,  0.0 st
%Cpu25 :  1.0 us, 43.4 sy,  0.0 ni, 32.3 id,  0.0 wa,  0.0 hi, 23.2 si,  0.0 st
%Cpu26 :  2.0 us, 47.5 sy,  0.0 ni,  5.0 id,  0.0 wa,  0.0 hi, 45.5 si,  0.0 st
%Cpu27 :  7.3 us, 37.5 sy,  0.0 ni, 32.3 id,  0.0 wa,  0.0 hi, 22.9 si,  0.0 st
%Cpu28 :  4.9 us, 49.5 sy,  0.0 ni,  5.8 id,  0.0 wa,  0.0 hi, 39.8 si,  0.0 st
%Cpu29 :  5.3 us, 37.2 sy,  0.0 ni, 28.7 id,  0.0 wa,  0.0 hi, 28.7 si,  0.0 st
%Cpu30 :  4.0 us, 55.0 sy,  0.0 ni,  4.0 id,  0.0 wa,  0.0 hi, 37.0 si,  0.0 st
%Cpu31 :  2.9 us, 39.2 sy,  0.0 ni, 31.4 id,  0.0 wa,  0.0 hi, 26.5 si,  0.0 st

有什么建议或帮助可以找出为什么第二个插槽 CPU 更空闲?提前致谢。

相关内容