본문 바로가기

Linux is..../Knowledge

ioping명령어를 통해 간단하게 Disk i/O Latency를 측정해보자.


네트워크 상에서 많이 쓰는 도구중에 하나가 PING 이 아닐까 생각한다.

네트워크가 안된다면 우리들은 일단 PING 을 통해서 습관적으로 확인하니깐

네트워크에 PING 이 있다면, 디스크에는 IO Latency 를 확인해 볼 수 있는 IOPING 이 있다. 세부 정보는 다음 경로에서 확인해보자.


[dhkim@redhat ~]$ wget https://ioping.googlecode.com/files/ioping-0.7.tar.gz


외부와 통신이 되어있다면, 리눅스환경에서 wget명령어를 통해 바로 파일을 다운받는다.

자세한 사항은 https://ioping.googlecode.com/ URL을 통해 확인한다.


다운 받아보면 아주 간단하게 구성되어 있다

[dhkim@redhat ioping-0.7]$ ls

Makefile  changelog  ioping.1  ioping.o     version

README    ioping     ioping.c  ioping.spec


Makefile 이 이미 존재하므로 바로 make 를 해주면 컴파일이 된다.



[dhkim@redhat ioping-0.7]$ make

cc -std=gnu99 -g -Wall -Wextra -pedantic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"0.7\" -c -o ioping.o ioping.c

cc -o ioping ioping.o -std=gnu99 -g -Wall -Wextra -pedantic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64  -lm




[dhkim@redhat ioping-0.7]$ ./ioping 

 Usage: ioping [-LABCDWRq] [-c count] [-w deadline] [-pP period] [-i interval]

               [-s size] [-S wsize] [-o offset] directory|file|device

        ioping -h | -v


      -c <count>      stop after <count> requests

      -w <deadline>   stop after <deadline>

      -p <period>     print raw statistics for every <period> requests

      -P <period>     print raw statistics for every <period> in time

      -i <interval>   interval between requests (1s)

      -s <size>       request size (4k)

      -S <wsize>      working set size (1m)

      -o <offset>     working set offset (0)

      -L              use sequential operations (includes -s 256k)

      -A              use asynchronous I/O

      -C              use cached I/O

      -D              use direct I/O

      -W              use write I/O *DANGEROUS*

      -R              seek rate test (same as -q -i 0 -w 3 -S 64m)

      -B              print final statistics in raw format

      -q              suppress human-readable output

      -h              display this message and exit

      -v              display version and exit


별도의 설명없이 위 도움말을 통해 어느정도 이해를 할수 있겠다.


[dhkim@redhat ioping-0.7]$ sudo ./ioping /dev/sda

[sudo] password for dhkim: 

4.0 kb from /dev/sda (device 931.5 Gb): request=1 time=27.2 ms

4.0 kb from /dev/sda (device 931.5 Gb): request=2 time=27.4 ms

4.0 kb from /dev/sda (device 931.5 Gb): request=3 time=23.3 ms

4.0 kb from /dev/sda (device 931.5 Gb): request=4 time=26.7 ms

4.0 kb from /dev/sda (device 931.5 Gb): request=5 time=33.0 ms

4.0 kb from /dev/sda (device 931.5 Gb): request=6 time=20.6 ms

4.0 kb from /dev/sda (device 931.5 Gb): request=7 time=28.6 ms

^C

--- /dev/sda (device 931.5 Gb) ioping statistics ---

7 requests completed in 6.6 s, 37 iops, 150.0 kb/s

min/avg/max/mdev = 20.6 ms / 26.7 ms / 33.0 ms / 3.7 ms


위 결과를 통해 알수 있듯이 /dev/sda볼륨의 ioping명령어를 통해 호출하여, respond받는 형태로 간단하게 latency를 측정할수 있다.