리눅스 시스템의 성능 모니터링 명령어
ㅇ free
free 또는 free -s 3(초) 로 시스템을 모니터링 하거나
watch free 또는 watch -n 1 -d free로 모니터링
(-n 시간 설정 -d 변화 부분 강조)
ㅇ pstree
실행중인 프로세스 상태를 트리 구조로 보여주는 명령어
pstree [프로세스를 기동한 사용자 ID] 형태로 조회 가능
ㅇ top
CPU 점유 프로세스들을 실시간으로 조회하는 명령어
# top [-d ss]
# top
top - 14:27:14 up 118 days, 21:54, 14 users, load average: 0.04, 0.05, 0.06
Tasks: 595 total, 1 running, 594 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.5%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16287824k total, 13661668k used, 2626156k free, 510288k buffers
Swap: 18530296k total, 28320k used, 18501976k free, 4388768k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5670 root 20 0 15484 1652 960 R 3.1 0.0 0:02.87 top
72 root 20 0 0 0 0 S 1.5 0.0 22:11.41 events/5
2163 root 20 0 0 0 0 S 1.5 0.0 69:00.59 kondemand/4
2164 root 20 0 0 0 0 S 1.5 0.0 132:37.06 kondemand/5
- 1줄 top : 시스템의 전반적 상태(가동시간 등)
- 2줄 Tasks : 프로세스들의 상황
- 3줄 CPU : CPU의 상황
- 4줄 Mem : 메모리 상황
- 5줄 Swap : 스왑메모리 상황
- PID : 프로세스 ID (PID)
- USER : 프로세스를 실행시킨 사용자 ID
- PR : 프로세스의 우선순위 (priority)
- NI : NICE 값. 마이너스를 가지는 nice value는 우선순위가 높다.
- VIRT : 가상 메모리의 사용량(SWAP+RES)
- RES : 현재 페이지가 상주하고 있는 크기(Resident Size)
- SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합.
- S : 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ]
- %CPU : 프로세스가 사용하는 CPU의 사용율
- %MEM : 프로세스가 사용하는 메모리의 사용율
- COMMAND : 실행된 명령어
ㅇ vmstat
프로세스, 메모리의 상태를 보여주는 명령어
#vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 28440 4986260 506960 2089524 0 0 1 14 0 0 0 0 100 0 0
* process
- r : CPU 접근 대기 중인 실행 가능 프로세스 수
- b : 인터럽트 불가능한 수면 상태인 프로세스 수
* memory
- swpd : 사용된 가상 메모리 용량
- free : 여유 메모리 용량
- buff : 버퍼에 사용된 메모리 용량
- cache : 페이지 캐시에 사용된 메모리 용량
* swap
- si : 디스크에서 메모리로 스왑된 메모리 용량
- so : 디스크로 스왑되어 나간 메모리 용량
* 입출력
- bi : 블록 장치로 보내진 블록
- bo : 블록 장치에서 받아온 블록
* 시스템
- in : 일초당 인터럽트 수
- cs : 일초당 문맥 전환 작업수
* CPU
- us : CPU가 사용자 수준 코드를 실행한 시간(백분율 단위)
- sy : CPU가 시스템 수준 코드를 실행한 시간(백분율 단위)
- id : CPU idle time(백분율 단위)
- wa : 입출력 대기
vmstat (옵션없음 ) - 마지막 부팅 이후의 평균값
vmstat 2 10 - 10초 동안 2초 간격으로 정보 갱신
ㅇ iostat
- 한 개 이상의 디스크 드라이브에 대한 입출력 통계와 CPU 활용량
#iostat
Linux 2.6.32-220.el6.x86_64 (dev) 2013년 05월 08일 _x86_64_ (16 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.09 0.00 0.09 0.09 0.00 99.73
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3.19 47.21 96.27 481060715 980953194
sdb 1.19 0.00 342.39 15707 3488939808
dm-0 8.36 5.03 79.18 51223082 806865688
dm-1 0.01 0.02 0.03 192064 314528
dm-2 0.99 0.01 7.88 142226 80313368
커널 버전 밑에 보이는 CPU 평균은 마지막 재부팅 이후의 평균 활용률
- %user : 어플리케이션 등 사용자 모드에 소모된 시간
- %nice : nice를 사용하여 스케줄링 우선순위가 바뀐 프로세스에 소모된 시간
- %system : 시스템(커널)이 사용한 시간
- %iowait : 디스크I/O 요청 때문에 CPU가 대기한 시간
- %steal : 다른 가상 CPU가 서비스하는 동안 비자발적으로 대기한 시간
- %idle : 대기한 시간
- tps : 초당 전송(입출력) 수
- Blk_read/s : 초당 읽혀진 512바이트 블록수
- Blk_wrtn/s : 초당 쓰여진 512바이트 블록수
- Blk_read : 지금까지 읽혀진 총 512바이트 블록수
- Blk_wrtn : 지금까지 쓰여진 총 512바이트 블록수
* -k 옵션 사용시 블록단위가 아닌 킬로바이트 단위의 정보를 볼 수 있다.
- cpu에서 시스템에서 사용하는 cpu시간이 지나치게 높다면(50% 이상) 디스크 I/O에서 문제가 있을 가능성이 크다.
- 시스템 전체의 부하가 높은데도 cpu에서 휴지시간(idle time, id 항목)이 일반적으로 10%를 넘는다면 I/O나 메모리에 문제가 있을 가능성이 크다.
- 휴지시간이 항상 0이라면 CPU를 완전하게 100% 사용하고 있는 상태이며 CPU의 과부하를 의미한다.
ㅇ mpstat
옵션없이 사용하면 iostat과 큰 차이 없음
-P ALL 옵션을 같이 사용하면 각 CPU별 사용현황을 볼 수 있음
# mpstat -P ALL
Linux 2.6.32-220.el6.x86_64 (dev) 05/08/13 _x86_64_ (16 CPU)
16:18:09 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16:18:09 all 0.09 0.00 0.11 0.01 0.00 0.00 0.00 0.00 99.79
16:18:09 0 0.05 0.00 0.06 0.08 0.00 0.00 0.00 0.00 99.81
16:18:09 1 0.09 0.00 0.08 0.00 0.00 0.00 0.00 0.00 99.83
16:18:09 2 0.10 0.00 0.08 0.00 0.00 0.00 0.00 0.00 99.82
16:18:09 3 0.11 0.00 0.09 0.00 0.00 0.00 0.00 0.00 99.80
16:18:09 4 0.07 0.00 0.12 0.09 0.00 0.00 0.00 0.00 99.71
16:18:09 5 0.12 0.00 0.12 0.00 0.00 0.00 0.00 0.00 99.76
ㅇ sadc 및 sar
- system activity data collector
- /etc/cron.d/sysstat 파일을 통해 주기적으로 작업하고 /var/log/sa 디렉토리에 sa<dd> 형식으로 저장(dd - 날짜)
- sadc의 수집자료는 sar에 의해 /var/log/sa 디렉토리에 sar<dd> 형식으로 저장
- sar<dd> 파일은 00:00~23:50까지 10분단위로 기록하며, 총 17개 항목을 보고