CPU GPU 사용량 로깅(in GCP) - 100-hours-a-week/5-yeosa-wiki GitHub Wiki
1. 로깅용 스크립트 파일 저장
#!/bin/bash
# 첫 번째 인자로 로그 파일 이름 받기 (기본값: system_usage_log.csv)
LOG_PATH=${1:-system_usage_log.csv}
INTERVAL=1 # 초 단위
# 헤더가 없으면 추가
if [ ! -f "$LOG_PATH" ]; then
echo "timestamp,cpu_percent,gpu_summary" >> "$LOG_PATH"
fi
while true; do
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
# CPU 사용률 (user + system)
CPU_RAW=$(top -bn1 | grep '%Cpu(s)' | awk '{print $2 + $4}')
CPU_USAGE="${CPU_RAW}%"
# GPU 사용 정보 요약 (여러 줄을 한 줄로 통합)
GPU_USAGE=$(gpustat --no-color | tail -n +2 | tr '\n' ' ' | sed 's/ */ /g' | sed 's/,$//')
# 로그 저장
echo "$TIMESTAMP,$CPU_USAGE,\"$GPU_USAGE\"" >> "$LOG_PATH"
sleep $INTERVAL
done
2. 권한 변경
chmod +x [저장 파일 이름(]
# 예시
chmod +x log.sh
3. 실행
./log.sh [저장 파일 이름]
-
예시
mkdir log ./log.sh log/gpu_batch_16.csv # 종료는 ctrl + c
-
확인
vi log/gpu_batch_16.csv
-
결과
[년월일 시각],[CPU 사용률(%)], [GPU 사용률] 2025-06-12 01:21:33,0%,"[0] Tesla T4 | 45'C, 0 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:34,0%,"[0] Tesla T4 | 45'C, 0 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:36,0%,"[0] Tesla T4 | 45'C, 0 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:37,1.6%,"[0] Tesla T4 | 45'C, 0 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:39,27%,"[0] Tesla T4 | 45'C, 0 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:40,94.5%,"[0] Tesla T4 | 46'C, 80 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:42,84.6%,"[0] Tesla T4 | 47'C, 35 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:43,92.4%,"[0] Tesla T4 | 49'C, 35 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:45,92.4%,"[0] Tesla T4 | 50'C, 32 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:46,95.5%,"[0] Tesla T4 | 51'C, 51 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:48,94%,"[0] Tesla T4 | 50'C, 19 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:49,95.6%,"[0] Tesla T4 | 51'C, 39 % | 1914 / 15360 MB | eeokee52(1480M) " 2025-06-12 01:21:51,83.6%,"[0] Tesla T4 | 51'C, 70 % | 1914 / 15360 MB | eeokee52(1480M) "