Linux

Linux CPU/Memory dynamic add

DevelopC 2017. 9. 25. 18:13
728x90

Linux CPU/Memory dynamic add

CPU

물리 디바이스인 CPU Core의 정보를 캐치하여 disable하거나 enable시키는 방법
아래의 명령어 수행시 서버의 재시작을 하지 않아도 cpu를 유동적으로 추가 및 삭제가 가능하다.
물론 해당 내용은 가상머신을 이용할 때 용이한 방법이므로 물리장비에서는 권장하지 않는다.
# 추가된 cpu의 번호를 캐치하여 아래의 명령어 수행
$ echo 1 > /sys/devices/system/cpu/cpu<n>/online

# 제거할 cpu의 번호를 캐치하여 아래의 명령어 수행
$ echo 0 > /sys/devices/system/cpu/cpu<n>/online

 

아래의 내용을 복사하여 shell 스크립트 파일을 만든 후에 실행시켜도 됩니다.

#!/bin/bash

CPUS_NUMBER=`ls /sys/devices/system/cpu | grep -G 'cpu[0-9]' | cut -d 'u' -f 2`
MAX_CPU_NUMBER=`cat /sys/devices/system/cpu/online | cut -d '-' -f 2`

for i in $CPUS_NUMBER
do
    if [ "$i" -gt "$MAX_CPU_NUMBER" ]; then
        echo 1 > /sys/devices/system/cpu/cpu${i}/online
    fi
done

Memory

물리 디바이스인 메모리의 정보를 캐치하여 disable하거나 enable시키는 방법
아래의 명령어 수행시 서버의 재시작을 하지 않아도 메모리를 증설 및 제거가 가능하다.
물론 해당 내용은 가상머신을 이용할 때 용이한 방법이므로 물리장비에서는 권장하지 않는다.
# 아래의 명령어로 메모리주소가 offline인 상태를 찾는다.
$ grep -irl 'offline' /sys/devices/system/memory/*/state

# 메모리주소가 offline인 상태를 online상태로 변경한다.
echo online > /sys/devices/system/memory/memory<n>/state

 

아래의 내용을 복사하여 shell 스크립트 파일을 만든 후에 실행시켜도 됩니다.

#!/bin/bash

FILES=`grep -il 'offline' /sys/devices/system/memory/*/state`

for f in $FILES
do
    echo online > $f
done

 

728x90