All Products
Search
Document Center

Elastic Compute Service:Uji kinerja block storage dengan fio

Last Updated:Apr 28, 2026

Gunakan fio pada Instance ECS Linux untuk mengukur IOPS disk mentah, throughput, dan latensi guna penyetelan kinerja block storage.

Catatan

fio adalah tool benchmarking I/O open source yang dapat menguji metrik kinerja block storage seperti operasi baca/tulis acak dan berurutan.

Prosedur

Penting
  • 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:

Contoh berikut menggunakan gambar publik Alibaba Cloud Linux 3.2104 LTS 64-bit. Langkah-langkahnya dapat berbeda tergantung pada gambar instans Anda.

  1. Sambungkan ke Instance ECS.

    Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.

  2. Kueri nama perangkat block storage.

    sudo fdisk -lu

    截屏2024-12-05 09Instans memiliki tiga perangkat block storage: sistem disk /dev/vda dan dua data disk /dev/vdb dan /dev/vdc.

  3. Periksa apakah perangkat memiliki partisi dan sistem file.

    sudo blkid

    截屏2024-12-05 09Perangkat /dev/vda dan /dev/vdb memiliki partisi dan sistem file. Perangkat /dev/vdc tidak tercantum, menandakan tidak ada partisi atau sistem file.

    Peringatan

    Jika 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.

  4. Cadangkan data pada perangkat sebelum pengujian. Lihat Buat snapshot secara manual.

    Catatan

    Snapshot dikenai biaya. Lihat Penagihan snapshot.

  5. Instal library libaio dan fio berdasarkan sistem operasi Anda.

    Alibaba Cloud Linux 2/3, atau CentOS 6 atau versi lebih baru

    Catatan

    CentOS 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 -y

    Debian 9 atau versi lebih baru, atau Ubuntu 14 atau versi lebih baru

    Penting

    Debian 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
  6. Pindah ke direktori /tmp:

    cd /tmp
  7. Jalankan perintah pengujian.

  8. Lihat hasil pengujian. Nilai metrik bervariasi tergantung kategori cloud disk. Nilai pada gambar berikut hanya untuk referensi.

  • Nilai IOPS menunjukkan hasil pengujian IOPS. 截屏2024-11-19 11

  • Nilai BW menunjukkan hasil pengujian throughput. 截屏2024-11-19 11

  • Nilai lat (usec) menunjukkan hasil pengujian latensi. 截屏2024-11-19 11

Perintah pengujian cloud disk

Peringatan

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:

  1. Buat disk bayar sesuai penggunaan dengan konfigurasi yang sama dan sambungkan ke instans. Lihat Buat data disk.

  2. Setelah pengujian selesai:

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

Peringatan

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:

  1. Local disk hanya dapat dibuat bersamaan dengan instans. Buat instans baru dengan konfigurasi yang sama untuk pengujian. Lihat Launch kustom Instance ECS.

  2. Setelah pengujian selesai:

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:

  • 1: menggunakan direct I/O, melewati buffer I/O, dan menulis data secara langsung.

  • 0: tidak menggunakan direct I/O. Data melewati buffer I/O.

iodepth

Kedalaman antrian I/O. Misalnya, -iodepth 128 berarti hingga 128 operasi I/O dapat berjalan secara paralel per job fio.

rw

Kebijakan baca/tulis. Nilai yang valid:

  • randwrite: tulis acak

  • randread: baca acak

  • read: baca berurutan

  • write: tulis berurutan

  • randrw: baca dan tulis acak

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.