리눅스 I/O테스트
서버 디스크의 입출력 성능을 테스트할때
사용하는 명령어이다.
df -h
먼저 디스크가 어떻게 있는지 확인하여,
어느 디스크를 측정할 것인지 알아봐야한다.
df 명령어를 사용하면 마운트 되어있는 디스크들을 확인할 수 있다.
여기서 나는 /ora19를 테스트 해보도록 하겠다.
1.쓰기 성능 테스트
가장 간단하게 실행해볼 수 있는 건 dd명령을 이용한 방법입니다. dd 명령은 유닉스 계열 운영체제에서 사용하는 명령으로 파일을 복사하고 변환하는데 사용하는 커맨드라인 유틸리티다. dd 명령을 이용하면 입출력(I/O)에 대한 성능 측정을 할 수 있다.
dd if=/dev/zero bs=1024 count=1000 of=/ora19/test_file oflag=direct
dd명령의 if 옵션과 of 옵션은 각각 입력파일(inputFile)과 출력파일(OutputFile)을 의미한다. dd명령의 입력파일로 준 /dev/zero 파일은 리눅스에서 제공하는 특수파일로 사용자가 원하는 만큼 0x00 바이트를 채워준다. 즉 0x00으로 가득찬 파일을 읽어서 /data1/test_file에 쓰라는 의미의 명령이다. 명령 수행이 종료된 다음 /data1/test_file을 열어보면 0x00으로 가득찬 파일을 볼 수 있다.
dd 명령의 count는 몇번의 입출력을 수행할지를 의미한다. 결국 생성되는 파일의 크기는 bs*count가 된다.
dd 명령의 oflag는 test_file을 쓸 때 사용할 file flag를 의미한다. oflag=direct는 O_DIRECT 플래그를 켜고 write() 호출을 하게 된다. O_DIRECT 플래그를 이용하면 파일시스템의 캐시 영역을 사용하지 않고 바로 디스크로 쓰게 된다. 따라서 디스크 입출력 성능을 측정할 때 반드시 필요하다.
dd 명령이 종료되면 디스크 쓰기 성능을 알 수 있다.
2.읽기 성능 테스트
읽기 성능은 if와 of를 살짝 변경해서 측정할 수 있다.
dd if=/ora19/test_file of=/dev/null bs=1024
dd 명령의 if, of옵션의 의미는 동일하다. of옵션에 사용한 /dev/null 파일은 리눅스에서 제공하는 특수 파일이다. 이 파일을 of 옵션으로 주면 읽은 데이터를 그냥 버리겠다는 의미다. (순수 읽기 성능만 수행)
dd명령의 bs는 한번에 읽을 Block Size를 의미하며, count 옵션을 주지않았기 때문에 파일 전체를 읽어들인다.