top 명령어를 사용하여 리눅스 시스템 내 프로세스의 정보와 리소스 사용량을 실시간으로 모니터링 할 수 있다.
시스템의 자원 사용 현황, 실행 중인 프로세스, CPU 및 메모리 등 리소스 사용량을 확인할 수 있다.
top명령어를 실행 하면 다음과 같은 화면을 확인 할 수 있다.
실행된 하면은 크게 상단 부분(시스템 정보)과 하단 부분(프로세스 리스트)으로 나뉜다.
top 명령어 실행 후 상단부에는 시스템의 현재 상태와 성능을 실시간으로 보여준다.
상단부는 크게 다섯 라인으로 나뉘며 각각의 라인은 서로 다른 정보를 가지고 있다.
System uptime은 시스템의 시간과 관련 있는 정보를 가지고 있다.
13:01:02: 현재 시스템의 시간 (시간은 설정 국가에 따라 다르게 표시)up 12 days, 23:17: 현재 시스템이 12일 23시간 17분 동안 연속해서 동작 중임을 의미0 users: 현재 시스템에 로그인한 사용자 수load average: 0.50, 0.48, 0.45: 각각 1분, 5분, 15분 간의 평균 부하를 의미 (load average 값은 0 이상의 범위를 가지며, 시스템의 CPU 수에 비례해 1을 초과할 수 있음)
Tasks는 현재 실행 중인 프로세스의 수를 의미한다.
14 total: 시스템에서 현재 실행 중인 전체 프로세스 수1 running: 현재 실행 중인 프로세스 수13 sleeping: 대기 중인 프로세스의 수0 stopped: 중지된 프로세스의 수0 zombie: 좀비 프로세스의 수 (프로세스는 종료되었지만, 부모 프로세스가 종료 상태를 읽지 않아 좀비처럼 남아 있는 프로세스의 수)
CPU usage는 CPU 사용량을 의미한다.
7.1 us: 사용자 공간에서 시행되는 프로세스의 CPU 사용 비율5.8 sy: 커널 공간에서 실행되는 프로세스의 CPU 사용 비율0.0 ni: 우선순위가 변경된 프로세스의 CPU 사용 비율86.9 id: 유휴 상태(대기 상태)인 CPU 비율0.0 wa: 입출력 대기 중인 CPU 비율0.0 hi: 하드웨어 인터럽트 처리에 사용된 CPU 사용 비율0.2 si: 소프트웨어 인터럽트 처리(네트워크, 시스템 호출 등)에 사용된 CPU 사용 비율0.0 st: 가상환경에서 다른 가상 머신이 CPU를 사용하면서 해당 가상 머신이 대기해야 했던 시간의 비율
Memory usage는 시스템의 물리적 메모리 사용 현황을 의미한다.
3911.6 total: 시스템에 총 3,911.6MB의 메모리가 설치되어 있음을 의미345.7 free: 현재 사용 가능한 메모리 크기(345.7MB) 의미2536.6 used: 현재 사용 중인 메모리 크기(2536.6MB) 의미2819.9 buff/cache: 시스템이 입출력 성능 향상과 데이터를 빠르게 처리하기 위해 사용 중인 캐시 및 버퍼 메모리 공간
Swap usage는 스왑 공간의 사용 현황을 의미한다.
0.0 total: 스왑 공간의 총 용량 의미0.0 free: 사용 가능한 스왑 공간 의미0.0 used: 현재 사용 중인 스왑 공간 의미1375.0 avail Mem: 사용 가능한 메모리를 의미 (시스템에서 사용할 수 있는 메모리)
top 명령어 실행 후 하단부에는 시스템에서 실행되는 프로세스에 대한 정보를 실시간으로 보여준다. 하단부는 상단부와 다르게 행/열 기반으로 프로세스 정보를 확인할 수 있다.
행은 각각의 프로세스를 의미하며, 열은 각 프로세스의 상태와 정보를 보여준다.
PID: 프로세스 IDUSER: 프로세스를 실행한 사용자PR: 프로세스의 우선순위 (priority)NI: 프로세스의 니스(nice) 값 (CPU 스케줄링 우선순위를 조정하는 값)VIRT: 프로세스가 사용하는 가상 메모리 총 크기 (KB)RES: 프로세스가 사용중인 실제 물리적 메모리 크기 (KB)SHR: 프로세스가 공유하는 메모리 크기 (KB)S: 프로세스 상태 (S = sleep, R = running, Z = zombie)%CPU: 프로세스가 사용하는 CPU 비율%MEM: 프로세스가 사용하는 메모리 비율TIME+: 프로세스가 CPU를 사용한 총 시간COMMAND: 실행 중인 명령어
리눅스에서 top 명령어는 실행 전 옵션과 실행 후 인터랙티브 모드에서 사용할 수 있는 여러 명령어가 있다.
top 명령어와 함께 사용하는 옵션
top [옵션]--------- 옵션 list --------- -u [사용자 이름] : 특정 사용자가 실행 중인 프로세스만 표시 -p [PID] : 특정 프로세스 ID에 대한 정보만 표시 -d [초] : 화면 새로고침 주기 지정 (기본 주기는 3초, 초 단위 설정) -n [n] : top을 갱신할 횟수 지정 (n번 갱신 후 종료, -b와 함께 사용) -b : 배치 모드로 실행 -H : 스레드별로 프로세스를 나누어 표시
top 명령어 인터랙티브 모드에서 여러 가지 명령어를 입력하여 화면을 변경하거나 필터링할 수 있다.
--------- 명령어 list --------- P : CPU 사용률 순으로 정렬 (내림차순) M : 메모리 사용량 순으로 정렬 (내림차순) T : 프로세스가 사용한 시간 순으로 정렬 k : 프로세스를 종료할 수 있는 명령어로, PID를 추가 입력하여 프로세스를 종료 r : 프로세스의 우선순위(nice값)를 변경 z : 컬러 모드로 활성화/비활성화 q : top 명령어 종료