리셋 되지 말자

CI 파이프라인에 사용된 최대 swap memory 크기 구하기 본문

GitLab

CI 파이프라인에 사용된 최대 swap memory 크기 구하기

kyeongjun-dev 2022. 5. 17. 17:08

참고

  • echo $! : kim-dragon.tistory.com/48
  •  

스크립트

  • get_max_swap_size.py : 0.1초마다 free 명령어를 통해, 현재 사용된 used Swap 크기를 가져와서 max_swap_size 변수를 최대값으로 계속 갱신. signal 등록을 통해 kill 명령어로 프로세스가 종료되면, max_swap_size를 출력하고 종료하도록 설정.
import subprocess
from time import sleep
import signal
import sys
max_swap_size = 0

def handler(signum, frame):
    print("kill signal")
    print(max_swap_size)
    sys.exit(0)

signal.signal(signal.SIGTERM, handler)

while True:
    out = subprocess.check_output(["free -m | awk '/^Swap/ {print $3}'"], shell=True)
    max_swap_size = max(max_swap_size, int(out))
    sleep(0.1)​
  • 실행 순서 :
# max_swap_size를 구하는 get_max_swap_size.py 스크립트를 백그라운드로 실행
python get_max_swap_size.py &

# 마지막으로 백그라운드로 실행된 프로세스의 PID를 환경변수로 저장
export SWAP_PID=$!

# do something

# 백그라운드로 실행중인 스크립트 종료
kill $SWAP_PID
  • 리눅스의 메모리 양 구하는 법
free -m | awk '/^Mem/ {print $2}'
Comments