6.1 /proc와 기본 도구
top 하나로는 순간값과 누적값, host와 process 범위를 구분하기 어렵습니다. /proc와 표준 도구를 질문별로 선택합니다.
실행 대기와 CPU 상태는 vmstat, mpstat, /proc/stat으로 확인합니다. Process의 CPU, memory, I/O는 pidstat, /proc/PID/status, smaps_rollup으로 확인합니다. Device queue와 latency에는 iostat -xz, /proc/diskstats를 사용합니다. Socket과 TCP에는 ss, nstat, /proc/net/*, pressure에는 /proc/pressure/*, open file에는 lsof, /proc/PID/fd를 사용합니다.
Snapshot 수집
진단 스크립트는 hostname, kernel, uptime, memory, pressure, disk, socket 요약을 timestamp와 함께 출력합니다.
chmod +x snapshot.sh
./snapshot.sh > snapshot-$(date +%Y%m%d-%H%M%S).txt
스크립트는 read-only이지만 출력에 hostname, mount, IP, process 정보가 포함됩니다. 외부 공유 전 민감 정보를 제거합니다.
Sampling interval
5분 평균 metric은 10초 spike를 숨깁니다. 반대로 1초 sampling을 장기간 보관하면 비용이 커집니다. 평시에는 적절한 집계 metric을 두고, incident 때 짧은 고해상도 snapshot을 추가합니다.
명령 실행 시점을 incident timeline에 기록하면 PostgreSQL log, application trace, Prometheus metric과 맞출 수 있습니다.