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 kecepatan transfer data dan diukur dalam MBps. 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 menyatakan waktu yang diperlukan aplikasi Anda untuk mengirim permintaan ke disk dan menerima respons. Latensi membatasi IOPS efektif. Misalnya, jika disk Anda dapat menangani 5.000 IOPS tetapi setiap operasi membutuhkan waktu 10 ms 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.

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.

Pembatasan I/O komputer virtual

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 yang menggambarkan pembatasan I/O komputer virtual.

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 yang menggambarkan pembatasan I/O disk.

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

Penembolokan disk

Cache adalah komponen khusus yang menyimpan data, biasanya dalam memori, sehingga aplikasi dapat mengakses data lebih cepat. Data dalam cache sering kali merupakan 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 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 cache baca akan membantu ketika ada beberapa prediksi untuk antrean baca, seperti satu set bacaan 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 penembolokan tulis digunakan, 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 bergantung pada IOPS dan batas throughput yang ditetapkan 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 maksimal yang di-cache dan sementara: IOPS/MBps (ukuran cache dalam GiB) Maks. throughput disk yang tidak di-cache IOPS/MBps
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 cache IOPS, lebih dari yang dibutuhkan aplikasi.