全部产品
Search
文档中心

Elastic Compute Service:Uji kinerja Elastic Block Storage

更新时间:Jan 07, 2026

Menguji kinerja Elastic Block Storage membantu Anda memahami kemampuan perangkat penyimpanan sehingga dapat mengoptimalkannya untuk kinerja terbaik. Pengujian pada raw disk memberikan ukuran kinerja yang paling realistis. Topik ini menjelaskan cara menggunakan tool open source FIO pada sistem Linux untuk menguji metrik kinerja utama raw disk, seperti operasi input/output per detik (IOPS), throughput, dan latency.

Catatan

FIO (Flexible I/O Tester) adalah tool pengujian kinerja I/O open source yang andal. Anda dapat menggunakannya untuk menjalankan uji beban, seperti baca dan tulis acak maupun berurutan, pada perangkat penyimpanan.

Prosedur

Penting
  • Pengujian pada raw disk memberikan ukuran kinerja yang paling realistis. Namun, menjalankan uji stres dengan FIO langsung pada perangkat yang berisi partisi, sistem file, atau data lainnya dapat menyebabkan error sistem file dan kehilangan data. Sebelum memulai pengujian, buat snapshot sebagai backup data Anda. Untuk informasi selengkapnya, lihat Buat snapshot.

  • Untuk mencegah kehilangan data, jangan uji sistem disk atau data disk yang berisi data. Ujilah kinerja penyimpanan pada data disk baru yang belum diinisialisasi dan kosong.

  • Hasil uji kinerja berasal dari lingkungan staging dan hanya untuk referensi. Di lingkungan produksi, kinerja disk dapat bervariasi tergantung pada faktor-faktor seperti lingkungan jaringan dan akses konkuren.

  • Setelah pengujian selesai, kelola disk baru sebagai berikut:

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

  1. Sambungkan ke Instance ECS.

    Untuk informasi selengkapnya, lihat Sambungkan ke instans Linux menggunakan Workbench.

  2. Jalankan perintah berikut untuk mengambil Nama perangkat dari perangkat Elastic Block Storage Anda.

    sudo fdisk -lu

    截屏2024-12-05 09Gambar di atas menunjukkan bahwa instans memiliki tiga perangkat Elastic Block Storage: sistem disk /dev/vda, serta data disk /dev/vdb dan /dev/vdc.

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

    sudo blkid

    截屏2024-12-05 09Gambar di atas menunjukkan bahwa perangkat Elastic Block Storage /dev/vda dan /dev/vdb memiliki partisi dan sistem file. Output perintah tidak berisi informasi tentang /dev/vdc, yang menunjukkan bahwa perangkat tersebut tidak memiliki partisi atau sistem file.

    Peringatan

    Menjalankan uji stres dengan FIO langsung pada perangkat yang berisi partisi, sistem file, atau data lainnya 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 untuk pengujian. Untuk informasi selengkapnya, lihat Buat data disk kosong.

    2. Setelah pengujian selesai, Anda dapat melepas instans tersebut. Untuk informasi selengkapnya, lihat Lepaskan instans.

  4. Sebelum menguji kinerja perangkat Elastic Block Storage, backup datanya untuk mencegah kehilangan data. Untuk informasi selengkapnya, lihat Buat snapshot.

    Catatan

    Snapshot adalah layanan berbayar. Untuk informasi selengkapnya, lihat Penagihan snapshot.

  5. Jalankan perintah berikut untuk menginstal library libaio dan tool FIO. Pilih perintah yang sesuai dengan sistem operasi Anda.

    Alibaba Cloud Linux 2/3, CentOS 6 dan versi setelahnya

    Catatan

    CentOS 6 telah mencapai akhir masa dukungan (EOL). Sesuai aturan komunitas Linux, semua 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 dari CentOS 6, ubah alamat repositori CentOS 6. Untuk informasi selengkapnya, lihat Bagaimana cara mengubah alamat repositori CentOS 6?

    sudo yum install libaio libaio-devel fio -y

    Debian 9 dan versi setelahnya, Ubuntu 14 dan versi setelahnya

    Penting

    Karena Debian 9 dan Debian 10 telah mencapai akhir masa dukungan (EOL), jika Anda menggunakan Instance ECS yang menjalankan Debian 9 atau Debian 10, Anda harus mengganti alamat sumber terlebih dahulu. Untuk informasi selengkapnya, lihat Ganti alamat sumber sistem operasi setelah masa EOL-nya berakhir.

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

    cd /tmp
  7. Jalankan perintah pengujian kinerja. Untuk informasi selengkapnya, lihat bagian berikut:

  8. Analisis hasil pengujian. Nilainya bervariasi untuk disk yang berbeda. Nilai pada gambar berikut hanya untuk referensi.

  • Untuk hasil IOPS, lihat nilai IOPS=***, seperti yang ditunjukkan pada gambar berikut: 截屏2024-11-19 11

  • Untuk hasil throughput, lihat nilai BW=***, seperti yang ditunjukkan pada gambar berikut: 截屏2024-11-19 11

  • Untuk hasil latency, lihat nilai lat (usec), seperti yang ditunjukkan pada gambar berikut: 截屏2024-11-19 11

Perintah pengujian kinerja disk

Peringatan

Menjalankan uji stres dengan FIO langsung pada perangkat yang berisi partisi, sistem file, atau data lainnya 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 untuk pengujian. Untuk informasi selengkapnya, lihat Buat data disk kosong.

  2. Setelah pengujian selesai:

Nilai parameter dalam contoh perintah berikut hanya untuk referensi. Ganti /dev/your_device dengan nama perangkat Elastic Block Storage yang ingin Anda uji, yang telah Anda ambil pada Langkah 2. Misalnya, jika nama perangkat disk yang akan diuji adalah /dev/vdb, ganti /dev/your_device dengan /dev/vdb dalam contoh perintah. Untuk informasi selengkapnya 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 latency 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 latency 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 informasi selengkapnya tentang cara menguji disk yang berbeda, lihat Uji kinerja IOPS ESSD.

Perintah pengujian kinerja local disk

Peringatan

Menjalankan uji stres dengan FIO langsung pada perangkat yang berisi partisi, sistem file, atau data lainnya dapat 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. Untuk menguji local disk, buat instans baru dengan konfigurasi yang sama. Untuk informasi selengkapnya, lihat Buat instans menggunakan wizard.

  2. Setelah pengujian selesai, lepaskan instans tersebut jika tidak diperlukan lagi. Untuk informasi selengkapnya, lihat Lepaskan instans.

Perintah pengujian berikut berlaku untuk local disk NVMe SSD dan local disk SATA HDD. Nilai parameter dalam contoh perintah berikut hanya untuk referensi. Ganti /dev/your_device dengan nama local disk yang ingin Anda uji, yang telah Anda ambil pada Langkah 2. Misalnya, jika nama perangkat local disk yang akan diuji adalah /dev/vdb, ganti /dev/your_device dengan /dev/vdb dalam contoh perintah. Untuk informasi selengkapnya tentang parameter FIO, lihat Deskripsi parameter FIO.

  • Uji IOPS tulis acak local disk:

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

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

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

    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 latency tulis acak local disk:

    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 latency baca acak local disk:

    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 latency tulis berurutan local disk:

    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 latency baca berurutan local disk:

    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-nya adalah 1.

  • 1: Menggunakan direct I/O. Cache I/O diabaikan dan data ditulis langsung ke disk.

  • 0: Tidak menggunakan direct I/O.

iodepth

Kedalaman antrian I/O untuk pengujian. Misalnya, -iodepth=128 menentukan bahwa jumlah maksimum permintaan I/O dalam antrian 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: baca dan tulis acak campuran

ioengine

Engine I/O yang digunakan FIO untuk pengujian. Kami merekomendasikan Anda memilih libaio karena cocok untuk sebagian besar skenario aplikasi. Untuk informasi selengkapnya tentang opsi lainnya, lihat dokumentasi resmi FIO.

bs

Ukuran blok untuk setiap unit I/O. Nilai default-nya adalah 4 KiB. Anda dapat menentukan nilai terpisah untuk operasi baca dan tulis dalam format read,write. Jika suatu nilai dikosongkan, nilai default akan digunakan.

size

Ukuran file pengujian.

FIO membaca atau menulis ukuran file yang ditentukan lalu menghentikan pengujian, kecuali dibatasi oleh opsi lain seperti runtime. Jika Anda tidak menentukan parameter ini, FIO akan menggunakan ukuran penuh file atau perangkat yang ditentukan. Anda juga dapat menentukan ukuran sebagai persentase dari 1 hingga 100. Misalnya, jika Anda mengatur size ke 20%, FIO akan menggunakan 20% ruang dari file atau perangkat yang ditentukan.

numjobs

Jumlah thread konkuren untuk pengujian. Nilai default-nya adalah 1.

runtime

Durasi pengujian.

Jika Anda tidak menentukan parameter ini, FIO akan terus berjalan hingga selesai membaca atau menulis file dengan ukuran yang ditentukan oleh parameter size dalam blok-blok berukuran yang ditentukan oleh parameter bs.

group_reporting

Mode tampilan untuk hasil pengujian.

Jika Anda menentukan parameter ini, hasilnya akan menampilkan statistik agregat untuk setiap proses, bukan untuk setiap task.

filename

Path objek yang akan diuji. Path tersebut dapat berupa Nama perangkat disk atau path file. Dalam topik ini, pengujian FIO dilakukan pada seluruh disk yang tidak memiliki sistem file (raw disk). Untuk mencegah kerusakan data pada disk lain, path contohnya adalah /dev/your_device. Gantilah dengan path aktual.

name

Nama task pengujian. Anda dapat mengaturnya ke nama apa pun. Misalnya, Rand_Write_Testing.

Untuk informasi selengkapnya tentang parameter-parameter tersebut, lihat halaman manual FIO.