Menguji kinerja disk sangat penting agar dapat mengetahui kemampuan disk dan kesehatan disk dalam waktu ke waktu. Ini juga dilakukan untuk mengetahui jika ada permasalahan disk pada cluster storege seperti Ceph atau NFS agar beban kerja disk dapat lebih optimal dan lebih efektif.
Berikut beberapa tools yang dapat digunakan untuk benchmark disk.
Hdparm #
Hdparm merupakan tool sederahana yang dapat digunakan untuk menguji read throughput disk.
hdparm -Tt /dev/vdb
/dev/vdb:
Timing cached reads: 2452 MB in 1.99 seconds = 1231.20 MB/sec
Timing buffered disk reads: 1102 MB in 3.02 seconds = 365.04 MB/sec
DD #
DD (Data Duplicator) adalah utilitas linux untuk menyalin dan mengonversi file atau data. Selain itu DD juga dapat digunakan untuk menguji write throughput disk.
dd if=/dev/zero of=/usr/benchfile bs=1M count=2000 && sync; rm -f /usr/benchfile
1000+0 records in
1000+0 records out
1048576000 bytes (2.0 GB, 2000 MiB) copied, 3.75062 s, 280 MB/s
Fio #
Fio adalah tool yang menghasilkan sejumlah thread atau proses yang melakukan jenis tindakan I/O sesuai yang ditentukan oleh pengguna. Karena itu fio cocok untuk menguji beban I/O yang ingin disimulasikan.
Buat folder benchmark lalu buat file untuk pengetesan.
fio --name=setup --ioengine=libaio --rw=read \
--bs=64k --iodepth=64 --numjobs=2 --size=2G \
--runtime=1 --gtod_reduce=1 --filename=test.fio \
--direct=1
Untuk pengetesan I/O random read/write dengan ukuran blok (bs) 4k
fio --name=rand_rw_4k --ioengine=libaio --rw=randrw \
--rwmixread=50 --bs=4k --iodepth=64 --numjobs=2 \
--size=2G --runtime=30 --gtod_reduce=1 --direct=1 \
--filename=test.fio
Untuk pengetesan I/O random read/write dengan ukuran blok (bs) 64k
fio --name=rand_rw_64k --ioengine=libaio --rw=randrw \
--rwmixread=50 --bs=64k --iodepth=64 --numjobs=2 \
--size=2G --runtime=30 --gtod_reduce=1 --direct=1 \
--filename=test.fio
Untuk pengetesan I/O random read/write dengan ukuran blok (bs) 512k
fio --name=rand_rw_512k --ioengine=libaio --rw=randrw \
--rwmixread=50 --bs=512k --iodepth=64 --numjobs=2 \
--size=2G --runtime=30 --gtod_reduce=1 --direct=1 \
--filename=test.fio
Untuk pengetesan I/O random read/write dengan ukuran blok (bs) 1m
fio --name=rand_rw_1m --ioengine=libaio --rw=randrw \
--rwmixread=50 --bs=1m --iodepth=64 --numjobs=2 \
--size=2G --runtime=30 --gtod_reduce=1 --direct=1 \
--filename=test.fio