[Linux] iowait를 sar 명령어로 확인하기

%iowait은 sar 명령어로 확인할 수 있는 로그 항목입니다.

 

iowait 은 cpu 본연의 job이 아닌 다른 장치와의 통신 때문에 cpu job이 일시적으로 waiting 된 상태를 말합니다.

cpu 성능이 좋으면 iowait이 감소할 것이라고 오해할 수도 있지만 반대로 iowait이 증가하게 됩니다.

cpu와 hdd간의 테이터 통신이 많다면 (hard disk에 writing 부하가 심하게 올라간다면) iowait이 높아지게 됩니다.

 

system의 경우에는 system call(kernel api)이 사용된 시간을 의미하며, user는 user call (예를 들어 fopen같은 api)이 사용된 시간을 의미하며, nice의 경우에는 NICE prior(우선순위)를 사용할 경우를 의미하므로 nice는 user랑 합산을 하시는 것이 맞습니다.

 

결론적으로 디스크를 더욱 빠르게 만드는 것은 어렵다.

CPU 속도가 2배 빠르게 된다면 Disk는 2배 빠르게 wait하게 됩니다.

 

sar 명령어 사용하기

sar란?

systecm activity reporter 리눅스 시스템의 CPU, MEM, Network, Disk 등의 지표를 수집하여 실시간 지표로 보여주며 파일로 저장

 

바이너리 형태로 /var/log/sa에 저장됩니다.

 

 

sysstat 설치

# yum -y install sysstat

 

sysstat 서비스 시작

# service sysstat start

 

# sar

# sar 2 5

2초마다 5회 cpu 체크

 

iostat -xkzt

x : 자세히 보기

k : kb 단위로 확인

z : 유휴 디스크 제외

t : 타임스탬프 보기

 

iowait을 확인하는 방법에 대해서 알아보았습니다. iowait가 늘어난다면 input, output이 대기하고 있는 상태이기 때문에 자연스럽게 파일 입출력이 느려질 수 밖에 없기 때문에 시스템 전체적으로 느리다는 느낌을 받을 수 있습니다.

댓글

Designed by JB FACTORY