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}'