当前位置: 首页 > Linux, Oracle, oracle 11g > 正文

今天遇到一个好玩的事情,服务器丢了两颗物理CPU

今天发现应用服务器的批处理脚本异常,导致服务器的CPU过高。查看服务器的资源使用率时,无意中发现一个服务器的CPU竟然少了一半。

这套数据库是两节点的RAC,两个服务器是都是IBM 3850X5,OEL 6.5操作系统,都是4颗10核的CPU,128G内存,在使用sar命令监控资源使用率的时候,发现节点2的CPU核数少了一半。

节点1:

Linux 3.8.13-16.2.1.el6uek.x86_64 (SL010A-IVDB03)       11/02/2018      _x86_64_        (80 CPU)

05:50:24 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
05:50:25 PM     all     16.33      0.00      0.89      0.19      0.00     82.59
05:50:26 PM     all     16.70      0.00      0.94      0.50      0.00     81.86
05:50:27 PM     all     15.82      0.00      0.89      0.14      0.00     83.15
05:50:28 PM     all     16.52      0.00      1.03      0.18      0.00     82.27
05:50:29 PM     all     15.81      0.00      0.79      0.11      0.00     83.28
05:50:30 PM     all     15.53      0.00      0.67      0.14      0.00     83.67
05:50:31 PM     all     14.73      0.00      0.59      0.14      0.00     84.54

节点2:

[root@SL010A-IVDB04 ~]# sar 1
Linux 3.8.13-16.2.1.el6uek.x86_64 (SL010A-IVDB04)       11/02/2018      _x86_64_        (40 CPU)

05:50:18 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
05:50:19 PM     all     40.10      0.00      1.54      0.08      0.00     58.28
05:50:20 PM     all     40.11      0.00      1.36      0.08      0.00     58.46
05:50:21 PM     all     40.49      0.00      2.32      0.30      0.00     56.88
05:50:22 PM     all     39.82      0.00      1.61      0.05      0.00     58.51
05:50:23 PM     all     44.68      0.00      2.02      0.05      0.00     53.25
05:50:24 PM     all     42.59      0.00      1.54      0.15      0.00     55.72
05:50:25 PM     all     42.46      0.00      1.44      0.05      0.00     56.05

上面的信息可以看到,节点1显示的是80核CPU,而几点2显示的却是40核,通过查看/proc/cpuinfo文件,节点2也只是显示40核CPU。

节点1:

processor       : 79
vendor_id       : GenuineIntel
cpu family      : 6
model           : 47
model name      : Intel(R) Xeon(R) CPU E7- 4860  @ 2.27GHz
stepping        : 2
microcode       : 0x37
cpu MHz         : 1064.000
cache size      : 24576 KB
physical id     : 3
siblings        : 20
core id         : 25
cpu cores       : 10
apicid          : 243
initial apicid  : 243
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt aes lahf_lm ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips        : 4521.87
clflush size    : 64
cache_alignment : 64
address sizes   : 44 bits physical, 48 bits virtual
power management:

节点2:

processor       : 39
vendor_id       : GenuineIntel
cpu family      : 6
model           : 47
model name      : Intel(R) Xeon(R) CPU E7- 4850  @ 2.00GHz
stepping        : 2
microcode       : 0x37
cpu MHz         : 1996.000
cache size      : 24576 KB
physical id     : 3
siblings        : 20
core id         : 25
cpu cores       : 10
apicid          : 243
initial apicid  : 243
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt aes lahf_lm ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips        : 3989.91
clflush size    : 64
cache_alignment : 64
address sizes   : 44 bits physical, 48 bits virtual
power management:

在这里又发现个问题,两个服务器的CPU型号是不一样的,节点1是E7-4860主频是2.27GHz的CPU,而节点2是E7-4850主频是2.0GHz的CPU,RAC最好是使用同型号同配置的服务器,像这种CPU主频不一致的CPU,对RAC来讲,高主频的CPU会降频,再次查看服务器的版本号,发现两台服务器的型号并不完全相同,这两台服务器并不是一个批次的服务器,并且节点1的processor是79,0-79也就是80个,节点2的processor是39,0-39也就是40个,比节点1少了一半。

节点1:

[root@SL010A-IVDB03 ~]# dmidecode | grep Prod
        Product Name: System x3850 X5 -[71434VZ]-
        Product Name: Node 1, Processor Card
        Product Name: Node 1, PCI I/O Card
        Product Name: Node 1, DASD I/O Daughter Card
        Product Name: Node 1 Memory Card 1
        Product Name: Node 1 Memory Card 2
        Product Name: Node 1 Memory Card 3
        Product Name: Node 1 Memory Card 4
        Product Name: Node 1 Memory Card 5
        Product Name: Node 1 Memory Card 6
        Product Name: Node 1 Memory Card 7
        Product Name: Node 1 Memory Card 8

节点2:

[root@SL010A-IVDB04 ~]# dmidecode | grep Prod
        Product Name: System x3850 X5 -[71434X2]-
        Product Name: Node 1, Processor Card
        Product Name: Node 1, PCI I/O Card
        Product Name: Node 1, DASD I/O Daughter Card
        Product Name: Node 1 Memory Card 1
        Product Name: Node 1 Memory Card 2
        Product Name: Node 1 Memory Card 3
        Product Name: Node 1 Memory Card 4
        Product Name: Node 1 Memory Card 5
        Product Name: Node 1 Memory Card 6
        Product Name: Node 1 Memory Card 7
        Product Name: Node 1 Memory Card 8

节点1是x3850 X5 -[71434VZ]型号的服务器,节点2是x3850 X5 -[71434X2]型号的服务器。可是这并不能解释节点2的CPU怎么会比节点1少一半的问题,难道是节点2没有使用多线程?这可能性不大,这两台服务器的CPU虽然不一样,但都是10核心20线程的CPU,4颗CPU就是40核80线程,节点2为啥会少一半呢?再次查看/proc/cpuinfo文件,只查看physical id发现,节点2少了两颗CPU。

节点1:

[root@SL010A-IVDB03 ~]# cat /proc/cpuinfo | grep physica | grep -v virtual
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 2
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3

节点2:

[root@SL010A-IVDB04 ~]# cat /proc/cpuinfo | grep physica | grep -v virtual
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3
physical id     : 3

节点2只有0和3这两颗CPU,节点1有0、1、2、3四颗CPU,节点2的1和2这两颗CPU哪里去了?查看操作系统日志并没有发现CPU相关的错误,找管理主机的同事去机房查看,也没有发现故障灯报警。

问题还得回到两台服务器的型号不一致的问题上来考虑,这套RAC的搭建过程及测试我都是知道的,前同事搭建的,当时服务器的型号和配置都是一样的,但是在测试阶段遇到节点2服务器无故重启的情况,而且很频繁,软件和硬件都没找到原因,后来负责主机的同事就把节点2换了一台其他的同配置同型号3850服务器,当时并没有检查服务器的配置是否完全一样,现在想想,这个节点2服务器当时就应该是只插了两颗CPU,并不是4颗CPU,4U的服务器只插两颗CPU,也真服了。

现在正在和管理主机的同事协商解决方案,过几天这套RAC有个扩容增加ASM磁盘的需求,有停机维护时间,应该会一起解决这个问题吧。

大坑无处不在,一不小心就掉沟里了,任何一个细节都不容忽略。

本文固定链接: https://www.dbdream.com.cn/2018/11/%e4%bb%8a%e5%a4%a9%e9%81%87%e5%88%b0%e4%b8%80%e4%b8%aa%e5%a5%bd%e7%8e%a9%e7%9a%84%e4%ba%8b%e6%83%85%ef%bc%8c%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%a2%e4%ba%86%e4%b8%a4%e9%a2%97%e7%89%a9%e7%90%86cpu/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2018年11月03日发表在 Linux, Oracle, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 今天遇到一个好玩的事情,服务器丢了两颗物理CPU | 信春哥,系统稳,闭眼上线不回滚!
关键字:

今天遇到一个好玩的事情,服务器丢了两颗物理CPU:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter