Process Management

프로세스 관리 지표

운영 중 프로세스를 볼 때는 이름보다 PID, 상태, CPU/메모리 사용량, 열린 파일, signal 처리 관계가 더 중요하다.

01

상태 우선 검토

CPU를 쓰는지, I/O를 기다리는지, zombie로 남았는지 상태 문자와 wait channel을 확인한다.

02

자원 사용량을 묶는다

CPU만 높은지, RSS가 커지는지, fd가 누수되는지 지표별로 원인을 나눈다.

03

부모 관계를 추적한다

서비스 매니저, shell, worker parent가 자식을 어떻게 시작하고 회수하는지 본다.

ps/top
현재 상태 관찰 PID, state, CPU, memory 사용량을 빠르게 본다.
순간값과 추세를 구분한다.
lsof
열린 파일 확인 파일, socket, pipe 같은 descriptor를 보여 준다.
fd 누수 추적에 유용하다.
kill
signal 전송 TERM, INT, KILL의 의미와 처리 가능성을 구분한다.
KILL은 정리 기회를 주지 않는다.
systemd
서비스 수명 주기 프로세스 재시작, 의존성, 로그를 관리한다.
unit 설정이 운영 정책이다.

상태 · 자원 · 종료 점검

상태 프로세스가 CPU bound인지 I/O wait인지 상태로 구분하는가.
자원 메모리 증가가 heap 누수인지 cache인지 추가 관찰하는가.
종료 SIGTERM으로 graceful shutdown이 가능한지 확인하는가.

관찰 명령

ps -o pid,ppid,state,pcpu,pmem,comm
lsof -p <pid>
kill -TERM <pid>