案例一
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
Stepping: 4
CPU MHz: 2294.103
BogoMIPS: 4588.20
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 16896K
NUMA node0 CPU(s): 0
/proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
stepping : 4
microcode : 33554509
cpu MHz : 2294.103
cache size : 16896 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
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 up arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm avx512f rdseed adx avx512cd cqm_llc cqm_occup_llc
bogomips : 4588.20
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
问题原因
Kernel command line:
Linux version 2.6.32-696.el6.x86_64 (mockbuild@x86-027.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Feb 21 00:53:17 EST 2017
Command line: ro root=UUID=5e69c67a-c3c1-402a-8a9f-5a7d18638412 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD acpi=off SYSFONT=latarcyrheb-sun16 noapic rd_NO_LVM crashkernel=auto rhgb quiet rd_NO_DM rhgb quiet
Log:
SMP: Allowing 1 CPUs, 0 hotplug CPUs
SMP alternatives: switching to UP code
Freeing SMP alternatives: 37k freed
ftrace: converting mcount calls to 0f 1f 44 00 00
ftrace: allocating 21966 entries in 87 pages
weird, boot CPU (#0) not listed by the BIOS.
SMP motherboard not detected.
x2apic not enabled, IRQ remapping init failed
APIC routing finalized to flat.
SMP disabled
在多处理服务器上,不要禁用acpi。
案例二
Cat /proc/cpuinfo 仅识别一个CPU。
Lscpu 也仅识别到一个CPU。
确认硬件识别:三台机器都能识别到两个cpu.
CPU Socket CPU Status CPU Type CPU Family CPU Manu CPU ID CPU Vol CPU Speed
CPU 1 CPU Enabled Central Processor Intel Xeon Intel(R) Corporation 0x654 1.6V 2200MHz
CPU 2 CPU Enabled Central Processor Intel Xeon Intel(R) Corporation 0x654 1.6V 2200MHz
查看超线程是否开启:三台机器都开启。
HyperThreading Enable
问题分析
1、经查看(两台异常机器)UEFI中超线程设置已经enable;
HyperThreading Enable
2、对比异常机器、正常机器,两台机器的UEFI设置未有不同;
文件对比工具。
3、查看异常机器的dmesg日志(对比正常机器),发现存在如下异常条目:
[ 0.000000] smpboot: 40 Processors exceeds max_cpus limit of 0
[ 0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[ 0.354803] smpboot: SMP mode deactivated
[ 0.354818] smpboot: SMP disabled
正常日志情况:
[ 0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[ 0.000000] smpboot: Allowing 448 CPUs, 408 hotplug CPUs
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[ 0.000000] smpboot: Allowing 448 CPUs, 408 hotplug CPUs
4、onecli日志中,两台异常机器对于CPU的超线程识别状态为:not enabled,正常机器对CPU的超线程识别状态为:enabled。
Hyper-threading Status Not Enabled Not Enabled Not Enabled Not Enabled Not Enabled Not Enabled
5、两台异常机器中的boot option中看起来是禁用了SMP:
linuxefi /vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet LANG=zh_CN.UTF-8 nosmp
解决方法
Kernel command line: 去除nosmp即可。