80个内核中未使用16个内核


11

最近,我发现我们的服务器不再使用系统中的所有80个线程。尽管系统负载很高,但看起来16个内核始终处于空闲状态。

它是一台Dell PowerEdge R900服务器,带有4个插槽,是10核Xeon的4倍。因此有40个内核,而HT具有80个线程。(Intel Xeon(R)CPU E7-4850 @ 2.00GHz)。系统内存为512GB,运行Ubuntu 14.04.1 LTS。我还没有重启服务器,我希望避免这种情况。

优名
Linux Assembly 3.13.0-35-generic#62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

我检查以下内容:

用i7z测量的温度:(它不能显示4个插座

来自cpuinfo 1994.00Mhz的CPU速度
真实频率(不考虑Turbo)1994 MHz

套接字[0]-[物理核心= 10,逻辑核心= 20,最大在线核心= 10]
  CPU倍增器15倍|| 总线时钟频率(BCLK)132.93 MHz
  在10核上启用TURBO,在超线程上启用
  最大频率,不考虑Turbo 2126.93 MHz(132.93 x [16])
  具有1/2/3/4/5/6内核的最大TURBO乘数(如果启用)为0x / 0x / 0x / 0x / 0x / 0x
  实际电流频率1994.02 MHz(最大值以下)
        核心[core-id]:实际频率(多次)C0%停止(C1)%C3%C6%温度
        核心1 [1]:1994.01(15.00x)100 0 0 0 75
        核心2 [5]:1994.00(15.00x)100 0 0 0 77
        核心3 [9]:1994.02(15.00x)100 0 0 0 76
        核心4 [13]:1994.00(15.00x)100 0 0 0 77
        核心5 [17]:1994.00(15.00x)100 0 0 0 77
        核心6 [21]:1994.00(15.00x)97.7 0.404 0 1.86 77
        核心7 [25]:1994.00(15.00x)94.5 0 1 5.27 77
        核心8 [29]:1994.00(15.00x)100 0 0 0 76
        核心9 [33]:1994.00(15.00x)99.8 0 1 1 75
        核心10 [37]:1994.00(15.00x)100 0 0 0 73
  最大频率,不考虑Turbo 2126.93 MHz(132.93 x [16])
  具有1/2/3/4/5/6内核的最大TURBO乘数(如果启用)为0x / 0x / 0x / 0x / 0x / 0x
  实际电流频率1994.02 MHz(最大值以下)
        核心[core-id]:实际频率(多次)C0%停止(C1)%C3%C6%温度
        核心1 [1]:1994.02(15.00x)100 0 0 0 74
        核心2 [5]:1994.00(15.00x)100 0 0 0 76
        核心3 [9]:1994.02(15.00x)100 0 0 0 76
        核心4 [13]:1994.00(15.00x)100 0 0 0 77
        核心5 [17]:1994.00(15.00x)100 0 0 0 76
        核心6 [21]:1994.00(15.00x)97 0 1 2.43 77
        核心7 [25]:1994.00(15.00x)92.9 0 1 6.81 77
C0 =处理器运行时不停止(00x)100 0 0 0 75
C1 =处理器暂停运行(状态> C0为省电模式)1 1 75
C3 =内核在PLL关闭且内核缓存已关闭的情况下运行0 0 73
C6 = C3中的所有内容+核心状态已保存到上一级缓存
  表中的上述值以最近1秒的百分比表示
[core-id]是指/ proc / cpuinfo中的core-id号
读取垃圾值时显示“垃圾值”消息
  Ctrl + C退出

空闲:最后16个内核全部100%空闲:

mpstat -p所有1:
平均:CPU%usr%nice%sys%iowait%irq%soft%steal%guest%gnice%idle
平均值:全部70.69 0.00 0.70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 28.61
平均值:0 92.93 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.07
平均值:1 94.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 6.00
平均值:2 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均:3 83.33 0.00 2.08 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14.58
平均值:4 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均值:5 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
................................................... ........
平均值:64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:65 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:66 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:68 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:69 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:71 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:76 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:77 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

最高负载数:

顶部-17:41:48最多35天,6:28、15个用户,平均负载:77.69、70.48、62.73
任务:总计1327,正在运行44,正在睡眠1281,已停止2,僵尸0
%Cpu(s):63.7 us,13.6 sy,0.0 ni,22.3 id,0.2 wa,0.0 hi,0.2 si,0.0 st
KiB内存:总计52837942+,已使用52553190+,免费2847524,535660个缓冲区
KiB交换:总计78124032,已使用2105608,免费76018416。40637328+快取记忆体

有时,空闲百分比不再是100,而是更少,如您在此处看到的那样,但大多数情况下它保持100%空闲。

平均:CPU%usr%nice%sys%iowait%irq%soft%steal%guest%gnice%idle
平均值:全部70.69 0.00 0.70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 28.61
平均值:64 0.13 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.87
平均值:65 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:66 0.00 0.00 2.63 0.00 0.00 0.00 0.00 0.00 0.00 97.37
平均值:67 0.00 0.00 0.13 0.13 0.00 0.00 0.00 0.00 0.00 99.75
平均值:68 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:69 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:71 0.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.88
平均值:72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:76 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:77 0.00 0.00 0.13 0.00 0.00 0.00 0.00 0.00 0.00 99.87
平均值:78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
平均值:79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

我还运行了此命令以确保它们都在线:

对于``seq 01 79''中的COUNT;执行echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / online; 

使用HTop程序,我可以看到每个线程的CPU使用情况,可以看到64个填充条和16个空白条(最后16个)。

当我尝试以大于63的内核启动进程时,这样做也失败了:

root @ server:〜#任务集-c 63时间
用法:时间[-apvV] [-f格式] [-o文件] [--append] [--verbose]
       [-可移植性] [-格式=格式] [-输出=文件] [-版本]
       [--quiet] [--help]命令[arg ...]
root @ server:〜#任务集-c 64次
任务集:无法设置pid 0的相似性:无效参数
root @ server:〜#任务集-c 65次
任务集:无法设置pid 0的相似性:无效参数

相关主题:https : //askubuntu.com/questions/536541/ubuntu-uses-only-2-out-of-4-processor-cores

编辑:事实证明,核心是动态关闭,但不能正确启动。似乎在这些不可用的内核上运行着进程,但是无法在它们上启动任何新进程。根据dmesg日志,将立即禁用并启用内核。我不得不说是要关闭这些内核的意图,因此我们禁用了此“功能”。DMESG示例日志:

[2015年1月12日星期一12:42:40] kvm:在CPU79上禁用虚拟化
[2015年1月12日星期一12:42:40] smpboot:CPU 79现在离线
....
[2015年1月12日星期一12:43:12] smpboot:正在引导节点0处理器79 APIC 0xf3
[2015年1月12日星期一12:43:12] kvm:在CPU79上启用虚拟化

我们通过以下方式启用/禁用内核:

对于``seq 64 79''中的COUNT;执行echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / online;完成

我们从未将此命令与16个不可用的内核链接,因为通常上述命令可以正常工作。(我们也尝试禁用Powermanager,但这没有帮助)


1
为什么您或您的公司没有为普通PC使用Ubuntu服务器而不是Ubuntu?
XperianX 2015年

1
实际上,您的16个内核实际上已被用于最大容量,而16个虚拟内核却没有可用的余量。
匿名

1
所有8个内核(16个虚拟)是否都在一个物理CPU上,还是分布在所有4个插槽上?如果它们位于一个物理CPU上,这些内核是否有可能发生故障?
Jibberish51年

2
我想知道系统中某处是否有代码表示仅使用64位的CPU亲和力掩码,从而阻止了进程使用后16个内核。
kasperd

考虑到80-16 = 64,在我看来,要使用的最大核数有些人为限制。可能将您正在运行的任何软件设置为最多64个内核,或者可能无法生成超过64个线程。
Clonkex

Answers:


1

并非所有程序都可以使用多个线程。php就是一个例子。如果一个php进程需要大量CPU,则最多只能有1个CPU。而其他人将处于闲置状态。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.