Performa mesin virtual dan disk
Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam
Artikel ini membantu memperjelas performa disk dan cara kerjanya saat Anda menggabungkan Azure Virtual Machines dan disk Azure. Artikel ini juga menjelaskan bagaimana Anda dapat mendiagnosis penyempitan untuk IO disk dan perubahan yang dapat Anda lakukan untuk mengoptimalkan performa.
Bagaimana cara kerja performa disk?
Komputer virtual Azure memiliki batas performa throughput dan operasi per detik (IOPS) berdasarkan jenis dan ukuran komputer virtual. Disk OS dan disk data dapat dilampirkan ke komputer virtual. Disk memiliki batas throughput dan IOPS-nya sendiri.
Performa aplikasi Anda akan tertutup saat meminta lebih banyak IOPS atau throughput daripada apa yang dialokasikan untuk komputer virtual atau disk yang terpasang. Saat dibatasi, aplikasi mengalami performa suboptimal. Hal ini dapat menyebabkan konsekuensi negatif seperti peningkatan latensi. Mari kita jalankan beberapa contoh untuk mengklarifikasi konsep ini. Agar contoh-contoh ini mudah diikuti, kita hanya akan melihat IOPS. Namun, logika yang sama berlaku untuk throughput.
Pembatasan IO Disk
Penyiapan:
- Standard_D8s_v3
- IOPS yang tidak di-cache: 12,800
- Disk OS E30
- IOPS: 500
- Dua disk data E30 × 2
- IOPS: 500
Aplikasi yang berjalan pada komputer virtual membuat permintaan yang membutuhkan 10.000 IOPS ke komputer virtual. Semuanya diizinkan oleh VM karena komputer virtual Standard_D8s_v3 dapat mengeksekusi hingga 12.800 IOPS.
10.000 permintaan IOPS dipecah menjadi tiga permintaan berbeda ke disk yang berbeda:
- 1.000 IOPS diminta ke disk sistem operasi.
- 4.500 IOPS diminta ke setiap disk data.
Semua disk yang terpasang adalah disk E30 dan hanya dapat menangani 500 IOPS. Jadi, disk merespons kembali dengan masing-masing 500 IOPS. Performa aplikasi dibatasi oleh disk yang terpasang dan hanya dapat memproses 1.500 IOPS. Aplikasi ini dapat berfungsi pada performa puncak di 10.000 IOPS jika disk berperforma lebih baik digunakan, seperti disk Premium SSD P30.
Pembatasan IO komputer virtual
Penyiapan:
- Standard_D8s_v3
- IOPS yang tidak di-cache: 12,800
- Disk OS P30
- IOPS: 5.000
- Dua disk data P30 × 2
- IOPS: 5.000
Aplikasi yang berjalan pada komputer virtual membuat permintaan yang membutuhkan 15.000 IOPS. Sayangnya, komputer virtual Standard_D8s_v3 hanya disediakan untuk menangani 12.800 IOPS. Aplikasi ini dibatasi oleh batas komputer virtual dan harus mengalokasikan 12.800 IOPS yang dialokasikan.
12.800 IOPS yang diminta akan dipecah menjadi tiga permintaan berbeda untuk disk yang berbeda:
- 4.267 IOPS diminta ke disk sistem operasi.
- 4.266 IOPS diminta ke setiap disk data.
Semua disk yang terpasang adalah disk P30 yang dapat menangani 5.000 IOPS. Jadi, disk menanggapi kembali dengan jumlah yang mereka minta.
Batas komputer virtual tidak di-cache vs di-cache
Komputer virtual yang diaktifkan untuk penyimpanan premium dan penembolokan penyimpanan premium memiliki dua batas bandwidth penyimpanan yang berbeda. Mari kita lihat komputer virtual Standard_D8s_v3 sebagai contoh. Berikut adalah dokumentasi tentang seri Dsv3 dan Standard_D8s_v3:
- Throughput disk yang tidak di-cache maksimal adalah batas maksimum penyimpanan default yang dapat ditangani oleh komputer virtual.
- Batas throughput penyimpanan cache maksimum adalah batas terpisah saat Anda mengaktifkan penembolokan host.
Penembolokan host bekerja dengan mendekatkan penyimpanan ke VM yang dapat ditulis atau dibaca dengan cepat. Jumlah penyimpanan yang tersedia untuk VM untuk penembolokan host ada dalam dokumentasi. Misalnya, Anda dapat melihat Standard_D8s_v3 dilengkapi dengan penyimpanan cache 200 GiB.
Anda dapat mengaktifkan penembolokan host saat membuat komputer virtual dan memasang disk. Anda juga dapat mengaktifkan dan menonaktifkan penembolokan host pada disk Anda pada VM yang ada. Secara default, disk data berkemampuan cache akan mengaktifkan penembolokan baca-saja. Disk OS berkemampuan cache akan mengaktifkan penembolokan baca/tulis.
Anda dapat menyesuaikan penembolokan host agar sesuai dengan persyaratan beban kerja anda untuk setiap disk. Anda dapat mengatur penembolokan host Anda menjadi:
- Baca-saja: Untuk beban kerja yang hanya melakukan operasi baca
- Baca/tulis: Untuk beban kerja yang melakukan keseimbangan operasi baca dan tulis
Jika beban kerja Anda tidak mengikuti salah satu dari pola berikut, kami tidak menyarankan Anda menggunakan penembolokan host.
Mari kita jalankan beberapa contoh pengaturan cache host yang berbeda untuk melihat pengaruhnya terhadap alur dan kinerja data. Dalam contoh pertama ini, kita akan melihat apa yang terjadi dengan permintaan IO ketika pengaturan penembolokan host diatur ke Baca-saja.
Penyiapan:
- Standard_D8s_v3
- Di-cache IOPS: 16,000
- IOPS yang tidak di-cache: 12,800
- Disk data P30
- IOPS: 5.000
- Penembolokan host: Baca-saja
Saat baca dilakukan dan data yang diinginkan tersedia di cache, cache mengembalikan data yang diminta. Tidak perlu membaca dari disk. Baca ini dihitung berdasarkan batas di-cache VM.
Ketika baca dilakukan dan data yang diinginkan tidak tersedia di cache, permintaan baca akan disampaikan ke disk. Kemudian disk akan menampilkannya ke cache dan VM. Upaya baca ini dihitung berdasarkan kedua batas VM yang belum di-cache dan batas cache VM.
Ketika penulisan dilakukan, tulisan harus ditulis ke kedua cache dan disk sebelum dianggap selesai. Upaya baca ini dihitung berdasarkan batas VM yang belum di-cache dan batas cache VM.
Selanjutnya mari kita lihat apa yang terjadi dengan permintaan IO ketika pengaturan cache host diatur ke Baca/tulis.
Penyiapan:
- Standard_D8s_v3
- Di-cache IOPS: 16,000
- IOPS yang tidak di-cache: 12,800
- Disk data P30
- IOPS: 5.000
- Penembolokan host: Baca/tulis
Baca ditangani dengan cara yang sama seperti baca-saja. Menulis adalah satu-satunya hal yang berbeda dengan penembolokan membaca/menulis. Ketika menulis dengan penembolokan host diatur ke Baca/tulis, tulisan hanya perlu ditulis ke cache host agar dianggap lengkap. Tulisan kemudian ditulis dengan malas ke disk ketika cache disiram secara berkala. Pelanggan juga dapat memaksa flush dengan mengeluarkan perintah f/sync atau fua. Ini berarti bahwa sebuah tulisan dihitung berdasarkan IO yang di-cache ketika ditulis ke cache. Ketika ditulis dengan segan ke disk, upaya itu dihitung berdasarkan IO yang belum di-cache.
Mari kita lanjutkan dengan komputer virtual Standard_D8s_v3 kita. Kecuali kali ini, kita akan mengaktifkan penembolokan host pada disk. Hal ini membuat IOPS VM membatasi 16.000 IOPS. Pada VM, terpasang tiga disk P30 dasar yang masing-masing disk dapat menangani 5.000 IOPS.
Penyiapan:
- Standard_D8s_v3
- Di-cache IOPS: 16,000
- IOPS yang tidak di-cache: 12,800
- Disk OS P30
- IOPS: 5.000
- Penembolokan host: Baca/tulis
- Dua disk data P30 × 2
- IOPS: 5.000
- Penembolokan host: Baca/tulis
Aplikasi ini menggunakan komputer virtual Standard_D8s_v3 dengan penembolokan diaktifkan. Ini membuat permintaan untuk 16.000 IOPS. Permintaan selesai segera setelah dibaca atau ditulis ke cache. Tulisan kemudian ditulis dengan malas ke Disk yang terpasang.
Batasan gabungan yang tidak di-cache dan di-cache
Batas cache komputer virtual terpisah dari batas yang belum di-cache. Ini berarti Anda dapat mengaktifkan penembolokan host pada disk yang terpasang pada VM saat tidak mengaktifkan penembolokan host di disk lain. Konfigurasi ini memungkinkan komputer virtual Anda mendapatkan IO penyimpanan total batas cache ditambah batas yang belum di-cache.
Mari kita jalankan contoh untuk membantu Anda memahami cara batasan ini bekerja sama. Kita akan melanjutkan dengan konfigurasi disk premium yang terpasang dan komputer virtual Standard_D8s_v3.
Penyiapan:
- Standard_D8s_v3
- Di-cache IOPS: 16,000
- IOPS yang tidak di-cache: 12,800
- Disk OS P30
- IOPS: 5.000
- Penembolokan host: Baca/tulis
- Dua disk data P30 × 2
- IOPS: 5.000
- Penembolokan host: Baca/tulis
- Dua disk data P30 × 2
- IOPS: 5.000
- Penembolokan host: Dinonaktifkan
Dalam hal ini, aplikasi yang berjalan pada komputer virtual Standard_D8s_v3 membuat permintaan untuk 25.000 IOPS. Permintaan dipecah menjadi 5.000 IOPS ke masing-masing disk yang terpasang. Tiga disk menggunakan penembolokan host dan dua disk tidak menggunakan penembolokan host.
- Karena tiga disk yang menggunakan penembolokan host berada dalam batas di-cache yaitu 16.000, permintaan tersebut berhasil diselesaikan. Tidak ada pembatasan kinerja penyimpanan yang terjadi.
- Karena dua disk yang tidak menggunakan penembolokan host berada dalam batas tidak ada cache yaitu 12.800, permintaan tersebut juga berhasil diselesaikan. Tidak ada pembatasan yang terjadi.