프로세스·자원 (ps·top·free·df)
5. 자주 하는 실수 (Tip)
❌ 실수 1: free 의 used 를 보고 메모리 부족이라 한다
캐시가 포함돼 있어 항상 큽니다. ✅ available 과 Swap used 를 봅니다.
❌ 실수 2: top 의 %CPU 가 100 을 넘으면 오류라고 본다
코어 수만큼 곱한 값이라 8코어면 800% 가 최대입니다. ✅ 1 키로 코어별을 보거나 load average 를 nproc 과 비교합니다.
❌ 실수 3: kill -9 를 먼저 쓴다
정리 없이 죽어 파일이 깨지고 잠금이 남습니다. ✅ kill PID 로 TERM 을 보내고 기다린 뒤에만 -9 입니다.
❌ 실수 4: pkill -f java 로 한 앱을 죽이려 한다
서버의 모든 자바가 죽습니다. ✅ pgrep -f 'app.jar' 로 먼저 보고 특정 문자열로 pkill 합니다.
❌ 실수 5: wa 가 높은데 CPU 를 늘리자고 한다
I/O 대기라 CPU 를 늘려도 그대로입니다. ✅ iostat·pidstat -d 로 디스크 쓰는 프로세스를 찾습니다.
❌ 실수 6: 터미널을 닫으면 백그라운드 작업이 죽는 것을 모른다
& 만 붙인 작업은 HUP 로 함께 죽습니다. ✅ nohup 명령 & 또는 시작 후 disown 입니다.
❌ 실수 7: ps | grep 결과에 grep 자신이 섞인다
항상 1개 이상 나와 "실행 중" 으로 오판합니다. ✅ grep '[a]pp' 트릭이나 pgrep 을 씁니다.
❌ 실수 8: du 로 루트 전체를 훑는다
/proc 과 NFS 까지 들어가 멈춥니다. ✅ du -xh --max-depth=1 로 파티션 안에서 한 단계씩 봅니다.
❌ 실수 9: VSZ 를 메모리 사용량으로 읽는다
예약된 가상 크기라 실제보다 몇 배 큽니다. ✅ RSS 를 봅니다. 자바는 힙 밖 메모리까지 RSS 에 포함됩니다.
❌ 실수 10: 백업을 우선순위 없이 낮에 돌린다
앱 응답이 흔들립니다. ✅ nice -n 10 ionice -c3 를 붙이고 가능하면 새벽 cron 으로 옮깁니다.