리소스 사용량을 읽고 분석하는 방법을 이해하는 것은 모든 Linux 사용자에게 중요한 기술입니다. 많은 사람들은 명령줄 도구를 마스터하는 것이 Linux 가 어떻게 작동하는지에 대한 깊은 통찰력을 제공하기 때문에 Linux 를 처음부터 배우는 최고의 방법이라고 생각합니다. 이 레슨에서는 프로세스가 실시간으로 무엇을 하고 있는지 추적하는 강력한 유틸리티인 top을 소개합니다.
top 명령어 이해하기
이전에 top에 대해 간략하게 언급했지만, 이제 표시되는 내용의 세부 사항을 자세히 살펴보겠습니다. top 명령어는 시스템의 프로세스 및 리소스 사용량에 대한 동적 실시간 보기를 제공합니다.
top - 18:06:26 up 6 days, 4:07, 2 users, load average: 0.92, 0.62, 0.59
Tasks: 389 total, 1 running, 387 sleeping, 0 stopped, 1 zombie
%Cpu(s): 1.8 us, 0.4 sy, 0.0 ni, 97.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 32870888 total, 27467976 used, 5402912 free, 518808 buffers
KiB Swap: 33480700 total, 39892 used, 33440808 free. 19454152 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6675 patty 20 0 1731472 520960 30876 S 8.3 1.6 160:24.79 chrome
6926 patty 20 0 935888 163456 25576 S 4.3 0.5 5:28.13 chrome
이 출력이 무엇을 의미하는지 살펴보겠습니다. 이것을 외울 필요는 없지만, 이 레슨을 참조 자료로 사용할 수 있습니다.
시스템 요약
처음 몇 줄은 시스템 상태에 대한 높은 수준의 요약을 제공합니다.
- 첫 번째 줄: 이는
uptime명령어를 실행했을 때 볼 수 있는 것과 동일한 정보입니다. 현재 시간, 시스템 가동 시간, 로그인한 사용자 수, 지난 1 분, 5 분, 15 분 동안의 시스템 부하 평균을 보여줍니다. - 두 번째 줄: 실행 중, 절전 중, 중지됨 또는 좀비로 분류된 모든 작업 (프로세스) 의 요약입니다.
CPU 사용량 분석
세 번째 줄은 CPU 사용률을 자세히 설명합니다.
us: niced(우선순위 조정) 되지 않은 사용자 프로세스를 실행하는 데 사용된 CPU 시간의 비율입니다.sy: 커널 및 해당 프로세스를 실행하는 데 사용된 CPU 시간의 비율입니다.ni: niced(낮은 우선순위) 사용자 프로세스를 실행하는 데 사용된 CPU 시간의 비율입니다.id: 유휴 상태인 CPU 시간의 비율입니다.wa: I/O 작업 완료를 기다리는 데 사용된 CPU 시간의 비율입니다. 높은 값은 디스크 또는 네트워크 병목 현상을 나타낼 수 있습니다.hi: 하드웨어 인터럽트를 처리하는 데 사용된 CPU 시간의 비율입니다.si: 소프트웨어 인터럽트를 처리하는 데 사용된 CPU 시간의 비율입니다.st: 스틸 타임 (Steal time) 입니다. 가상화된 환경에서 이는 하이퍼바이저가 다른 가상 프로세서를 서비스하는 동안 가상 CPU 가 실제 CPU 를 기다리는 시간의 비율입니다.
메모리 및 스왑 정보
네 번째와 다섯 번째 줄은 각각 메모리 및 스왑 공간 사용량을 보여줍니다. 여기에는 총량, 사용량 및 사용 가능량이 포함됩니다.
프로세스 목록
top의 주요 본문은 리소스를 가장 많이 사용하는 프로세스 목록입니다.
PID: 고유한 프로세스 ID 입니다.USER: 프로세스를 소유한 사용자입니다.PR: 프로세스의 스케줄링 우선순위입니다.NI: 우선순위에 영향을 미치는 "nice" 값입니다.VIRT: 프로세스가 사용하는 가상 메모리입니다. 이는 프로세스가 액세스할 수 있는 총 메모리 양입니다.RES: 프로세스가 사용하는 상주 메모리입니다. 이는 작업이 사용 중인 스왑되지 않은 물리적 메모리입니다. linux top virt res의 차이점을 이해하는 것이 메모리 분석의 핵심입니다.SHR: 프로세스가 사용하는 공유 메모리입니다.S: 프로세스 상태:S=절전,R=실행 중,Z=좀비,D=중단할 수 없는 절전,T=중지됨.%CPU: 마지막 업데이트 이후 이 프로세스가 사용한 CPU 시간의 비율입니다.%MEM: 이 프로세스가 사용한 물리적 RAM 의 비율입니다.TIME+: 프로세스가 시작된 이후 사용한 총 CPU 시간입니다.COMMAND: 프로세스를 시작한 명령 이름 또는 명령줄입니다.
특정 프로세스를 해당 ID 로 모니터링할 수도 있으며, 이는 집중적인 문제 해결에 유용합니다.
top -p 1