프로세스·자원 (ps·top·free·df)
6. 연습 문제
문제 1. 메모리 상위 3개
메모리를 가장 많이 쓰는 프로세스 3개를 사용자·RSS·명령만 보는 명령을 쓰세요.
ps -eo user,rss,cmd --sort=-rss | head -n 4-o 로 열을 고르고 --sort=-rss 로 내림차순입니다. 첫 줄이 헤더라 4줄입니다.
문제 2. 포트 점유 프로세스
8080 포트를 잡고 있는 프로세스를 찾는 명령을 두 가지 쓰세요.
lsof -i :8080
ss -ltnp | grep :8080둘 다 PID 와 프로그램 이름을 보여 줍니다. lsof 가 없는 서버에서는 ss 를 씁니다.
문제 3. top 판독
load average: 9.5, 8.2, 6.0, nproc 이 8, wa 가 40% 입니다. 무엇이 문제이고 다음에 볼 명령은 무엇입니까?
CPU 가 아니라 디스크 I/O 병목입니다. wa 40% 는 CPU 가 디스크를 기다리는 시간이고 load 가 코어 수를 넘은 것도 I/O 대기 프로세스 때문입니다. iostat -x 1 3 과 pidstat -d 1 3 으로 어느 디스크와 프로세스인지 봅니다.
문제 4. 안전한 백업 실행
backup.sh 를 낮은 CPU·I/O 우선순위로 백그라운드에서 터미널과 무관하게 실행하는 한 줄을 쓰세요.
nohup nice -n 10 ionice -c3 bash backup.sh > backup.log 2>&1 &nohup 이 HUP 를 막고 nice·ionice 가 양보하며 출력은 파일로 갑니다.
문제 5. 스레드 수
PID 1234 의 스레드 수를 도구 없이 /proc 으로 확인하는 명령을 쓰세요.
grep Threads /proc/1234/statusls /proc/1234/task | wc -l 도 같은 값입니다. 자바 앱의 스레드가 수천이면 풀 설정을 봅니다.