全部产品
Search
文档中心

Elastic Compute Service:Menguji Performa Perangkat Penyimpanan Blok

更新时间:Nov 09, 2025

Menguji performa penyimpanan blok membantu Anda memahami kemampuan perangkat penyimpanan sehingga dapat dioptimalkan. Pengujian disk mentah memberikan hasil akurat untuk performa penyimpanan blok. Topik ini menjelaskan cara menggunakan alat open-source Flexible I/O Tester (FIO) pada sistem Linux untuk menguji metrik performa utama disk mentah, seperti IOPS, throughput, dan latensi.

Catatan

FIO merupakan alat pengujian performa I/O open-source yang kuat, digunakan untuk menjalankan tes beban seperti operasi baca dan tulis acak serta berurutan pada perangkat penyimpanan.

Prosedur

Penting
  • Menguji disk mentah memberikan ukuran yang akurat dari performa penyimpanan blok. Namun, jika perangkat penyimpanan blok berisi partisi atau sistem file, menjalankan uji stres dengan FIO dapat menyebabkan pengecualian sistem file dan kehilangan data. Sebelum memulai tes, buat Snapshot untuk mencadangkan data Anda. Untuk informasi lebih lanjut, lihat Buat snapshot.

  • Untuk mencegah kehilangan data, jangan uji disk sistem atau disk data yang berisi data. Disarankan untuk menguji performa disk data baru yang belum diinisialisasi dan kosong.

  • Hasil pengujian performa hanya bersifat referensi. Dalam lingkungan produksi, performa disk dapat bervariasi karena faktor-faktor seperti lingkungan jaringan dan akses bersamaan.

  • Setelah tes selesai, kelola disk baru sebagai berikut:

Topik ini menggunakan gambar publik Alibaba Cloud Linux 3.2104 LTS 64-bit sebagai contoh. Prosedur dapat bervariasi tergantung pada lingkungan Anda.

  1. Sambungkan ke instance ECS.

    Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk masuk ke instance Linux.

  2. Jalankan perintah berikut untuk menanyakan nama perangkat dari perangkat penyimpanan blok.

    sudo fdisk -lu

    Screenshot 2024-12-05 09Gambar di atas menunjukkan bahwa instance memiliki tiga perangkat penyimpanan blok: disk sistem /dev/vda dan dua disk data, /dev/vdb dan /dev/vdc.

  3. Jalankan perintah berikut untuk memeriksa apakah partisi dan sistem file ada pada perangkat Elastic Block Storage.

    sudo blkid

    Screenshot 2024-12-05 09Seperti yang ditunjukkan pada gambar di atas, perangkat penyimpanan blok /dev/vda dan /dev/vdb memiliki partisi dan sistem file. Output tidak berisi informasi tentang /dev/vdc, yang menunjukkan bahwa perangkat ini tidak memiliki partisi atau sistem file.

    Peringatan

    Menjalankan uji stres dengan FIO pada perangkat yang berisi partisi, sistem file, atau data lainnya dapat menyebabkan pengecualian sistem file dan kehilangan data. Jika disk data Anda memiliki partisi dan sistem file, buat disk data baru yang kosong untuk pengujian:

    1. Buat disk bayar sesuai penggunaan dengan konfigurasi yang sama dan sambungkan ke instance untuk pengujian. Untuk informasi lebih lanjut, lihat Sambungkan disk data ke instance Linux.

    2. Setelah tes selesai, lepaskan disk sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Lepaskan instance.

  4. Sebelum menguji performa perangkat penyimpanan blok, cadangkan datanya untuk mencegah kehilangan data. Untuk informasi lebih lanjut, lihat Buat snapshot.

    Catatan

    Snapshot dikenakan biaya. Untuk informasi lebih lanjut tentang penagihan snapshot, lihat Harga snapshot.

  5. Jalankan salah satu perintah berikut untuk menginstal pustaka libaio dan alat FIO. Pilih perintah yang sesuai dengan sistem operasi Anda.

    Alibaba Cloud Linux 2, Alibaba Cloud Linux 3, CentOS 6, dan versi selanjutnya

    Catatan

    CentOS 6 telah mencapai akhir masa pakai (EOL). Sesuai aturan komunitas Linux, semua konten dihapus dari alamat repositori CentOS 6 berikut: http://mirror.centos.org/centos-6/. Jika Anda terus menggunakan repositori CentOS 6 default di Alibaba Cloud, kesalahan akan dilaporkan. Untuk menggunakan paket instalasi tertentu dari 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, Ubuntu 14, dan versi selanjutnya

    Penting

    Karena Debian 9 dan Debian 10 telah mencapai akhir masa pakai (EOL), jika Anda menggunakan instance ECS yang menjalankan Debian 9 atau Debian 10, Anda harus terlebih dahulu mengganti alamat repositori. Untuk informasi lebih lanjut, lihat Ganti alamat repositori untuk CentOS atau Debian setelah EOL.

    sudo apt-get update
    sudo apt-get install libaio* fio -y
  6. Ubah jalur:

    cd /tmp
  7. Jalankan perintah pengujian performa. Untuk informasi lebih lanjut tentang perintah, lihat bagian berikut:

  8. Lihat hasil tes. Nilai bervariasi untuk disk yang berbeda. Nilai dalam gambar berikut hanya untuk referensi.

  • Untuk hasil tes IOPS, temukan nilai IOPS=***, seperti yang ditunjukkan pada gambar berikut. Screenshot 2024-11-19 11

  • Untuk hasil tes throughput, temukan nilai BW=***, seperti yang ditunjukkan pada gambar berikut:Screenshot 2024-11-19 11

  • Untuk hasil tes latensi, temukan nilai lat (usec), seperti yang ditunjukkan pada gambar berikut. Screenshot 2024-11-19 11

Perintah pengujian performa disk

Peringatan

Menjalankan uji stres dengan FIO pada perangkat yang berisi partisi, sistem file, atau data lainnya dapat menyebabkan pengecualian sistem file dan kehilangan data. Jika disk data Anda memiliki partisi dan sistem file, buat disk data baru yang kosong untuk pengujian:

  1. Buat disk bayar sesuai penggunaan dengan konfigurasi yang sama dan sambungkan ke instance untuk pengujian. Untuk informasi lebih lanjut, lihat Sambungkan Disk Data ke Instance Linux.

  2. Setelah tes selesai:

Nilai parameter dalam perintah sampel hanya untuk referensi. Dalam perintah, ganti /dev/your_device dengan nama perangkat penyimpanan blok yang ingin Anda uji, yang Anda peroleh di Langkah 2. Misalnya, jika nama perangkat disk yang ingin diuji adalah /dev/vdb, ganti /dev/your_device dengan /dev/vdb. Untuk informasi lebih lanjut tentang parameter FIO, lihat Deskripsi Parameter FIO.

  • Uji IOPS tulis acak disk:

    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 disk:

    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 disk:

    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 disk:

    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 disk:

    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 disk:

    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

Untuk langkah-langkah rinci tentang cara menguji jenis disk yang berbeda, lihat Uji Performa IOPS ESSD.

Perintah pengujian performa disk lokal

Peringatan

Menjalankan uji stres dengan FIO pada perangkat yang berisi partisi, sistem file, atau data lainnya dapat menyebabkan pengecualian sistem file dan kehilangan data. Jika disk lokal Anda memiliki partisi dan sistem file, kami sarankan untuk membuat instance baru dengan disk lokal untuk pengujian:

  1. Disk lokal hanya dapat dibuat bersamaan dengan instance. Untuk mengujinya, buat instance baru dengan konfigurasi yang sama. Untuk informasi lebih lanjut, lihat Beli Instance Kustom.

  2. Setelah pengujian selesai:

Perintah pengujian berikut berlaku untuk NVMe SSD lokal dan HDD SATA lokal. Nilai parameter dalam perintah sampel hanya untuk referensi. Dalam perintah, ganti /dev/your_device dengan nama perangkat penyimpanan blok yang ingin diuji, yang diperoleh di Langkah 2. Misalnya, jika nama perangkat disk lokal yang ingin diuji adalah /dev/vdb, ganti /dev/your_device dengan /dev/vdb. Untuk informasi lebih lanjut tentang parameter FIO, lihat Deskripsi Parameter FIO.

  • Uji IOPS tulis acak disk lokal:

    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 disk lokal:

    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 disk lokal:

    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 disk lokal:

    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 disk lokal:

    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 disk lokal:

    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 disk lokal:

    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 disk lokal:

    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

Deskripsi parameter FIO

Tabel berikut menjelaskan parameter FIO yang digunakan dalam perintah pengujian.

Parameter

Deskripsi

direct

Menentukan apakah akan menggunakan direct I/O. Nilai default: 1.

  • 1: Gunakan direct I/O. Ini melewati cache I/O dan menulis data langsung ke perangkat penyimpanan.

  • 0: Jangan gunakan direct I/O.

iodepth

Kedalaman antrian I/O selama pengujian. Misalnya, -iodepth=128 menunjukkan bahwa jumlah maksimum operasi I/O yang dapat berjalan secara paralel untuk permintaan kontrol FIO adalah 128.

rw

Kebijakan baca dan tulis untuk pengujian. Anda dapat mengatur parameter ini ke salah satu nilai berikut:

  • randwrite: Tulis acak.

  • randread: Baca acak.

  • read: Baca berurutan.

  • write: Tulis berurutan.

  • randrw: Campuran baca dan tulis acak.

ioengine

Mesin I/O yang digunakan untuk pengujian. `libaio` biasanya dipilih karena lebih mencerminkan pola aplikasi sehari-hari. Untuk informasi lebih lanjut tentang opsi lainnya, lihat dokumentasi resmi FIO.

bs

Ukuran blok untuk setiap unit I/O. Nilai default: 4 KB. Anda dapat menentukan nilai terpisah untuk operasi baca dan tulis dalam format `read,write`. Jika nilai dibiarkan kosong, nilai default digunakan.

size

Ukuran total file tes.

FIO menghentikan tes hanya setelah membaca atau menulis jumlah data yang ditentukan, kecuali dibatasi oleh opsi lain seperti `runtime`. Jika parameter ini tidak ditentukan, FIO menggunakan ukuran penuh file atau perangkat yang ditentukan. Anda juga dapat menentukan ukuran sebagai persentase dari 1 hingga 100. Misalnya, jika Anda menentukan `size=20%`, FIO menggunakan 20% dari ukuran total file atau perangkat yang ditentukan.

numjobs

Jumlah thread bersamaan untuk pengujian. Nilai default: 1.

runtime

Durasi tes.

Jika Anda tidak menentukan parameter ini, FIO berjalan hingga selesai membaca atau menulis ukuran file total yang ditentukan oleh size, menggunakan ukuran blok yang ditentukan oleh bs.

group_reporting

Mode tampilan untuk hasil tes.

Jika parameter ini ditentukan, hasilnya menggabungkan statistik untuk setiap proses alih-alih menampilkan statistik untuk setiap tugas.

filename

Jalur objek yang ingin Anda uji. Jalur tersebut dapat berupa nama perangkat disk atau alamat file. Dalam topik ini, objek tes fio adalah seluruh disk yang tidak memiliki sistem file (disk mentah). Untuk mencegah data pada disk lain rusak, ganti /dev/your_device dengan jalur aktual.

name

Nama tes. Anda dapat menentukan parameter ini sesuai kebutuhan. Misalnya, Rand_Write_Testing.

Untuk informasi lebih lanjut mengenai parameter, lihat halaman manual FIO.