Membuat tolok ukur disk

Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam

Pembuatan tolok ukur adalah proses simulasi beban kerja yang berbeda pada aplikasi Anda dan mengukur performa aplikasi untuk setiap beban kerja. Dengan menggunakan langkah-langkah yang dijelaskan dalam artikel perancangan untuk performa tinggi, Anda telah mengumpulkan persyaratan performa aplikasi. Dengan menjalankan alat pembuat tolok ukur pada VM yang meng-hosting aplikasi, Anda dapat menentukan tingkat performa yang dapat dicapai aplikasi Anda dengan SSD premium. Dalam artikel ini, kami memberi Anda contoh pembuatan tolok ukur VM Standard_D8ds_v4 yang disediakan dengan SSD premium Azure.

Kami telah menggunakan alat pembuatan tolok ukur umum DiskSpd dan FIO, masing-masing untuk Windows dan Linux. Alat-alat ini menghasilkan beberapa alur yang mensimulasikan produksi seperti beban kerja, dan mengukur performa sistem. Dengan menggunakan alat-alat ini, Anda juga dapat mengonfigurasi parameter seperti ukuran blok dan kedalaman antrean, yang biasanya tidak dapat Anda ubah untuk aplikasi. Ini memberi Anda lebih banyak fleksibilitas untuk mendorong performa maksimum pada VM skala tinggi yang disediakan dengan SSD premium untuk berbagai jenis beban kerja aplikasi. Untuk mempelajari lebih lanjut tentang setiap alat pembuat tolok ukur, kunjungi DiskSpd dan FIO.

Untuk mengikuti contoh di bawah ini, buat Standard_D8ds_v4 dan lampirkan empat SSD premium ke VM. Dari empat disk, konfigurasikan tiga dengan penembolokan/caching host sebagai "None" dan pisahkan ke dalam volume bernama NoCacheWrites. Konfigurasikan caching host sebagai "ReadOnly" pada disk yang tersisa dan buat volume bernama CacheReads dengan disk ini. Dengan menggunakan pengaturan ini, Anda dapat melihat performa Baca dan Tulis maksimum dari VM Standard_D8ds_v4. Untuk langkah-langkah mendetail tentang pembuatan Standard_D8ds_v4 dengan SSD premium, lihat Merancang untuk performa tinggi.

Siapkan Cache

Disk dengan penembolokan host ReadOnly mampu memberikan IOPS lebih tinggi dari batas disk. Untuk mendapatkan performa baca maksimal ini dari cache host, pertama-tama Anda harus menyiapkan cache disk ini. Hal ini memastikan bahwa IO Baca yang akan dijalankan oleh alat tolok ukur pada volume CacheReads, benar-benar mengenai cache, dan bukan disk secara langsung. Hit singgahan menghasilkan lebih banyak IOPS dari disk yang diaktifkan cache tunggal.

Penting

Anda harus menyiapkan cache sebelum menjalankan tolok ukur setiap kali VM di-boot ulang.

DISKSPD

Unduh alat DISKSP di VM. DISKSPD adalah alat yang dapat disesuaikan untuk membuat beban kerja sintetis Anda sendiri. Kami akan menggunakan persiapan yang sama seperti yang dijelaskan di atas untuk menjalankan pengujian tolok ukur. Anda dapat mengubah spesifikasi untuk menguji beban kerja yang berbeda.

Dalam contoh ini, kami menggunakan set parameter garis besar berikut:

  • -c200G: Membuat (atau membuat ulang) file sampel yang digunakan dalam pengujian. Hal ini dapat diatur dalam byte, KiB, MiB, GiB, atau blok. Dalam kasus ini, file besar dengan file target 200-GiB digunakan untuk mengecilkan penembolokan memori.
  • -w100: Menentukan persentase operasi yang merupakan permintaan tulis (-w0 setara dengan 100% baca).
  • -b4K: Menunjukkan ukuran blok dalam byte, KiB, MiB, atau GiB. Dalam kasus ini, ukuran blok 4K digunakan untuk mensimulasikan pengujian I/O acak.
  • -F4: Mengatur total empat alur.
  • -r: Menunjukkan pengujian I/O acak (mengambil alih parameter -s).
  • -o128: Menunjukkan jumlah permintaan I/O yang belum diselesaikan per target per alur. Hal ini juga dikenal sebagai kedalaman antrean. Dalam kasus ini, 128 digunakan untuk menekankan CPU.
  • -W7200: Menentukan durasi waktu pemanasan sebelum pengukuran dimulai.
  • -d30: Menentukan durasi pengujian, tidak termasuk pemanasan.
  • -Sh: Nonaktifkan penembolokan penulisan perangkat lunak dan perangkat keras (setara dengan -Suw).

Untuk daftar lengkap parameter, lihat repositori GitHub.

IOPS tulis maksimum

Kami menggunakan kedalaman antrean tinggi 128, ukuran blok kecil 8 KB, dan empat alur pekerja untuk menjalankan operasi Tulis. Pekerja tulis mengarahkan lalu lintas pada volume “NoCacheWrites”, yang memiliki tiga disk dengan cache yang diatur ke “Tidak Ada”.

Jalankan perintah berikut selama 30 detik untuk pemanasan dan 30 detik pengukuran:

diskspd -c200G -w100 -b8K -F4 -r -o128 -W30 -d30 -Sh testfile.dat

Hasil menunjukkan bahwa VM Standard_D8ds_v4 memberikan batas IOPS tulis maksimum 12.800.

Untuk byte total 3208642560, total I/O maks 391680, dengan total 101,97 MiB/dtk, dan total 13052,65 I/O per detik.

IOPS baca maksimum

Kami menggunakan kedalaman antrean tinggi 128, ukuran blok kecil empat KB, dan empat alur pekerja untuk menjalankan operasi Baca. Pekerja baca mengarahkan lalu lintas pada volume “CacheReads”, yang memiliki satu disk dengan cache yang diatur ke “ReadOnly”.

Jalankan perintah berikut selama dua jam pemanasan dan 30 detik pengukuran:

diskspd -c200G -b4K -F4 -r -o128 -W7200 -d30 -Sh testfile.dat

Hasil menunjukkan bahwa VM Standard_D8ds_v4 memberikan batas IOPS baca maksimum sebesar 77.000.

Untuk byte total 9652785152, ada total 2356637 I/O, pada total 306,72 MiB/dtk, dan total 78521,23 I/O per detik.

Throughput maksimum

Untuk mendapatkan throughput baca dan tulis yang maksimal, Anda dapat mengubah ke ukuran blok yang lebih besar yaitu 64 KB.

FIO

FIO adalah alat populer untuk mengukur penyimpanan pada VM Linux. FIO memiliki fleksibilitas untuk memilih ukuran IO yang berbeda, membaca dan menulis berurutan atau acak. FIO memunculkan alur atau proses pekerja untuk melakukan operasi I/O yang ditentukan. Anda dapat menentukan jenis operasi I/O yang harus dilakukan masing-masing alur pekerja menggunakan file pekerjaan. Kami membuat satu file pekerjaan per skenario yang diilustrasikan dalam contoh di bawah ini. Anda dapat mengubah spesifikasi dalam file pekerjaan ini untuk mengukur beban kerja yang berbeda yang berjalan di Azure Storage Premium. Dalam contoh, kami menggunakan Standard_D8ds_v4 yang menjalankan Ubuntu. Gunakan persiapan yang sama yang dijelaskan di awal bagian tolok ukur dan siapkan cache sebelum menjalankan pengujian tolok ukur.

Sebelum Anda mulai, unduh FIO dan pasang di komputer virtual Anda.

Jalankan perintah berikut untuk Ubuntu,

apt-get install fio

Kami menggunakan empat alur pekerja untuk menjalankan operasi Tulis dan empat alur pekerja untuk menjalankan operasi Baca pada disk. Pekerja tulis mengarahkan lalu lintas pada volume "nocache", yang memiliki tiga disk dengan cache yang diatur ke "Tidak Ada". Pekerja baca mengarahkan lalu lintas pada volume "readcache", yang memiliki satu disk dengan cache yang diatur ke "ReadOnly".

IOPS tulis maksimum

Buat file pekerjaan dengan spesifikasi berikut untuk mendapatkan IOPS Tulis maksimal. Beri nama "fiowrite.ini".

[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4

[writer1]
rw=randwrite
directory=/mnt/nocache

Perhatikan hal-hal penting berikut yang sejalan dengan panduan desain yang dibahas di bagian sebelumnya. Spesifikasi ini penting untuk menjalankan IOPS maksimum,

  • Kedalaman antrean tinggi 256.
  • Ukuran blok kecil 4 KB.
  • Beberapa alur melakukan penulisan acak.

Jalankan perintah berikut untuk memulai pengujian FIO selama 30 detik,

sudo fio --runtime 30 fiowrite.ini

Saat pengujian berjalan, Anda dapat melihat jumlah IOPS tulis yang dikirimkan oleh disk VM dan Premium. Seperti yang ditunjukkan pada sampel di bawah, VM Standard_D8ds_v4 memberikan batas IOPS tulis maksimumnya sebesar 12.800 IOPS.
Jumlah VM IOPS tulis dan SSD premium yang dikirimkan, menunjukkan bahwa penulisan adalah 13,1 ribu IOPS.

IOPS baca maksimum

Buat file pekerjaan dengan spesifikasi berikut untuk mendapatkan IOPS Baca maksimal. Beri nama "fioread.ini".

[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4

[reader1]
rw=randread
directory=/mnt/readcache

Perhatikan hal-hal penting berikut yang sejalan dengan panduan desain yang dibahas di bagian sebelumnya. Spesifikasi ini penting untuk menjalankan IOPS maksimum,

  • Kedalaman antrean tinggi 256.
  • Ukuran blok kecil 4 KB.
  • Beberapa alur melakukan penulisan acak.

Jalankan perintah berikut untuk memulai pengujian FIO selama 30 detik,

sudo fio --runtime 30 fioread.ini

Saat pengujian berjalan, Anda dapat melihat jumlah IOPS baca yang dikirimkan oleh disk VM dan Premium. Seperti yang ditunjukkan pada sampel di bawah, VM Standard_D8ds_v4 memberikan lebih dari 77.000 IOPS Baca. Ini adalah kombinasi dari performa disk dan cache.
Cuplikan layar jumlah VM IOPS tulis dan SSD premium yang dikirimkan, menunjukkan bahwa pembacaan adalah 78.6k.

IOPS baca dan tulis maksimum

Buat file pekerjaan dengan spesifikasi berikut untuk mendapatkan gabungan IOPS Baca dan Tulis yang maksimal. Beri nama "fioreadwrite.ini".

[global]
size=30g
direct=1
iodepth=128
ioengine=libaio
bs=4k
numjobs=4

[reader1]
rw=randread
directory=/mnt/readcache

[writer1]
rw=randwrite
directory=/mnt/nocache
rate_iops=3200

Perhatikan hal-hal penting berikut yang sejalan dengan panduan desain yang dibahas di bagian sebelumnya. Spesifikasi ini penting untuk menjalankan IOPS maksimum,

  • Kedalaman antrean tinggi 128.
  • Ukuran blok kecil 4 KB.
  • Beberapa alur melakukan pembacaan dan penulisan acak.

Jalankan perintah berikut untuk memulai pengujian FIO selama 30 detik,

sudo fio --runtime 30 fioreadwrite.ini

Saat pengujian berjalan, Anda dapat melihat jumlah gabungan IOPS baca dan tulis yang dikirimkan oleh disk VM dan Premium. Seperti yang ditunjukkan pada sampel di bawah, VM Standard_D8ds_v4 memberikan lebih dari 90.000 gabungan IOPS Baca dan Tulis. Ini adalah kombinasi dari performa disk dan cache.
Gabungan IOPS baca dan tulis, menunjukkan bahwa membaca adalah 78,3k dan menulis adalah 12,6k IOPS.

Throughput gabungan maksimum

Untuk mendapatkan Throughput Baca dan Tulis gabungan maksimum, gunakan ukuran blok yang lebih besar dan kedalaman antrean yang besar dengan beberapa alur yang melakukan baca dan tulis. Anda dapat menggunakan ukuran blok 64 KB dan kedalaman antrean 128.

Langkah berikutnya

Lanjutkan ke artikel kami tentang merancang untuk performa tinggi.

Dalam artikel itu, Anda membuat daftar periksa yang mirip dengan aplikasi Anda yang ada untuk prototipe. Dengan menggunakan alat pembuatan tolok ukur, Anda dapat mensimulasikan beban kerja dan mengukur performa pada aplikasi prototipe. Dengan demikian, Anda dapat menentukan penawaran disk mana yang cocok atau melampaui persyaratan performa aplikasi Anda. Kemudian Anda dapat menerapkan pedoman yang sama untuk aplikasi produksi Anda.