Gunakan fio pada Instance ECS Linux untuk mengukur IOPS disk mentah, throughput, dan latensi guna penyetelan kinerja block storage.
fio adalah tool benchmarking I/O open source yang dapat menguji metrik kinerja block storage seperti operasi baca/tulis acak dan berurutan.
Prosedur
-
Jika perangkat block storage berisi partisi, sistem file, atau data, fio dapat merusak sistem file dan menyebabkan kehilangan data. Buat snapshot sebelum pengujian. Lihat Buat snapshot secara manual.
-
Jangan lakukan pengujian pada sistem disk atau data disk apa pun yang berisi data. Gunakan data disk kosong yang baru dibuat dan belum diinisialisasi sebagai gantinya.
-
Hasil pengujian diperoleh dalam lingkungan pengujian dan hanya untuk referensi. Di lingkungan produksi, kinerja cloud disk dapat bervariasi karena faktor seperti kondisi jaringan dan akses bersamaan.
-
Setelah menguji disk baru:
-
Item ini dicadangkan dan tidak dapat digunakan langsung. Lihat Inisialisasi ulang data disk.
-
Jika Anda tidak memerlukan disk tersebut, detach lalu release disk tersebut.
-
Contoh berikut menggunakan gambar publik Alibaba Cloud Linux 3.2104 LTS 64-bit. Langkah-langkahnya dapat berbeda tergantung pada gambar instans Anda.
-
Sambungkan ke Instance ECS.
Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.
-
Kueri nama perangkat block storage.
sudo fdisk -lu
Instans memiliki tiga perangkat block storage: sistem disk /dev/vda dan dua data disk /dev/vdb dan /dev/vdc. -
Periksa apakah perangkat memiliki partisi dan sistem file.
sudo blkid
Perangkat /dev/vda dan /dev/vdb memiliki partisi dan sistem file. Perangkat /dev/vdc tidak tercantum, menandakan tidak ada partisi atau sistem file.PeringatanJika objek pengujian berisi partisi, sistem file, atau data, fio dapat merusak sistem file dan menyebabkan kehilangan data. Jika data disk Anda memiliki partisi dan sistem file, buat data disk kosong untuk pengujian.
-
Buat disk bayar sesuai penggunaan dengan spesifikasi yang sama dan sambungkan ke instans Anda. Lihat Buat data disk.
-
Setelah pengujian, release disk bayar sesuai penggunaan tersebut. Lihat Release cloud disk.
-
-
Cadangkan data pada perangkat sebelum pengujian. Lihat Buat snapshot secara manual.
CatatanSnapshot dikenai biaya. Lihat Penagihan snapshot.
-
Instal library libaio dan fio berdasarkan sistem operasi Anda.
Alibaba Cloud Linux 2/3, atau CentOS 6 atau versi lebih baru
CatatanCentOS 6 telah mencapai akhir masa pakai (EOL). Sesuai aturan komunitas Linux, seluruh konten telah dihapus dari alamat repositori CentOS 6 berikut: http://mirror.centos.org/centos-6/. Jika Anda tetap menggunakan repositori CentOS 6 default di Alibaba Cloud, akan muncul error. Untuk menggunakan paket instalasi tertentu CentOS 6, ubah alamat repositori CentOS 6. Untuk informasi lebih lanjut, lihat Bagaimana cara mengubah alamat repositori CentOS 6?
sudo yum install libaio libaio-devel fio -yDebian 9 atau versi lebih baru, atau Ubuntu 14 atau versi lebih baru
PentingDebian 9 dan Debian 10 telah mencapai EOL. Jika instans Anda menjalankan Debian 9 atau Debian 10, ubah alamat repositori. Lihat Ubah alamat repositori setelah CentOS atau Debian mencapai EOL.
sudo apt-get update sudo apt-get install libaio* fio -y -
Pindah ke direktori /tmp:
cd /tmp -
Jalankan perintah pengujian.
-
Untuk perintah pengujian cloud disk, lihat bagian Perintah pengujian cloud disk.
-
Untuk perintah pengujian local disk, lihat bagian Perintah pengujian local disk.
-
-
Lihat hasil pengujian. Nilai metrik bervariasi tergantung kategori cloud disk. Nilai pada gambar berikut hanya untuk referensi.
-
Nilai
IOPSmenunjukkan hasil pengujian IOPS.
-
Nilai
BWmenunjukkan hasil pengujian throughput.
-
Nilai lat (usec) menunjukkan hasil pengujian latensi.

Perintah pengujian cloud disk
Menjalankan fio pada disk yang berisi partisi, sistem file, atau data dapat menyebabkan error sistem file dan kehilangan data. Jika data disk Anda memiliki partisi dan sistem file, buat data disk baru yang kosong untuk pengujian:
-
Buat disk bayar sesuai penggunaan dengan konfigurasi yang sama dan sambungkan ke instans. Lihat Buat data disk.
-
Setelah pengujian selesai:
-
Jika ingin menyimpan disk: Inisialisasi ulang data disk.
-
Jika tidak lagi memerlukan disk: detach lalu release it.
-
Nilai parameter dalam perintah berikut hanya untuk referensi. Ganti /dev/your_device dengan nama perangkat block storage Anda yang diperoleh pada Langkah 2 bagian "Prosedur". Misalnya, ganti /dev/your_device dengan /dev/vdb. Untuk detail parameter fio, lihat bagian parameter fio.
-
Uji IOPS tulis acak.
sudo fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Rand_Write_Testing -
Uji IOPS baca acak.
sudo fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Rand_Read_Testing -
Uji throughput tulis berurutan.
sudo fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Write_PPS_Testing -
Uji throughput baca berurutan.
sudo fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=Read_PPS_Testing -
Uji latensi tulis acak.
sudo fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_device -name=Rand_Write_Latency_Testing -
Uji latensi baca acak.
sudo fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_device -name=Rand_Read_Latency_Testing
Lihat Uji kinerja IOPS ESSD.
Perintah pengujian local disk
Menjalankan fio pada disk yang berisi partisi, sistem file, atau data akan menyebabkan error sistem file dan kehilangan data. Jika data disk Anda memiliki partisi dan sistem file, buat instans baru dengan local disk untuk pengujian:
-
Local disk hanya dapat dibuat bersamaan dengan instans. Buat instans baru dengan konfigurasi yang sama untuk pengujian. Lihat Launch kustom Instance ECS.
-
Setelah pengujian selesai:
-
Untuk menyimpan instans, lihat Inisialisasi ulang data disk.
-
Untuk membuang instans, uninstall lalu release disk tersebut.
-
Perintah berikut berlaku untuk local NVMe SSD dan local SATA HDD. Nilai parameter hanya untuk referensi. Ganti /dev/your_device dengan nama perangkat block storage Anda yang diperoleh pada Langkah 2 bagian "Prosedur". Misalnya, ganti /dev/your_device dengan /dev/vdb. Untuk detail parameter fio, lihat bagian parameter fio.
-
Uji IOPS tulis acak.
sudo fio -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji IOPS baca acak.
sudo fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji throughput tulis berurutan.
sudo fio -direct=1 -iodepth=128 -rw=write -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji throughput baca berurutan.
sudo fio -direct=1 -iodepth=128 -rw=read -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji latensi tulis acak.
sudo fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji latensi baca acak.
sudo fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji latensi tulis berurutan.
sudo fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test -
Uji latensi baca berurutan.
sudo fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/dev/your_device -name=test
Parameter fio
Tabel berikut menjelaskan parameter fio yang digunakan dalam perintah sebelumnya.
|
Parameter |
Deskripsi |
|
direct |
Menentukan apakah akan menggunakan direct I/O. Nilai default: 1. Nilai yang valid:
|
|
iodepth |
Kedalaman antrian I/O. Misalnya, |
|
rw |
Kebijakan baca/tulis. Nilai yang valid:
|
|
ioengine |
Mesin I/O. Dalam kebanyakan kasus, libaio digunakan. Untuk mesin lainnya, lihat dokumentasi fio. |
|
bs |
Ukuran blok unit I/O. Nilai default: 4k. Nilai baca/tulis terpisah dapat ditentukan sebagai <baca>,<tulis>. |
|
size |
Ukuran file pengujian. fio mengakhiri pengujian setelah ukuran yang ditentukan dibaca atau ditulis, kecuali dibatasi oleh runtime. Jika tidak ditentukan, fio menggunakan ukuran penuh file atau perangkat yang diberikan. Juga dapat berupa persentase (1–100). Misalnya, size=20% menggunakan 20% dari total ukuran file atau perangkat. |
|
numjobs |
Jumlah thread konkuren. Nilai default: 1. |
|
runtime |
Durasi pengujian dalam detik. Jika tidak ditentukan, pengujian berjalan hingga file yang ditentukan oleh size sepenuhnya dibaca atau ditulis dalam ukuran blok yang ditentukan oleh bs. |
|
group_reporting |
Mode tampilan hasil. Jika ditentukan, hasil diagregasi per proses, bukan per task. |
|
filename |
Jalur target pengujian — nama perangkat atau jalur file. Dalam topik ini, target adalah disk mentah tanpa sistem file. Ganti /dev/your_device dengan jalur perangkat aktual. |
|
name |
Nama pengujian. Tentukan sesuai kebutuhan. Dalam contoh sebelumnya, Rand_Write_Testing digunakan. |
Lihat fio(1) - Linux man page untuk referensi parameter lengkap.