Linux의 top 명령어를 통해 나오는 수치를 이용하여 Disk I/O 병목여부를 체크하는 계산법.


top 명령어의 결과 중 3라인의 Cpu(s)를 보면 앞에서부터 차례로 user, system, nice, idle... 하다가 wa 라는 항목이 나오는데,

이게 Disk I/O wait 퍼센테이지다.


어떤 프로세스가 처리되는데 1초가 걸린다고 가정했을 때,

Disk로부터 데이터를 가져오는 걸리는 시간이 700ms, (이 시간 동안 CPU는 멍때리고 대기상태) 

CPU가 데이터를 가공처리 하는데 걸리는 시간이 300ms 였다면,

이 프로세스의 I/O wait 는 70% (700 / 1000 * 100) 이다.


이 값이 병목인지 알아보는 방법은 다음과 같다.

만약 이 I/O wait 값이 (1/CPU 코어수)*100 보다 크다면 이 시스템은 현재 Disk I/O 병목상태인 것이다.


예를 들어 어떤 시스템의 CPU 코어수가 4개라면 이 시스템의 wa 값 병목 한계는 (1/4)*100 = 25% 이다.

top 화면의 Cpu(s)의 wa값이 25%를 넘는다면 Disk에 관련된 무슨 조치를 취해야 하는 상황이라는 뜻이 된다.






Posted by bloodguy
,