2014년 1월 15일 수요일

리눅스에서 CPU 코어 동적으로 ON/OFF 시키기 (CPU Hotplug)

리눅스에서는 동적으로 CPU 코어를 켜고 끌 수 있는 Hotplug 기능을 제공한다.
이는 CPU 코어 개수에 따른 성능 테스트를 수행할 때 매우 유용하게 사용할 수 있는 기능이다.

먼저 리눅스 서버의 CPU 정보는 /proc/cpuinfo 파일에서 확인할 수 있다.
 - processor : 논리적인 CPU의 ID
 - physical id : 물리적인 CPU의 ID 
 - core id :물리 CPU 내에서 각 core에 할당되는 ID
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU     P8700  @ 2.53GHz
stepping : 10
cpu MHz : 800.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
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 lm constant_tsc arch_perfmon pebs bts nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dts tpr_shadow vnmi flexpriority
bogomips : 5053.85
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

CPU 정보를 확인한 후, ON/OFF시킬 CPU의 processor(논리적인 CPU ID) 값을 확인한 후 아래와 같이 처리하면 된다.
 CPU 끄기 : echo 0 > /sys/devices/system/cpu/cpu<processor id>/online
 CPU 켜기 : echo 1 > /sys/devices/system/cpu/cpu<processor id>/online

CPU 0번은 위와 같은 방법으로 제어를 할 수 없으므로 참고~!!
/sys/devices/system/cpu/cpu0/online 파일 역시 존재하지 않는다.



댓글 없음:

댓글 쓰기