[리눅스]Linux CPU 코어 수 설정(조절)

반응형

cpu 코어 임시 및 영구 설정 방법에 대해 알아보겠습니다.

Linux cpu 정보

 

# CPU 정보

[root@Eloquence ~]# lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              16   // cpu 총 수
On-line CPU(s) list: 0-15   // online cpu 수
Thread(s) per core:  2 
Core(s) per socket:  8
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               79
Model name:          Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Stepping:            1
CPU MHz:             2102.592
CPU max MHz:         2100.0000
CPU min MHz:         1200.0000
BogoMIPS:            4199.93
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            20480K
NUMA node0 CPU(s):   0-15

. . . 후략

 

Linux cpu online / offline 정보

 

# 현재 사용 중인 CPU 수

[root@Eloquence ~]# grep -i processor /proc/cpuinfo 
processor       : 0 
processor       : 1 
processor       : 2 
processor       : 3 
processor       : 4 
processor       : 5 
processor       : 6 
processor       : 7 
processor       : 8 
processor       : 9 
processor       : 10 
processor       : 11 
processor       : 12 
processor       : 13 
processor       : 14 
processor       : 15

 

 

# 현재 online / offline  CPU 확인
[root@Eloquence ~]# cat /sys/devices/system/cpu/online   // online cpu 상태 
0-15 
[root@Eloquence ~]# cat /sys/devices/system/cpu/offline   // offline cpu 상태.

 

 

# CPU 목록 확인

[root@Eloquence ~]# ls -l /sys/devices/system/cpu 
합계 0 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu0 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu1 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu10 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu11 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu12 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu13 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu14 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu15 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu2 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu3 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu4 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu5 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu6 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu7 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu8 
drwxr-xr-x  9 root root    0  4월  1 20:00 cpu9 
drwxr-xr-x 18 root root    0  4월  1 20:00 cpufreq 
drwxr-xr-x  2 root root    0  4월  1 20:38 cpuidle 
drwxr-xr-x  2 root root    0  4월  1 20:38 hotplug 
drwxr-xr-x  2 root root    0  4월  1 20:00 intel_pstate 
-r--r--r--  1 root root 4096  4월  1 20:00 isolated 
-r--r--r--  1 root root 4096  4월  1 20:26 kernel_max 
drwxr-xr-x  2 root root    0  4월  1 20:00 microcode 
-r--r--r--  1 root root 4096  4월  1 20:38 modalias 
-r--r--r--  1 root root 4096  4월  1 20:00 nohz_full 
-r--r--r--  1 root root 4096  4월  1 20:24 offline 
-r--r--r--  1 root root 4096  4월  1 20:00 online 
-r--r--r--  1 root root 4096  4월  1 20:26 possible 
drwxr-xr-x  2 root root    0  4월  1 20:38 power 
-r--r--r--  1 root root 4096  4월  1 20:26 present 
drwxr-xr-x  2 root root    0  4월  1 20:38 smt 
-rw-r--r--  1 root root 4096  4월  1 20:00 uevent 
drwxr-xr-x  2 root root    0  4월  1 20:38 vulnerabilities

Linux cpu 코어 임시 비활성(다운)

 

# cpu 임시 비활성 (부팅 시 설정 원상 복구됨)

echo 0 > /sys/devices/system/cpu/cpuX/online 

[root@Eloquence ~]# echo 0 > /sys/devices/system/cpu/cpu15/online
[root@Eloquence ~]# echo 0 > /sys/devices/system/cpu/cpu14/online
[root@Eloquence ~]# echo 0 > /sys/devices/system/cpu/cpu13/online
[root@Eloquence ~]# echo 0 > /sys/devices/system/cpu/cpu12/online
[root@Eloquence ~]# echo 0 > /sys/devices/system/cpu/cpu11/online
[root@Eloquence ~]# echo 0 > /sys/devices/system/cpu/cpu10/online


또는

 

chcpu -d Number(CPU)

[root@Eloquence ~]# chcpu -d 15
CPU 15 disabled
[root@Eloquence ~]# chcpu -d 14
CPU 14 disabled
[root@Eloquence ~]# chcpu -d 13
CPU 13 disabled
[root@Eloquence ~]# chcpu -d 12
CPU 12 disabled
[root@Eloquence ~]# chcpu -d 11
CPU 11 disabled
[root@Eloquence ~]# chcpu -d 10
CPU 10 disabled

 

 

# 임시로 cpu 코어를 비활성화시켰습니다. 결과를 확인해볼게요.

[root@Eloquence ~]# cat /sys/devices/system/cpu/online 
0-9
[root@Eloquence ~]# cat /sys/devices/system/cpu/offline 
10-15   // 실제로 비활성화시킨 10~15 넘버링을 가진 cpu가 offline으로 표시됨을 확인했습니다.

 

Linux cpu 코어 임시 활성화

 

# cpu 임시 활성

echo 1 > /sys/devices/system/cpu/cpuX/online 

[root@Eloquence ~]# echo 1 > /sys/devices/system/cpu/cpu15/online
[root@Eloquence ~]# echo 1 > /sys/devices/system/cpu/cpu14/online
[root@Eloquence ~]# echo 1 > /sys/devices/system/cpu/cpu13/online
[root@Eloquence ~]# echo 1 > /sys/devices/system/cpu/cpu12/online
[root@Eloquence ~]# echo 1 > /sys/devices/system/cpu/cpu11/online
[root@Eloquence ~]# echo 1 > /sys/devices/system/cpu/cpu10/online


또는

 

chcpu -e Number(CPU)
[root@Eloquence ~]# chcpu -e 10
CPU 10 enabled
[root@Eloquence ~]# chcpu -e 11
CPU 11 enabled
[root@Eloquence ~]# chcpu -e 12
CPU 12 enabled
[root@Eloquence ~]# chcpu -e 13
CPU 13 enabled
[root@Eloquence ~]# chcpu -e 14
CPU 14 enabled
[root@Eloquence ~]# chcpu -e 15
CPU 15 enabled

 

 

# 임시로 cpu 코어를 활성화시켰습니다. 결과를 확인해볼게요.

[root@Eloquence ~]# cat /sys/devices/system/cpu/online 
0-15   // 실제로 다시 활성화시킨 10~15 넘버링을 가진 cpu가 online으로 표시됨을 확인했습니다.
[root@Eloquence ~]# cat /sys/devices/system/cpu/offline 

 

Linux cpu 코어 영구 설정

※. Lenovo 서버 기준으로 작성되었습니다.

 

 

<F1> Setup

 

 

 

System Settings 

 

 

 

Processors

 

 

 

Cores In CPU Package 값을 조정해줍니다.

 

 

 

기존에는 All로 8코어 전부 활성화되어 있었습니다.

 

 

 

4코어로 변경하고 실제로 OS에서 확인해보도록 하겠습니다.

 

 

[root@Eloquence ~]# grep -i processor /proc/cpuinfo
processor       : 0
processor       : 1
processor       : 2
processor       : 3
processor       : 4
processor       : 5
processor       : 6
processor       : 7

[root@Eloquence ~]# cat /sys/devices/system/cpu/online
0-7

 

※. 8코어 중 4코어만 활성화했는데 8개가 online 되어 있는 이유에 대해서 궁금해하실 것 같습니다.

현재 해당 서버는 하이퍼쓰레딩 기능이 활성화되어 있어서 코어가 2배로 보이게 됩니다.

4코어만 활성화했지만 하이퍼쓰레딩 기능 때문에 x2가 되어 총 8개가 보이게 됩니다.

 

하이퍼쓰레딩 사용 여부 확인 [OS / CMOS(BIOS)]

 

OS에서 확인하기

# 하이퍼스레딩 동작 여부
[root@Eloquence ~]# dmidecode -t processor | egrep -i 'core count|thread count' | head -2
        Core Count: 8   // 실제 코어 수
        Thread Count: 16   // 하이퍼쓰레딩 적용된 코어 수

cpu 당 core는 8이지만
Thread Count가 16으로 나온다는 것은 하이퍼스레딩이 활성화되어 있다는 뜻.

또는

[root@Eloquence ~]# cat /proc/cpuinfo | egrep -i 'siblings|cpu cores' | head -2
siblings        : 16    // 하이퍼쓰레딩 적용된 코어 수
cpu cores       : 8    // 실제 코어 수

 

CMOS에서 확인하기

실제로 아래 그림처럼 Hyper-Threading = Enable 되어 있는 것을 확인할 수 있습니다.

 

 

 

Linux 물리 CPU 수

끝으로 CMOS(BIOS)상에서 현재 보고 있는 서버의 물리 CPU 수 확인을 하기 위한 방법을 간단하게 소개해드리겠습니다. 

 

System Information

 

 

 

System Summary

 

 

 

Processor Details

 

 

 

Socket 1은 정보가 있는 반면에 Socket 2는 정보가 없다는 건 실제로 물리적인 CPU는 1개가 장착되어 있다는 걸 의미합니다.

 

 

 

 

 

제 주관적인 지식을 통해 작성된 글이며, 틀린 부분이 있다면 의견을 달아주세요.

반응형

댓글

Designed by JB FACTORY