리눅스에서 fio를 이용한 디스크 벤치마크하기
안녕하세요. 달소입니다.
이번글에서는 Flexible I/O tester 라고 불리우는 fio를 이용해서 디스크의 i/o를 벤치마크해보도록 하겠습니다.
쉽게 말씀드리자면 디스크 성능 측정 프로그램 으로 순차/랜덤 읽기/쓰기 IOPS 측정 등을 도와줍니다.
윈도우에서는 Crystal Disk Mark같은 툴이되겠네요.
설치하기
fio자체는 리눅스 패키지에 기본적으로 설치되어있지 않기때문에 리눅스 환경에 따라서 아래처럼 설치해주시면됩니다.
Ubuntu - apt install fio
Cent OS - yum install fio
fio 사용방법
fio의 경우 사용방법이 꽤나 복잡한 편입니다.
사용방법에 대해서는 참조의 공식문서나 위키를 참고하시는편이 좋습니다 ㅠ
순차 읽기
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4M --iodepth=64 --size=4G --readwrite=read --ramp_time=4
순차 쓰기
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4M --iodepth=64 --size=4G --readwrite=write --ramp_time=4
랜덤 읽기(4k IOPS)
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read.fio --bs=4k --iodepth=64 --size=1G --readwrite=randread
랜덤 쓰기(4k IOPS)
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_write.fio --bs=4k --iodepth=64 --size=1G --readwrite=randwrite
랜덤 읽기/쓰기(4k IOPS)
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=1G --readwrite=randrw --rwmixread=75
벤치마크가 끝나면 생성도니 임시파일들을 삭제해주시면됩니다.
참고 : https://blog.kerus.net/2050/fio-i-o-performance-test-sequntial-iops
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_fio
https://fio.readthedocs.io/en/latest/fio_doc.html
좋은 자료 감사합니다. ^^
Proxmox에서 nvme ssd(ZFS1)를 사용했을때와 HDD(ZFS1)를 사용했을때의 벤치마크 테스트를 하고자 하는데
실례가 안된다면 지찬공님은 어떤환경에서 Proxmox를 구성하고계신지 알수있을까요??(SSD/HDD 등등)
지찬공님께서 올려주신 Proxmox/Xpenol 을 보고 Proxmox로 넘어온터라 가르침이 필요합니다 ㅎㅎㅎㅎ
T.T 달소님께서 참조할 만한 내용은 별로 없습니다. 사유는 회사에서는 Enterprise 스토리지 환경이며, ZFS 는 2TB 12대 이상디스크 및 RAID Card 2대 를 HP 서버 사용 중이기 때문입니다.
참고로 집에서는 PC 2대를 사용 중이며, Main으로는 Native Xpenology 1대 (TS140 Cache(SSD) + HDD ), 거의 테스트 환경으로 Proxmox ( Windows, Xpenology , Ubuntu .. Linux ) LVM SSD + HDD Layer로 간단히 사용 중입니다.
ZFS 구성시 SSD 와 HDD 의 밴치마크는 디스크 구성 갯수에 따라 차이가 많이 날 수 있으며, SSD 와 HDD 의 비교는 별 의미가 없다고 생각이 듭니다. 이유는 성능차이가 많이 SSD 가 좋습니다.
또한 ZFS 는 성능 및 확장에 장점이 있지만, 백업 및 복원에서도 큰 장점이 있습니다.
혹시 디스크 성능때문에 고민이라면,
1. RANDOM 성능이 필요한 영역은 DB 입니다. 즉 SSD 는 DB 영역만 으로 사용하고
2. 기타 영역은 순차 쓰기 만 중요합니다. 즉 HDD 로 사용으로도 충분합니다.
참조가 되셨으며 좋겠습니다. ^^
우오.. 이렇게 상세한 답변이라니..! 감사합니다!
많은 가르침이 되었습니다 참고해서 운영해보겠습니다~
iozone 테스트만 진행해봤었는데
달소님 가이드 따라서 fio도 해봐야겠네요 좋은자료 감사합니다.
cmt alert