Memahami karakteristik performa disk

Selesai

Performa aplikasi sering tergantung seberapa cepat aplikasi dapat membaca dan menulis data. Untuk memahami cara meningkatkan performa aplikasi, Anda harus terlebih dahulu memahami bagaimana performa diukur serta pengaturan dan pilihan yang memengaruhinya.

Karakteristik performa disk

Untuk memilih jenis disk yang tepat, penting bagi Anda untuk memahami indikator performa. Indikator berikut menunjukkan performa:

  • IOPS: IOPS adalah jumlah permintaan yang dikirim aplikasi Anda ke disk dalam satu detik. IOPS secara langsung memengaruhi performa aplikasi Anda. Beberapa aplikasi, seperti situs web ritel, memerlukan IOPS tinggi untuk mengelola semua permintaan masukan/keluaran (I/O) kecil dan acak yang harus diproses dengan cepat agar situs tetap responsif. Disk performa yang lebih tinggi memiliki nilai IOPS yang lebih tinggi.
  • Throughput: Throughput adalah jumlah data yang dikirim aplikasi Anda ke disk dalam interval tertentu. Throughput juga disebut tingkat transfer data dan diukur dalam MB/dtk. Jika aplikasi Anda melakukan I/O dengan blok data yang besar, aplikasi memerlukan throughput tinggi. Disk performa yang lebih tinggi memiliki nilai throughput yang lebih tinggi.
  • Latensi: Latensi mengekspresikan waktu yang dibutuhkan aplikasi Anda untuk mengirim permintaan ke disk dan menerima respons. Latensi membatasi IOPS efektif. Misalnya, (dengan kedalaman antrean 1) jika disk Anda dapat menangani 5.000 IOPS tetapi setiap operasi membutuhkan waktu 10 md untuk diproses, aplikasi Anda akan dibatasi pada 100 operasi per detik karena waktu pemrosesan. Latensi meningkat secara signifikan jika Anda mengaktifkan penembolokan host ReadOnly.

IOPS vs. throughput

Throughput dan IOPS memiliki hubungan langsung. Mengubah salah satunya dapat secara langsung mempengaruhi yang lain. Untuk mendapatkan batas teoritis throughput, Anda dapat menggunakan rumus berikut: IOPS × I/O size = throughput. Penting untuk mempertimbangkan kedua nilai ini saat merencanakan aplikasi Anda.

Untuk disk Ultra dan disk terkelola Premium SSD v2, disk ini bekerja sedikit berbeda karena Anda dapat secara independen menyesuaikan ukuran disk, IOPS, dan throughput. Penyesuaian IOPS atau throughput untuk disk Ultra dan disk terkelola Premium SSD v2 dapat dilakukan saat runtime, tanpa melepaskan disk dari VM.

Disk ultra IOPS

Disk ultra mendukung batas IOPS 300 IOPS/GiB, hingga maksimum 160.000 IOPS per disk. Untuk mencapai IOPS target untuk disk, pastikan bahwa IOPS disk yang dipilih kurang dari batas VM IOPS.

Batas maksimum saat ini untuk IOPS untuk satu VM dalam ukuran yang tersedia secara umum adalah 160.000. Disk ultra dengan IOPS yang lebih besar dapat digunakan sebagai disk bersama untuk mendukung banyak VM.

IOPS minimum yang dijamin per disk adalah 1 IOPS/GiB, dengan garis besar keseluruhan minimum 100 IOPS. Misalnya, jika Anda memprovisikan disk ultra 4 GiB, IOPS minimum untuk disk tersebut adalah 100, bukan empat.

Throughput disk ultra

Batas throughput dari satu disk ultra adalah 256-KiB/dtk untuk setiap IOPS yang disediakan, hingga maksimum 4000 MB/dtk per disk (di mana MB/dtk = 10^6 Byte per detik). Throughput minimum yang dijamin per disk adalah 4KiB/dtk untuk setiap IOPS yang disediakan, dengan minimum garis besar keseluruhan 1 MB/dtk.

IOPS SSD v2 Premium

Semua disk SSD v2 Premium memiliki IOPS dasar 3000 gratis. Setelah 6 GiB, IOPS maksimum yang dapat ditingkatkan disk dengan kecepatan 500 per GiB, hingga 80.000 IOPS. Jadi disk 8 GiB dapat memiliki hingga 4.000 IOPS, dan 10 GiB dapat memiliki hingga 5.000 IOPS. Agar dapat mengatur 80.000 IOPS pada disk, disk tersebut harus memiliki setidaknya 160 GiB. Meningkatkan IOPS Anda melebihi 3000 akan meningkatkan harga disk Anda.

Throughput SSD v2 Premium

Semua disk SSD v2 Premium memiliki throughput dasar 125 MB/dtk, yang gratis. Setelah 6 GiB, throughput maksimum yang dapat ditetapkan meningkat sebesar 0,25 MB/dtk per IOPS yang ditetapkan. Jika disk memiliki 3.000 IOPS, throughput maksimum yang dapat ditetapkan adalah 750 MB/dtk. Guna meningkatkan throughput untuk disk ini lebih dari 750 MB/dtk, IOPS-nya harus ditingkatkan. Misalnya, jika Anda meningkatkan IOPS menjadi 4.000, maka throughput maks yang dapat ditetapkan adalah 1.000. 1.200 MB/dtk adalah throughput maksimum yang didukung untuk disk yang memiliki 5.000 IOPS atau lebih. Meningkatkan throughput Anda melebihi 125 MB/dtk meningkatkan harga disk Anda.

Pembatasan I/O komputer virtual

Sekarang setelah Anda mengetahui disk mana yang tersedia di Azure, Anda harus mencocokkan setiap VM Anda dengan jenis disk yang benar. VM memiliki batas IOPS penyimpanannya sendiri, yang dapat memengaruhi performa aplikasi secara keseluruhan jika digabungkan dengan IOPS disk.

Jika Anda tidak mengukur VM dengan benar untuk performa penyimpanan yang diperlukan aplikasi, VM itu sendiri menjadi penyempitan.

Misalnya, aplikasi Anda membuat permintaan yang memerlukan 15.000 IOPS. Anda sudah memprovisikan VM Standard_D8s_v3, dengan satu disk OS P30 dan dua disk data SSD Premium dengan SKU P40. Setiap disk data dapat menangani 7.500 IOPS dan pada akhirnya dapat memenuhi permintaan aplikasi, tetapi VM itu sendiri memiliki batas maksimum 12.800 IOPS, yang merupakan IOPS aktual yang akan diperoleh aplikasi. Gambar berikut mengilustrasikan contoh ini.

Diagram that depicts virtual machine input output capping.

Skenario yang diilustrasikan dalam contoh sebelumnya dikenal sebagai pembatasan I/O VM. Dalam skenario ini, aplikasi meminta jumlah throughput dan IOPS yang dapat dikelola oleh disk, tetapi VM tidak dapat mengakomodasi persyaratan ini.

Anda dapat mendiagnosis masalah performa yang disebabkan oleh pembatasan I/O VM menggunakan metrik berikut:

  • Persentase penggunaan IOPS yang di-cache VM
  • Persentase penggunaan bandwidth yang di-cache VM
  • Persentase penggunaan IOPS yang tidak di-cache VM
  • Persentase penggunaan bandwidth yang tidak di-cache VM

Pembatasan I/O Disk

Anda mungkin menemui kondisi lain di mana solusi penyimpanan tidak memenuhi permintaan aplikasi. Namun, penyempitan mungkin disebabkan jika Anda memilih tingkat performa yang salah untuk disk.

Pertimbangkan contoh yang sama di mana aplikasi membutuhkan 15.000 IOPS dari VM, dan Anda telah memilih penyiapan berikut:

  • D16s_v4 standar dengan 25.600 IOPS
  • Disk P20 OS dengan 2.300 IOPS
  • Dua disk data P30, masing-masing dengan dukungan 5.000 IOPS

Dalam skenario ini, permintaan aplikasi akan dibagi menjadi tiga permintaan berbeda:

  • 2.300 IOPS diminta dari disk OS
  • 5.000 IOPS diminta dari setiap disk data

Total IOPS yang akan dikembalikan VM ke aplikasi adalah 12.300 sebagai jumlah dari setiap IOPS yang disediakan oleh OS dan disk data.

Skenario ini dikenal sebagai pembatasan I/O disk, ketika disk itu sendiri tidak dapat memenuhi permintaan aplikasi.

Diagram that depicts disk input output capping.

Untuk mendiagnosis pembatasan I/O disk, gunakan metrik berikut:

  • Persentase penggunaan IOPS disk data
  • Persentase penggunaan bandwidth disk data
  • Persentase penggunaan IOPS disk OS
  • Persentase penggunaan bandwidth disk OS

Cache disk

Cache adalah komponen khusus yang menyimpan data, biasanya dalam memori, sehingga aplikasi dapat mengakses data lebih cepat. Data dalam cache sering kali adalah data yang telah dibaca sebelumnya atau data yang dihasilkan dari perhitungan sebelumnya. Tujuannya agar aplikasi mengakses data lebih cepat dari cache daripada dari disk. Penembolokan disk tidak tersedia di Ultra Disk dan Premium SSD v2.

Penembolokan menggunakan penyimpanan sementara khusus, dan terkadang mahal, yang memiliki performa baca dan tulis yang lebih cepat dibandingkan dengan penyimpanan permanen. Karena penyimpanan cache sering kali terbatas, Anda mungkin perlu memutuskan operasi data mana yang paling diuntungkan dari penembolokan. Tetapi bahkan ketika cache dapat dibuat tersedia secara luas, seperti di Azure, Anda masih harus mengetahui pola beban kerja setiap disk sebelum Anda memutuskan jenis penembolokan yang akan digunakan.

Cache baca mencoba mempercepat pengambilan data. Sebagai ganti membaca dari penyimpanan permanen, aplikasi membaca data dari cache yang lebih cepat.

Penting untuk dicatat bahwa penembolokan baca membantu ketika ada beberapa prediksi untuk antrean baca, seperti sekumpulan baca berurutan. Untuk I/O acak, di mana data yang Anda akses tersebar di seluruh penyimpanan, penembolokan akan menjadi sedikit atau tidak bermanfaat dan bahkan dapat mengurangi performa disk.

Cache tulis mencoba mempercepat penulisan data ke penyimpanan persisten. Menggunakan cache tulis, aplikasi dapat mempertimbangkan data yang harus disimpan.

Pada kenyataannya, ketika Anda menggunakan penembolokan tulis, data diantrekan dalam cache, menunggu untuk ditulis ke disk. Seperti yang dapat Anda bayangkan, mekanisme ini dapat menjadi titik potensial kegagalan, seperti ketika sistem mati sebelum data cache ditulis. Beberapa sistem, seperti SQL Server, mengelola tugas menulis data cache ke penyimpanan disk persisten sendiri.

Batas VM yang di-cache dan tidak di-cache

Kini setelah Anda memahami bagaimana penembolokan dapat meningkatkan performa untuk membaca atau menulis data pada disk, Anda harus mengetahui bagaimana penembolokan memengaruhi performa VM.

Performa VM tergantung pada batas IOPS dan throughput yang diberlakukan berdasarkan ukuran VM. Semua VM di tingkat Premium memiliki batas yang berbeda untuk IOPS dan throughput berdasarkan konfigurasi yang di-cache dan tidak di-cache. Anda dapat meningkatkan performa VM untuk memenuhi permintaan IOPS dan throughput yang lebih tinggi dengan mengaktifkan penembolokan host VM.

Tabel berikut mencantumkan contoh yang menggambarkan perbedaan performa untuk throughput dan bandwidth disk yang di-cache dan tidak di-cache.

Nama ukuran VM Throughput penyimpanan maksimum yang di-cache dan sementara: IOPS/MB/dtk (ukuran cache dalam GiB) IOPS/MB/dtk throughput disk maks yang tidak di-cache
Standard_D2s_v3 4.000/32 (50) 3.200/48
Standard_D4s_v3 8.000/64 (100) 6.400/96
Standard_D8s_v3 16.000/128 (200) 12.800/192
Standard_D64s_v3 128.000/1.024 (1.600) 80.000/1.200

Penembolokan host dapat membantu Anda menghindari skenario penyempitan VM.

Dalam contoh pembatasan I/O VM sebelumnya, aplikasi memerlukan 15.000 IOPS. Kedua disk data dapat menangani permintaan itu, tetapi VM Standard_D8s_v3 hanya dapat menawarkan 12.800 IOPS dalam keadaan tidak di-cache.

Jika Anda mengonfigurasi penembolokan host pada VM Standard_D8s_v3, Anda bisa mendapatkan 16.000 IOPS cache, yang lebih dari permintaan aplikasi.