2018년 1월 4일 다시 Tistory를 시작합니다.
오늘은 서버 관리를 할 때 자주 사용하게 되는 top 명령어 입니다.
top 명령어는 시스템의 전반적인 상황을 모니터링 할 때 사용합니다.
윈도우의 작업 관리자 기능과 같다고 생각하면 됩니다.
위 사진처럼 top 명령어만 치면 결과를 확인 할 수 있습니다.
옵션을 확인하기 위해서 man top을 치면 상당히 긴 옵션들이 나오게 됩니다.
man -h옵션으로 하게 되면
이러한 옵션들이 나오게 됩니다.
top 실행한 화면에서 첫 번째 줄인
현재 시간과 uptime(부팅 후 가동시간) , 접속자수, load average를 나타냅니다.
load average는 처음부터 1분 5분 15분 동안 실행 대기 중인 프로세스의 평균 갯수입니다.
두 번째의 의미는 총 136개의 실행된 프로세스의 수이고 running은 현재 실행중인 프로세스, sleeping은 유휴 상태에 있는 프로세스 수입니다.
stopped는 종료, zombie는 좀비 프로세스 수입니다.
이때 좀비프로세스는 프로세스 종료 후에도 메모리상에 사라지지 않는 프로세스입니다.
자식 프로세스가 정상 종료하면 PCB에서 정보가 제거되어야 하지만 비정상적인 종료로 인한 정보 제거가 되지 않으면 살아있는 것처럼 되는 것입니다.
세번째 줄은 cpu 사용 및 실행 상태를 보여줍니다.
us : user가 실행시킨 프로세스의 cpu 사용율
sy : system의 cpu 사용율
ni : nice 정책에 의한 cpu 사용율
id : 사용 되지 않는 cpu 사용율
wa : 입출력 대기상태의 cpu 사용율
hi : IRQ에 사용된 cpu 사용율
(IRQ -> Interrupt ReQuest 인터럽트 요청을 말합니다.)
si : sw IRQ에 사용된 cpu 사용율
st : steal 값이라고 합니다.
보통 /proc/cpuinfo이나 sar로도 사용하지만 한번에 볼 수 있는 top으로도 많이 보게 됩니다.
/proc/cpuinfo는 cpu의 정보를 확인할 수 있습니다.
(ex cpu 종류, core 수 등)
sar 같은 경우 sar 패키지를 설치해야 하는 경우도 있습니다.
메모리나 cpu 사용율을 모두 확인이 가능합니다.
네 번째와 다섯 번째는 메모리 사용량입니다.
kb단위로 나오게 됩니다.
메모리의 총메모리 크기, 사용중인 크기, 사용할 수 있는 크기, 버퍼의 크기
swap영역의 총 크기, 사용 중인 swap, 사용할 수 있는 swap, cached 메모리의 크기
마지막으로 밑에 나호는 화면은 각 프로세스에 대한 정보입니다.
각 줄마다 하나의 프로세스의 정보들 입니다.
PID : 해당 프로세스의 번호
USER : 프로세스를 실행 시킨 유저
PR : 우선순위
NI : 프로세스의 NICE값
VIRT : 프로세스의 사용 가능한 가상 메모리
RES : 프로세스의 물리적 메모리 사용량
SHR : 프로세스에 의한 공유 메모리
S : 프로세스 상태값
/*
이 상태값은 D,R,S,T,Z로 나뉘게 됩니다.
D : sleep 상태
R : running 샅애
S : 휴면상태
T : 스톱된 프로세스
z : 좀비프로세스
*/
%CPU : 해당 프로세스의 사용율
%MEM : 해당 프로세스의 메모리 사용율
TIME+ : CPU 사용시간
COMMAND : 프로세스명 실행 명령어
로 볼 수 있습니다.
서버를 관리할 경우 하나의 프로세스가 100% 이상의 cpu를 사용한다면 문제가 있는 것입니다.
하지만 마지막 부분의 %cpu 사용율이 높은데 cpu(s) 의 %id가 높다면 하나의 프로세스에서 사용을 많이 하고 있는 부분이기 때문에 좋을 수 있습니다.
따라서 하나만 보고 장애를 판단 할 수 없다는 것을 알아야 합니다.
댓글