프로세스 리소스 사용량 모니터링
ps를 통한 정적 목록 확인은 좋은 시작이었지만, 서버의 부하는 매초 변하고 있습니다. 어떤 프로세스가 실제로 속도 저하를 일으키고 있는지 확인하려면 실시간으로 변하는 동적인 뷰가 필요합니다. 이제 더 강력한 모니터링 도구를 꺼낼 차례입니다.
과제
- 시스템 프로세스와 리소스 사용량을 실시간으로 모니터링할 수 있는 대화형 명령줄 유틸리티를 실행하세요.
- CPU 를 가장 많이 소모하고 있는 스크립트의 이름을 확인하세요.
요구 사항
- 지속적으로 업데이트되는 실시간 시스템 프로세스 뷰를 제공하는 도구를 사용해야 합니다.
- 해당 도구는 기본적으로 CPU 사용량에 따라 프로세스를 정렬해야 합니다.
- 리소스를 가장 많이 사용하는 대상을 확인한 후, 도구를 종료하고 다음 단계로 진행하세요.
예시
모니터링 도구를 실행하면 다음과 같이 자동으로 업데이트되는 대화형 화면이 나타납니다.
top - 09:15:30 up 1:45, 1 user, load average: 1.50, 1.20, 0.85
Tasks: 105 total, 2 running, 103 sleeping, 0 stopped, 0 zombie
%Cpu(s): 45.0 us, 5.0 sy, 0.0 ni, 50.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 2048.0 total, 850.4 free, 950.2 used, 247.4 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used, 0.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 labex 20 0 12884 1564 1320 R 95.0 0.1 2:15.30 bash /home/labex/project/resource_hog.sh
1235 labex 20 0 12884 1564 1320 S 0.0 0.1 0:00.00 bash /home/labex/project/critical_service.sh
1 root 20 0 169848 9064 6868 S 0.0 0.4 0:02.15 systemd
...
화면 상단에는 시스템 통계가 표시되고, 아래에는 CPU 사용량 순으로 정렬된 프로세스 목록이 나타나며, 가장 높은 CPU 점유율을 가진 프로세스가 맨 위에 위치합니다.
힌트
- 이 유명한 명령어는 리눅스 세계의 "작업 관리자"라고 불리기도 합니다.
- 대화형 도구에서 빠져나오려면
q 키를 누르면 됩니다.