Linux在线禁用CPU内核
时间:2019-11-20 08:53:19 来源:igfitidea点击:
在Linux中,如何在线动态禁用CPU核心?
正在运行的Linux系统上如何热插拔CPU?
Linux内核确实支持cpu-hotplug机制。用于在线替换有缺陷的部件,或者将CPU在不同分区间移动。
并非所有服务器都支持cpu热插拔,但是几乎所有服务器都可以支持在Linux操作系统上禁用或启用cpu内核。
查看系统中所有当前的CPU和内核数量
执行以下命令:
# cd /sys/devices/system/cpu # ls -l
输出示例:
drwxr-xr-x. 5 root root 0 Dec 29 09:14 cpu0 drwxr-xr-x. 5 root root 0 Dec 29 09:14 cpu1 drwxr-xr-x. 2 root root 0 Dec 30 01:59 cpuidle
共有2个CPU核心
查看更详细信息:
# lscpu
输出示例:
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 42 Model name: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz Stepping: 7 CPU MHz: 2294.795 BogoMIPS: 4589.59 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0,1 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt xsave avx hypervisor lahf_lm epb xsaveopt dtherm arat pln pts
可以看到
CPU(s): 2
Core(s) per socket: 2
如何逻辑上禁用cpu1?
在Linux系统上无法禁用CPU0。 另外某些体系结构可能对特定的CPU有一些特殊的依赖性。那样的话也是不能禁用的。
将cpu1设置为离线状态(禁用cpu1):
# echo 0 > /sys/devices/system/cpu/cpu1/online # grep "processor" /proc/cpuinfo # lscpu
可以看到离线Off-line的cpu有一个。
CPU(s): 2 On-line CPU(s) list: 0 Off-line CPU(s) list: 1 Thread(s) per core: 1 Core(s) per socket: 1
如何逻辑上启用cpu1(使CPU1在线)?
执行以下命令:
# echo 1 > /sys/devices/system/cpu/cpu1/online # grep "processor" /proc/cpuinfo # lscpu
操作之后,如果服务器支持热插拔,就可以把CPU移除更换。
如何验证cpu的在线和离线状态?
查看在线的cpu:
# cat /sys/devices/system/cpu/online
查看离线的cpu:
# cat /sys/devices/system/cpu/offline