Penyimpanan premium Azure: Desain untuk performa tinggi

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

Artikel ini menyediakan panduan untuk membangun aplikasi berkinerja tinggi dengan menggunakan penyimpanan premium Azure. Anda dapat menggunakan instruksi yang diberikan dalam dokumen ini yang dikombinasikan dengan praktik terbaik performa yang berlaku untuk teknologi yang digunakan oleh aplikasi Anda. Untuk mengilustrasikan panduan, kami menggunakan SQL Server yang berjalan pada penyimpanan premium sebagai contoh di seluruh dokumen ini.

Meskipun kami mengatasi skenario performa untuk lapisan penyimpanan dalam artikel ini, Anda perlu mengoptimalkan lapisan aplikasi. Misalnya, jika Anda menghosting SharePoint Farm pada penyimpanan premium, Anda bisa menggunakan contoh SQL Server dari artikel ini untuk mengoptimalkan server database. Anda juga dapat mengoptimalkan server web dan server aplikasi SharePoint Farm untuk mendapatkan performa maksimal.

Artikel ini membantu menjawab pertanyaan umum berikut tentang mengoptimalkan performa aplikasi pada penyimpanan premium:

  • Bagaimana Anda dapat mengukur performa aplikasi Anda?
  • Mengapa Anda tidak melihat performa tinggi yang diharapkan?
  • Faktor mana yang memengaruhi performa aplikasi Anda pada penyimpanan premium?
  • Bagaimana faktor-faktor ini memengaruhi performa aplikasi Anda pada penyimpanan premium?
  • Bagaimana Anda dapat mengoptimalkan operasi input/output per detik (IOPS), bandwidth, dan latensi?

Kami memberikan panduan ini khusus untuk penyimpanan premium karena beban kerja yang berjalan pada penyimpanan premium sangat sensitif terhadap performa. Kami memberikan contoh jika sesuai. Anda juga dapat menerapkan beberapa pedoman ini untuk aplikasi yang berjalan pada VM infrastruktur sebagai layanan (IaaS) dengan disk penyimpanan standar.

Catatan

Terkadang apa yang tampaknya menjadi masalah performa disk sebenarnya adalah hambatan jaringan. Dalam situasi ini, Anda harus mengoptimalkan performa jaringan.

Jika Anda ingin membuat tolok ukur disk Anda, lihat artikel berikut ini:

Jika VM Anda mendukung jaringan yang dipercepat, pastikan VM diaktifkan. Jika tidak diaktifkan, Anda dapat mengaktifkannya pada VM yang sudah disebarkan di Windows dan Linux.

Sebelum memulai, jika Anda baru menggunakan penyimpanan premium, baca Terlebih dahulu Pilih jenis disk Azure untuk VM IaaS dan Target skalabilitas untuk akun penyimpanan blob halaman premium.

Indikator performa aplikasi

Kami menilai apakah aplikasi berkinerja baik atau tidak dengan menggunakan indikator performa seperti:

  • Seberapa cepat aplikasi memproses permintaan pengguna.
  • Berapa banyak data yang diproses aplikasi per permintaan.
  • Berapa banyak permintaan yang diproses aplikasi dalam periode waktu tertentu.
  • Berapa lama pengguna harus menunggu untuk mendapatkan respons setelah mengirimkan permintaan mereka.

Istilah teknis untuk indikator performa ini adalah IOPS, throughput atau bandwidth, dan latensi.

Di bagian ini, kita membahas indikator performa umum dalam konteks penyimpanan premium. Di bagian Daftar periksa aplikasi performa untuk disk, Anda mempelajari cara mengukur indikator performa ini untuk aplikasi Anda. Nanti di Optimalkan performa aplikasi, Anda mempelajari tentang faktor-faktor yang memengaruhi indikator performa dan rekomendasi ini untuk mengoptimalkannya.

IOPS

IOPS adalah jumlah permintaan yang dikirim aplikasi Anda ke disk penyimpanan dalam satu detik. Operasi I/O dapat dibaca atau ditulis, berurutan, atau acak. Aplikasi pemrosesan transaksi online (OLTP) seperti situs web ritel online perlu segera memproses banyak permintaan pengguna bersamaan. Permintaan pengguna adalah transaksi database insert-and-intensive, yang harus diproses aplikasi dengan cepat. Untuk alasan ini, aplikasi OLTP memerlukan IOPS yang sangat tinggi.

Aplikasi OLTP menangani jutaan permintaan I/O kecil dan acak. Jika Anda memiliki aplikasi seperti itu, Anda harus merancang infrastruktur aplikasi untuk mengoptimalkan IOPS. Untuk informasi selengkapnya tentang semua faktor yang perlu dipertimbangkan untuk mendapatkan IOPS tinggi, lihat Mengoptimalkan performa aplikasi.

Saat Anda melampirkan disk penyimpanan premium ke VM skala tinggi Anda, Azure menyediakan untuk Anda jumlah IOPS yang dijamin sesuai dengan spesifikasi disk. Misalnya, disk P50 menyediakan 7.500 IOPS. Setiap ukuran VM skala tinggi juga memiliki batas IOPS tertentu yang dapat dipertahankan. Misalnya, komputer virtual Standard GS5 memiliki batas 80.000 IOPS.

Throughput

Throughput, atau bandwidth, adalah jumlah data yang dikirim aplikasi Anda ke disk penyimpanan dalam interval tertentu. Jika aplikasi Anda melakukan operasi input/output dengan ukuran unit I/O besar, aplikasi memerlukan throughput tinggi. Aplikasi gudang data cenderung mengeluarkan operasi intensif pemindaian yang mengakses sebagian besar data pada satu waktu dan biasanya melakukan operasi massal. Dengan kata lain, aplikasi tersebut memerlukan throughput yang lebih tinggi. Jika Anda memiliki aplikasi seperti itu, Anda harus merancang infrastruktur aplikasi untuk mengoptimalkan throughput. Di bagian berikutnya, kita membahas faktor-faktor yang harus Anda sesuaikan untuk mencapai pengoptimalan ini.

Saat Anda melampirkan disk penyimpanan premium ke VM skala tinggi, Azure menyediakan throughput sesuai dengan spesifikasi disk tersebut. Misalnya, disk P50 menyediakan throughput disk 250 MB/detik. Setiap ukuran VM skala tinggi juga memiliki batas throughput tertentu yang dapat dipertahankan. Misalnya, VM GS5 Standar memiliki throughput maksimum 2.000 MB/detik.

Ada hubungan antara throughput dan IOPS, seperti yang diperlihatkan dalam rumus berikut.

Diagram that shows the relation of IOPS and throughput.

Penting untuk menentukan nilai throughput dan IOPS optimal yang diperlukan aplikasi Anda. Saat Anda mencoba mengoptimalkannya, yang lain juga terpengaruh. Untuk informasi selengkapnya tentang mengoptimalkan IOPS dan throughput, lihat Mengoptimalkan performa aplikasi.

Latensi

Latensi adalah waktu yang dibutuhkan aplikasi untuk menerima satu permintaan, mengirimkannya ke disk penyimpanan, dan mengirim respons ke klien. Latensi adalah ukuran penting dari performa aplikasi selain IOPS dan throughput. Latensi disk penyimpanan premium adalah waktu yang diperlukan untuk mengambil informasi untuk permintaan dan mengkomunikasikannya kembali ke aplikasi Anda. Penyimpanan premium menyediakan latensi rendah secara konsisten. Disk premium dirancang untuk menyediakan latensi milidetik satu digit untuk sebagian besar operasi I/O. Jika Anda mengaktifkan penembolokan host ReadOnly pada disk penyimpanan premium, Anda bisa mendapatkan latensi baca yang jauh lebih rendah. Untuk informasi selengkapnya tentang penembolokan disk, lihat Penembolokan disk.

Saat Anda mengoptimalkan aplikasi untuk mendapatkan IOPS dan throughput yang lebih tinggi, aplikasi akan memengaruhi latensi aplikasi Anda. Setelah Anda menyetel performa aplikasi, selalu evaluasi latensi aplikasi untuk menghindari perilaku latensi tinggi yang tidak terduga.

Operasi sarana kontrol berikut pada disk terkelola mungkin melibatkan pergerakan disk dari satu lokasi penyimpanan ke lokasi penyimpanan lainnya. Gerakan ini diorkestrasi melalui salinan latar belakang data, yang dapat memakan waktu beberapa jam untuk diselesaikan. Biasanya, waktu kurang dari 24 jam tergantung pada jumlah data dalam disk. Selama waktu itu, aplikasi Anda dapat mengalami latensi baca yang lebih tinggi dari biasanya karena beberapa bacaan dapat dialihkan ke lokasi asli dan membutuhkan waktu lebih lama untuk diselesaikan.

Tidak ada efek pada latensi tulis selama periode ini. Untuk SSD Premium v2 dan Ultra Disk, jika disk memiliki ukuran sektor 4K, disk mengalami latensi baca yang lebih tinggi. Jika disk memiliki ukuran sektor 512e, disk mengalami latensi baca dan tulis yang lebih tinggi.

Operasi sarana kontrol digunakan untuk:

  • Perbarui jenis penyimpanan.
  • Copot dan pasang disk dari satu VM ke VM lainnya.
  • Buat disk terkelola dari VHD.
  • Buat disk terkelola dari rekam jepret.
  • Konversikan disk yang tidak dikelola ke disk yang dikelola.

Daftar periksa aplikasi performa untuk disk

Langkah pertama dalam merancang aplikasi berkinerja tinggi yang berjalan pada penyimpanan premium adalah memahami persyaratan performa aplikasi Anda. Setelah mengumpulkan persyaratan performa, Anda dapat mengoptimalkan aplikasi untuk mencapai performa yang paling optimal.

Di bagian sebelumnya, kami menjelaskan indikator performa umum: IOPS, throughput, dan latensi. Anda harus mengidentifikasi indikator performa mana yang penting bagi aplikasi Anda untuk memberikan pengalaman pengguna yang diinginkan. Misalnya, IOPS tinggi paling penting bagi aplikasi OLTP yang memproses jutaan transaksi dalam satu detik. Throughput tinggi sangat penting untuk aplikasi gudang data yang memproses data dalam jumlah besar dalam hitungan detik. Latensi yang sangat rendah sangat penting untuk aplikasi real time seperti situs web streaming video langsung.

Selanjutnya, ukur persyaratan performa maksimum aplikasi Anda sepanjang masa pakainya. Gunakan daftar periksa sampel berikut sebagai awal. Catat persyaratan performa maksimum selama periode beban kerja normal, puncak, dan di luar jam kerja. Dengan mengidentifikasi persyaratan untuk semua tingkat beban kerja, Anda dapat menentukan persyaratan performa keseluruhan aplikasi Anda.

Misalnya, beban kerja normal situs web e-niaga adalah transaksi yang dilayaninya selama sebagian besar hari dalam setahun. Beban kerja puncak situs web adalah transaksi yang dilayaninya selama musim liburan atau acara penjualan khusus. Beban kerja puncak biasanya dialami untuk periode terbatas tetapi dapat mengharuskan aplikasi Anda untuk menskalakan dua kali atau lebih operasi normalnya. Cari tahu persyaratan 50 persentil, 90 persentil, dan 99 persentil. Informasi ini membantu memfilter outlier apa pun dalam persyaratan performa, dan Anda dapat memfokuskan upaya Anda untuk mengoptimalkan nilai yang tepat.

Daftar periksa persyaratan performa aplikasi

Persyaratan performa 50 persentil 90 persentil 99 persentil
Transaksi maksimum per detik
% Operasi baca
% Operasi tulis
% Operasi acak
% Operasi berurutan
Ukuran permintaan I/O
Throughput rata-rata
Throughput maksimum
Latensi minimum
Latensi rata-rata
CPU maksimum
CPU Rata-rata
Memori maksimum
Memori rata-rata
Kedalaman antrean

Catatan

Pertimbangkan untuk menskalakan angka-angka ini berdasarkan pertumbuhan aplikasi Anda di masa mendatang yang diharapkan. Ada baiknya merencanakan pertumbuhan sebelumnya karena mungkin lebih sulit untuk mengubah infrastruktur untuk meningkatkan performa nanti.

Jika Anda memiliki aplikasi yang sudah ada dan ingin pindah ke penyimpanan premium, pertama-tama buat daftar periksa sebelumnya untuk aplikasi yang ada. Kemudian, buat prototipe aplikasi Anda pada penyimpanan premium dan desain aplikasi berdasarkan pedoman yang dijelaskan dalam Mengoptimalkan performa aplikasi. Artikel berikutnya menjelaskan alat yang dapat Anda gunakan untuk mengumpulkan pengukuran performa.

Penghitung untuk mengukur persyaratan performa aplikasi

Cara terbaik untuk mengukur persyaratan performa aplikasi Anda adalah dengan menggunakan PerfMon-alat pemantauan yang disediakan oleh sistem operasi server. Anda dapat menggunakan PerfMon untuk Windows dan iostat untuk Linux. Alat-alat ini menangkap penghitung yang sesuai dengan setiap ukuran yang dijelaskan di bagian sebelumnya. Anda harus menangkap nilai penghitung ini saat aplikasi Anda menjalankan beban kerja normal, puncak, dan di luar jam kerja.

Penghitung PerfMon tersedia untuk prosesor, memori, dan setiap disk logis dan disk fisik server Anda. Saat Anda menggunakan disk penyimpanan premium dengan VM, penghitung disk fisik adalah untuk setiap disk penyimpanan premium, dan penghitung disk logis untuk setiap volume yang dibuat pada disk penyimpanan premium. Anda harus mengambil nilai untuk disk yang menghosting beban kerja aplikasi Anda. Jika ada pemetaan satu-ke-satu antara disk logis dan fisik, Anda dapat merujuk ke penghitung disk fisik. Jika tidak, lihat penghitung disk logis.

Di Linux, iostat perintah menghasilkan laporan pemanfaatan CPU dan disk. Laporan pemanfaatan disk menyediakan statistik per perangkat fisik atau partisi. Jika Anda memiliki server database dengan data dan log pada disk terpisah, kumpulkan data ini untuk kedua disk. Tabel berikut menjelaskan penghitung untuk disk, prosesor, dan memori.

Penghitung Deskripsi PerfMon Iostat
IOPS atau transaksi/detik Jumlah permintaan I/O yang dikeluarkan untuk disk penyimpanan/detik Pembacaan disk/detik
Penulisan disk/detik
Tps
r/s
w/s
Disk membaca dan menulis % dari operasi baca dan tulis yang dilakukan pada disk % Waktu baca disk
% Waktu penulisan disk
r/s
w/s
Throughput Jumlah data yang dibaca dari atau ditulis ke disk/detik Byte baca disk/detik
Byte tulis disk/detik
kB_read/dtk
kB_wrtn/s
Latensi Total waktu untuk menyelesaikan permintaan I/O disk Disk rata-rata detik/baca
Disk rata-rata detik/tulis
Menunggu
svctm
Ukuran I/O Ukuran masalah permintaan I/O ke disk penyimpanan Byte/baca disk rata-rata
Byte/tulis disk rata-rata
avgrq-sz
Kedalaman antrean Jumlah permintaan I/O terutang yang menunggu untuk dibaca dari atau ditulis ke disk penyimpanan Panjang antrean disk saat ini avgqu-sz
Memori maksimum Jumlah memori yang diperlukan untuk menjalankan aplikasi dengan lancar % Byte yang diterapkan sedang digunakan Menggunakan vmstat
CPU maksimum Jumlah CPU yang diperlukan untuk menjalankan aplikasi dengan lancar % Waktu prosesor %util

Pelajari selengkapnya tentang iostat dan PerfMon.

Mengoptimalkan performa aplikasi

Faktor utama yang memengaruhi performa aplikasi yang berjalan pada penyimpanan premium adalah sifat permintaan I/O, ukuran VM, ukuran disk, jumlah disk, penembolokan disk, multithreading, dan kedalaman antrean. Anda dapat mengontrol beberapa faktor ini dengan kenop yang disediakan oleh sistem.

Sebagian besar aplikasi mungkin tidak memberi Anda opsi untuk mengubah ukuran I/O dan kedalaman antrean secara langsung. Misalnya, jika Anda menggunakan SQL Server, Anda tidak dapat memilih ukuran I/O dan kedalaman antrean. SQL Server memilih ukuran I/O yang optimal dan nilai kedalaman antrean untuk mendapatkan performa maksimal. Penting untuk memahami efek dari kedua jenis faktor pada performa aplikasi Anda sehingga Anda dapat menyediakan sumber daya yang sesuai untuk memenuhi kebutuhan performa.

Di seluruh bagian ini, lihat daftar periksa persyaratan aplikasi yang Anda buat untuk mengidentifikasi berapa banyak yang Anda butuhkan untuk mengoptimalkan performa aplikasi Anda. Berdasarkan daftar periksa, Anda dapat menentukan faktor mana dari bagian ini yang perlu Anda sesuaikan.

Untuk menyaksikan efek setiap faktor pada performa aplikasi Anda, jalankan alat pembuat tolok ukur pada penyiapan aplikasi Anda. Untuk langkah-langkah menjalankan alat tolok ukur umum di VM Windows dan Linux, lihat artikel tolok ukur di akhir dokumen ini.

Mengoptimalkan IOPS, throughput, dan latensi secara sekilas

Tabel berikut ini meringkas faktor performa dan langkah-langkah yang diperlukan untuk mengoptimalkan IOPS, throughput, dan latensi. Bagian yang mengikuti ringkasan ini menjelaskan setiap faktor secara lebih mendalam.

Untuk informasi selengkapnya tentang ukuran VM dan IOPS, throughput, dan latensi yang tersedia untuk setiap jenis VM, lihat Ukuran untuk komputer virtual di Azure.

Faktor performa IOPS Throughput Latensi
Contoh skenario Aplikasi OLTP perusahaan membutuhkan tingkat transaksi per detik yang sangat tinggi. Aplikasi pergudangan Data Perusahaan yang memproses data dalam jumlah besar. Aplikasi mendekati real-time yang memerlukan respons instan terhadap permintaan pengguna, seperti game online.
Faktor performa      
Ukuran I/O Ukuran I/O yang lebih kecil menghasilkan IOPS yang lebih tinggi. Ukuran I/O yang lebih besar menghasilkan throughput yang lebih tinggi.  
Ukuran komputer virtual Gunakan ukuran VM yang menawarkan IOPS lebih besar dari persyaratan aplikasi Anda. Gunakan ukuran VM dengan batas throughput yang lebih besar dari persyaratan aplikasi Anda. Gunakan ukuran VM yang menawarkan batas skala lebih besar dari persyaratan aplikasi Anda.
Ukuran Disk Gunakan ukuran disk yang menawarkan IOPS lebih besar dari persyaratan aplikasi Anda. Gunakan ukuran disk dengan batas throughput yang lebih besar dari persyaratan aplikasi Anda. Gunakan ukuran disk yang menawarkan batas skala lebih besar dari persyaratan aplikasi Anda.
Batas skala VM dan disk Batas IOPS dari ukuran VM yang dipilih harus lebih besar dari total IOPS yang didorong oleh disk penyimpanan yang melekat padanya. Batas throughput dari ukuran VM yang dipilih harus lebih besar dari total throughput yang didorong oleh disk penyimpanan premium yang melekat padanya. Batas skala ukuran VM yang dipilih harus lebih besar dari batas skala total disk penyimpanan premium yang terpasang.
Cache disk Aktifkan cache ReadOnly pada disk penyimpanan premium dengan operasi baca-berat untuk mendapatkan IOPS baca yang lebih tinggi.   Aktifkan cache ReadOnly pada disk penyimpanan premium dengan operasi baca-berat untuk mendapatkan latensi baca yang sangat rendah.
Penghapusan Disk Gunakan beberapa disk dan stripe bersama-sama untuk mendapatkan gabungan IOPS dan batas throughput yang lebih tinggi. Batas gabungan per VM harus lebih tinggi dari batas gabungan disk premium yang terpasang.    
Ukuran garis Ukuran garis yang lebih kecil untuk pola I/O kecil acak yang terlihat dalam aplikasi OLTP. Misalnya, gunakan ukuran stripe 64 KB untuk aplikasi SQL Server OLTP. Ukuran garis yang lebih besar untuk pola I/O besar berurutan yang terlihat di aplikasi gudang data. Misalnya, gunakan ukuran stripe 256-KB untuk aplikasi gudang data SQL Server.  
Multithreading Gunakan multithreading untuk mendorong jumlah permintaan yang lebih tinggi ke penyimpanan premium untuk mengarah ke IOPS dan throughput yang lebih tinggi. Misalnya, di SQL Server, tetapkan nilai MAXDOP tinggi untuk mengalokasikan lebih banyak CPU ke SQL Server.    
Kedalaman antrean Kedalaman antrean yang lebih besar menghasilkan IOPS yang lebih tinggi. Kedalaman antrean yang lebih besar menghasilkan throughput yang lebih tinggi. Kedalaman antrean yang lebih kecil menghasilkan latensi yang lebih rendah.

Sifat permintaan I/O

Permintaan I/O adalah unit operasi input/output yang dilakukan aplikasi Anda. Mengidentifikasi sifat permintaan I/O, acak atau berurutan, baca atau tulis, kecil atau besar, membantu Anda menentukan persyaratan performa aplikasi Anda. Penting untuk memahami sifat permintaan I/O untuk membuat keputusan yang tepat saat Anda merancang infrastruktur aplikasi Anda. I/Os harus didistribusikan secara merata untuk mencapai performa terbaik.

Ukuran I/O adalah salah satu faktor yang lebih penting. Ukuran I/O adalah ukuran permintaan operasi input/output yang dihasilkan oleh aplikasi Anda. Ukuran I/O memengaruhi performa secara signifikan, terutama pada IOPS dan bandwidth yang dapat dicapai aplikasi. Rumus berikut menunjukkan hubungan antara IOPS, ukuran I/O, dan bandwidth/throughput.

A diagram that shows the equation I O P S times I O size equals throughput.

Beberapa aplikasi memungkinkan Anda mengubah ukuran I/O mereka, sementara beberapa aplikasi tidak. Misalnya, SQL Server menentukan ukuran I/O yang optimal itu sendiri dan tidak memberi pengguna kenop apa pun untuk mengubahnya. Di sisi lain, Oracle menyediakan parameter yang disebut DB_BLOCK_SIZE, yang dapat Anda gunakan untuk mengonfigurasi ukuran permintaan I/O database.

Jika Anda menggunakan aplikasi, yang tidak memungkinkan Anda mengubah ukuran I/O, gunakan panduan dalam artikel ini untuk mengoptimalkan KPI performa yang paling relevan dengan aplikasi Anda. Contohnya:

  • Aplikasi OLTP menghasilkan jutaan permintaan I/O kecil dan acak. Untuk menangani jenis permintaan I/O ini, Anda harus merancang infrastruktur aplikasi Anda untuk mendapatkan IOPS yang lebih tinggi.
  • Aplikasi pergudangan data menghasilkan permintaan I/O besar dan berurutan. Untuk menangani jenis permintaan I/O ini, Anda harus merancang infrastruktur aplikasi Anda untuk mendapatkan bandwidth atau throughput yang lebih tinggi.

Jika Anda menggunakan aplikasi yang memungkinkan Anda mengubah ukuran I/O, gunakan aturan praktis ini untuk ukuran I/O selain pedoman performa lainnya:

  • Ukuran I/O yang lebih kecil untuk mendapatkan IOPS yang lebih tinggi. Misalnya, 8 KB untuk aplikasi OLTP.
  • Ukuran I/O yang lebih besar untuk mendapatkan bandwidth/throughput yang lebih tinggi. Misalnya, 1.024 KB untuk aplikasi gudang data.

Berikut adalah contoh bagaimana Anda dapat menghitung IOPS dan throughput/bandwidth untuk aplikasi Anda.

Pertimbangkan aplikasi yang menggunakan disk P30. IOPS maksimum dan throughput/bandwidth yang dapat dicapai disk P30 adalah masing-masing 5.000 IOPS dan 200 MB/detik. Jika aplikasi Anda memerlukan IOPS maksimum dari disk P30 dan Anda menggunakan ukuran I/O yang lebih kecil, seperti 8 KB, bandwidth yang dihasilkan yang bisa Anda dapatkan adalah 40 MB/detik. Jika aplikasi Anda memerlukan throughput/bandwidth maksimum dari disk P30 dan Anda menggunakan ukuran I/O yang lebih besar, seperti 1.024 KB, IOPS yang dihasilkan kurang, seperti 200 IOPS.

Sesuaikan ukuran I/O sehingga memenuhi persyaratan IOPS dan throughput/bandwidth aplikasi Anda. Tabel berikut ini meringkas ukuran I/O yang berbeda dan IOPS dan throughput yang sesuai untuk disk P30.

Persyaratan aplikasi Ukuran I/O IOPS Throughput/Bandwidth
IOPS Maksimum 8 KB 5\.000 40 MB/detik
Throughput maksimum 1.024 KB 200 200 MB/detik
Throughput maksimum + IOPS tinggi 64 KB 3.200 200 MB/detik
IOPS maksimum + throughput tinggi 32 KB 5\.000 160 MB/dtk

Untuk mendapatkan IOPS dan bandwidth yang lebih tinggi dari nilai maksimum satu disk penyimpanan premium, gunakan beberapa disk premium yang bergaris bersama-sama. Misalnya, stripe dua disk P30 untuk mendapatkan IOPS gabungan 10.000 IOPS atau throughput gabungan 400 MB/detik. Seperti yang dijelaskan di bagian berikutnya, Anda harus menggunakan ukuran VM yang mendukung IOPS disk gabungan dan throughput.

Catatan

Saat Anda meningkatkan IOPS atau throughput, yang lain juga meningkat. Pastikan Anda tidak mencapai batas throughput atau IOPS disk atau VM saat Anda meningkatkannya.

Untuk menyaksikan efek ukuran I/O pada performa aplikasi, Anda dapat menjalankan alat tolok ukur pada VM dan disk Anda. Buat beberapa eksekusi pengujian dan gunakan ukuran I/O yang berbeda untuk setiap eksekusi untuk melihat efeknya. Untuk informasi selengkapnya, lihat artikel tolok ukur di akhir dokumen ini.

Ukuran VM skala tinggi

Saat Anda mulai merancang aplikasi, salah satu hal pertama yang harus dilakukan adalah memilih VM untuk menghosting aplikasi Anda. Penyimpanan premium dilengkapi dengan ukuran VM skala tinggi yang dapat menjalankan aplikasi yang membutuhkan daya komputasi yang lebih tinggi dan performa I/O disk lokal yang tinggi. VM ini menyediakan prosesor yang lebih cepat, rasio memori-ke-inti yang lebih tinggi, dan solid-state drive (SSD) untuk disk lokal. Contoh VM skala tinggi yang mendukung penyimpanan premium adalah VM seri DS dan GS.

VM skala tinggi tersedia dalam ukuran yang berbeda dengan jumlah core CPU, memori, OS, dan ukuran disk sementara yang berbeda. Setiap ukuran VM juga memiliki jumlah maksimum disk data yang dapat Anda lampirkan ke VM. Ukuran VM yang dipilih memengaruhi berapa banyak kapasitas pemrosesan, memori, dan penyimpanan yang tersedia untuk aplikasi Anda. Ini juga mempengaruhi biaya komputasi dan penyimpanan. Misalnya, spesifikasi berikut adalah untuk ukuran VM terbesar dalam seri DS dan seri GS.

Ukuran komputer virtual Inti CPU Memori Ukuran disk VM Disk data maksimum Ukuran cache IOPS Batas I/O cache bandwidth
Standard_DS14 16 112 GB OS = 1.023 GB
SSD Lokal = 224 GB
32 576 GB 50.000 IOPS
512 MB/dtk
4.000 IOPS dan 33 MB/detik
Standard_GS5 32 448 GB OS = 1.023 GB
SSD Lokal = 896 GB
64 4224 GB 80.000 IOPS
2.000 MB/detik
5.000 IOPS dan 50 MB/detik

Untuk melihat daftar lengkap semua ukuran Azure VM yang tersedia, lihat Ukuran untuk komputer virtual di Azure. Pilih ukuran VM yang dapat memenuhi dan menskalakan dengan persyaratan performa aplikasi yang Anda inginkan. Pertimbangkan juga pertimbangan penting berikut saat Anda memilih ukuran VM.

Batas skala

Batas IOPS maksimum per VM dan per disk berbeda dan independen satu sama lain. Pastikan bahwa aplikasi mendorong IOPS dalam batas VM dan disk premium yang melekat padanya. Jika tidak, performa aplikasi mengalami pembatasan.

Sebagai contoh, anggaplah persyaratan aplikasi adalah maksimum 4.000 IOPS. Untuk mencapai tingkat ini, Anda memprovisikan disk P30 pada VM DS1. Disk P30 dapat mengirimkan hingga 5.000 IOPS. Namun, VM DS1 dibatasi hingga 3.200 IOPS. Jadi, performa aplikasi dibatasi oleh batas VM pada 3.200 IOPS dan performa terdegradasi. Untuk mencegah situasi ini, pilih VM dan ukuran disk yang keduanya memenuhi persyaratan aplikasi.

Biaya operasi

Dalam banyak kasus, ada kemungkinan bahwa biaya operasi Anda secara keseluruhan menggunakan penyimpanan premium lebih rendah daripada menggunakan penyimpanan standar.

Misalnya, pertimbangkan aplikasi yang membutuhkan 16.000 IOPS. Untuk mencapai performa ini, Anda memerlukan Standard_D14 Azure IaaS VM, yang dapat memberikan IOPS maksimum 16.000 dengan menggunakan disk 1-TB penyimpanan standar 32. Setiap disk penyimpanan standar 1 TB dapat mencapai maksimum 500 IOPS.

  • Perkiraan biaya VM ini per bulan adalah $1.570.
  • Biaya bulanan 32 disk penyimpanan standar adalah $1.638.
  • Perkiraan total biaya bulanan adalah $3.208.

Jika Anda menghosting aplikasi yang sama pada penyimpanan premium, Anda memerlukan ukuran VM yang lebih kecil dan disk penyimpanan premium yang lebih sedikit, mengurangi biaya keseluruhan. VM Standard_DS13 dapat memenuhi persyaratan 16.000 IOPS dengan menggunakan empat disk P30. VM DS13 memiliki IOPS maksimum 25.600, dan setiap disk P30 memiliki IOPS maksimum 5.000. Secara keseluruhan, konfigurasi ini dapat mencapai 5.000 x 4 = 20.000 IOPS.

  • Perkiraan biaya VM ini per bulan adalah $1.003.
  • Biaya bulanan empat disk penyimpanan premium P30 adalah $544,34.
  • Perkiraan total biaya bulanan adalah $1.544.

Tabel berikut ini meringkas perincian biaya skenario ini untuk penyimpanan standar dan premium.

Biaya bulanan Standar Premium
Biaya VM per bulan $1.570,58 (Standard_D14) $1.003,66 (Standard_DS13)
Biaya disk per bulan $1.638,40 (disk 32 x 1 TB) $544.34 (4 x P30 disk)
Biaya keseluruhan per bulan $3.208,98 $1.544,34

Distro Linux

Dengan penyimpanan premium, Anda mendapatkan tingkat performa yang sama untuk VM yang menjalankan Windows dan Linux. Kami mendukung banyak versi distro Linux. Untuk informasi lebih lanjut, lihat Distribusi Linux yang didukung di Azure.

Distro yang berbeda lebih cocok untuk berbagai jenis beban kerja. Anda melihat tingkat performa yang berbeda tergantung pada distro tempat beban kerja Anda berjalan. Uji distro Linux dengan aplikasi Anda dan pilih salah satu yang paling cocok.

Saat Anda menjalankan Linux dengan penyimpanan premium, periksa pembaruan terbaru tentang driver yang diperlukan untuk memastikan performa tinggi.

Ukuran disk penyimpanan premium

Penyimpanan premium menawarkan berbagai ukuran sehingga Anda dapat memilih yang paling sesuai dengan kebutuhan Anda. Setiap ukuran disk memiliki batas skala yang berbeda untuk IOPS, bandwidth, dan penyimpanan. Pilih ukuran disk penyimpanan premium yang tepat tergantung pada persyaratan aplikasi dan ukuran VM skala tinggi. Tabel berikut menunjukkan ukuran disk dan kemampuannya. Ukuran P4, P6, P15, P60, P70, dan P80 saat ini hanya didukung untuk disk terkelola.

Ukuran SSD premium Hal 1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Ukuran disk dalam GiB 4 8 16 32 64 128 256 512 1,024 2.048 4,096 8.192 16,384 32.767
IOPS dasar yang disediakan per disk 120 120 120 120 240 500 1.100 2.300 5\.000 7.500 7.500 16.000 18.000 20.000
**IOPS yang diprovisikan yang diperluas per disk T/A T/A T/A T/A T/A T/A T/A T/A 8.000 16.000 20.000 20.000 20.000 20.000
Throughput dasar yang disediakan per disk 25 MB/dtk 25 MB/dtk 25 MB/dtk 25 MB/dtk 50 MB/dtk 100 MB/dtk 125 MB/dtk 150 MB/dtk 200 MB/dtk 250 MB/dtk 250 MB/dtk 500 MB/dtk 750 MB/dtk 900 MB/dtk
**Throughput yang diprovisikan yang diperluas per disk T/A T/A T/A T/A T/A T/A T/A T/A 300 MB/dtk 600 MB/dtk 900 MB/dtk 900 MB/dtk 900 MB/dtk 900 MB/dtk
Maks. IOPS beruntun per disk 3.500 3.500 3.500 3.500 3.500 3.500 3.500 3.500 30.000* 30.000* 30.000* 30.000* 30.000* 30.000*
Maks. throughput beruntun per disk 170 MB/dtk 170 MB/dtk 170 MB/dtk 170 MB/dtk 170 MB/dtk 170 MB/dtk 170 MB/dtk 170 MB/dtk 1.000 MB/dtk* 1.000 MB/dtk* 1.000 MB/dtk* 1.000 MB/dtk* 1.000 MB/dtk* 1.000 MB/dtk*
Maks. durasi beruntun 30 menit 30 menit 30 menit 30 menit 30 menit 30 menit 30 menit 30 menit Tidak terbatas* Tidak terbatas* Tidak terbatas* Tidak terbatas* Tidak terbatas* Tidak terbatas*
Memenuhi syarat untuk pemesanan Tidak No No No No No No Tidak Ya, hingga satu tahun Ya, hingga satu tahun Ya, hingga satu tahun Ya, hingga satu tahun Ya, hingga satu tahun Ya, hingga satu tahun

*Hanya berlaku untuk disk dengan ledakan sesuai permintaan yang diaktifkan.
** Hanya berlaku untuk disk dengan performa plus (pratinjau) diaktifkan.

Berapa banyak disk yang Anda pilih bergantung pada ukuran disk yang dipilih. Anda dapat menggunakan satu disk P50 atau beberapa disk P10 untuk memenuhi persyaratan aplikasi Anda. Pertimbangkan pertimbangan yang tercantum di sini saat Anda membuat pilihan.

Batas skala (IOPS dan throughput)

Batas IOPS dan throughput dari setiap ukuran disk premium berbeda dan independen dari batas skala VM. Pastikan bahwa total IOPS dan throughput dari disk berada dalam batas skala dari ukuran VM yang dipilih.

Misalnya, jika persyaratan aplikasi adalah maksimum throughput 250 MB/detik dan Anda menggunakan VM DS4 dengan satu disk P30, VM DS4 dapat menyerah hingga throughput 256 MB/detik. Namun, satu disk P30 memiliki batas throughput 200 MB/detik. Jadi, aplikasi dibatasi pada 200 MB/detik karena batas disk. Untuk mengatasi batas ini, provisikan lebih dari satu disk data ke VM atau mengubah ukuran disk Anda menjadi P40 atau P50.

Catatan

Bacaan yang dilayani oleh cache tidak disertakan dalam IOPS dan throughput disk, sehingga tidak tunduk pada batas disk. Cache memiliki batas IOPS dan throughput terpisah per VM.

Misalnya, awalnya baca dan tulisan Anda masing-masing adalah 60 MB/dtk dan 40 MB/detik. Seiring waktu, cache memanas dan menyajikan semakin banyak operasi baca dari cache. Kemudian, Anda bisa mendapatkan throughput tulis yang lebih tinggi dari disk.

Jumlah disk

Tentukan jumlah disk yang Anda butuhkan dengan menilai persyaratan aplikasi. Setiap ukuran VM juga memiliki batasan jumlah disk yang dapat Anda pasang ke VM. Biasanya, jumlah ini adalah dua kali jumlah inti. Pastikan ukuran VM yang Anda pilih dapat mendukung jumlah disk yang dibutuhkan.

Ingat, disk penyimpanan premium memiliki kemampuan performa yang lebih tinggi dibandingkan dengan disk penyimpanan standar. Jika Anda memigrasikan aplikasi dari Azure IaaS VM menggunakan penyimpanan standar ke penyimpanan premium, Anda mungkin memerlukan lebih sedikit disk premium untuk mencapai performa yang sama atau lebih tinggi untuk aplikasi Anda.

Cache disk

VM skala tinggi yang menggunakan penyimpanan premium memiliki teknologi penembolokan multitier yang disebut BlobCache. BlobCache menggunakan kombinasi RAM host dan SSD lokal untuk penembolokan. Cache ini tersedia untuk disk persisten penyimpanan premium dan disk lokal VM. Secara default, pengaturan cache ini diatur ke ReadWrite untuk disk OS dan ReadOnly untuk disk data yang dihosting pada penyimpanan premium. Dengan penembolokan disk diaktifkan pada disk penyimpanan premium, VM skala tinggi dapat mencapai tingkat performa yang sangat tinggi yang melebihi performa disk yang mendasar.

Peringatan

Penembolokan disk tidak didukung untuk disk 4 TiB dan yang lebih besar. Jika beberapa disk dilampirkan ke VM Anda, setiap disk yang lebih kecil dari 4 TiB mendukung penembolokan.

Mengubah pengaturan cache disk Azure, melepas dan memasang kembali disk target. Jika itu adalah disk sistem operasinya, komputer virtual akan dihidupkan ulang. Hentikan semua aplikasi dan layanan yang mungkin terpengaruh oleh gangguan ini sebelum Anda mengubah pengaturan cache disk. Tidak mengikuti rekomendasi tersebut dapat menyebabkan kerusakan data.

Untuk mempelajari selengkapnya tentang cara kerja BlobCache, lihat posting blog penyimpanan premium Inside Azure.

Penting untuk mengaktifkan penembolokan pada set disk yang tepat. Apakah Anda harus mengaktifkan penembolokan disk pada disk premium atau tidak tergantung pada pola beban kerja yang ditangani disk. Tabel berikut ini memperlihatkan pengaturan cache default untuk OS dan disk data.

Jenis disk OS Pengaturan cache default
Disk OS ReadWrite
Disk data Baca Saja

Kami merekomendasikan pengaturan cache disk berikut untuk disk data.

Pengaturan penembolokan disk Rekomendasi kapan menggunakan pengaturan ini
Tidak ada Konfigurasikan host-cache sebagai Tidak Ada untuk disk tulis-saja dan tulis-berat.
Baca Saja Konfigurasikan host-cache sebagai ReadOnly untuk disk baca-saja dan baca-tulis.
ReadWrite Konfigurasikan host-cache sebagai ReadWrite hanya jika aplikasi Anda menangani penulisan data cache dengan benar ke disk persisten saat diperlukan.

Baca Saja

Dengan mengonfigurasi penembolokan ReadOnly pada disk data penyimpanan premium, Anda dapat mencapai latensi baca rendah dan mendapatkan IOPS baca dan throughput yang sangat tinggi untuk aplikasi Anda karena dua alasan:

  1. Bacaan yang dilakukan dari cache, yang ada di memori VM dan SSD lokal, lebih cepat daripada membaca dari disk data, yang ada di Azure Blob Storage.
  2. Penyimpanan premium tidak menghitung bacaan yang disajikan dari cache ke arah IOPS dan throughput disk. Untuk alasan ini, aplikasi Anda dapat mencapai total IOPS dan throughput yang lebih tinggi.

ReadWrite

Secara default, disk OS mengaktifkan penembolokan ReadWrite . Kami baru-baru ini menambahkan dukungan untuk penembolokan ReadWrite pada disk data juga. Jika Anda menggunakan penembolokan ReadWrite , Anda harus memiliki cara yang tepat untuk menulis data dari cache ke disk persisten. Misalnya, SQL Server menangani penulisan data cache ke disk penyimpanan persisten sendiri. Menggunakan cache ReadWrite dengan aplikasi yang tidak menangani mempertahankan data yang diperlukan dapat menyebabkan kehilangan data, jika VM mengalami crash.

Tidak ada

Saat ini, Tidak ada hanya didukung pada disk data. Ini tidak didukung pada disk OS. Jika Anda mengatur Tidak Ada pada disk OS, pengaturan ini akan diambil alih secara internal dan mengaturnya ke ReadOnly.

Sebagai contoh, Anda dapat menerapkan panduan ini ke SQL Server yang berjalan pada penyimpanan premium dengan mengikuti langkah-langkah berikut:

  1. Konfigurasikan cache ReadOnly pada disk penyimpanan premium yang menghosting file data.
    1. Pembacaan cepat dari cache menurunkan waktu kueri SQL Server karena halaman data diambil lebih cepat dari cache dibandingkan dengan langsung dari disk data.
    2. Melayani bacaan dari cache berarti ada lebih banyak throughput yang tersedia dari disk data premium. SQL Server dapat menggunakan throughput tambahan ini untuk mengambil lebih banyak halaman data dan operasi lain seperti pencadangan/pemulihan, beban batch, dan pembangunan ulang indeks.
  2. Konfigurasikan cache Tidak ada pada disk penyimpanan premium yang menghosting file log.
    1. File log terutama memiliki operasi write-heavy, sehingga tidak mendapat manfaat dari cache ReadOnly .

Mengoptimalkan performa di VM Linux

Untuk semua SSD Premium atau Disk Ultra, Anda mungkin dapat menonaktifkan hambatan untuk sistem file pada disk untuk meningkatkan performa ketika diketahui bahwa tidak ada cache yang dapat kehilangan data. Jika penembolokan disk Azure diatur ke ReadOnly atau Tidak Ada, Anda dapat menonaktifkan penghalang. Tetapi jika penembolokan diatur ke ReadWrite, hambatan harus tetap diaktifkan untuk memastikan durabilitas tulis. Penghalang biasanya diaktifkan secara default, tetapi Anda dapat menonaktifkan penghalang dengan menggunakan salah satu metode berikut tergantung pada jenis sistem file:

  • reiserFS: Gunakan opsi pemasangan barrier=none untuk menonaktifkan penghalang. Untuk mengaktifkan penghalang secara eksplisit, gunakan barrier=flush.
  • ext3/ext4: Gunakan opsi pemasangan barrier=0 untuk menonaktifkan hambatan. Untuk mengaktifkan penghalang secara eksplisit, gunakan barrier=1.
  • XFS: Gunakan opsi pemasangan nobarrier untuk menonaktifkan penghalang. Untuk mengaktifkan penghalang secara eksplisit, gunakan penghalang. Pada versi 4.10 dari kernel Linux garis utama, desain sistem file XFS selalu memastikan durabilitas. Menonaktifkan penghalang tidak berpengaruh dan opsi nobarrier tidak digunakan lagi. Namun, beberapa distribusi Linux mungkin telah mendukung perubahan pada rilis distribusi dengan versi kernel sebelumnya. Tanyakan kepada vendor distribusi Anda untuk status dalam distribusi dan versi yang Anda jalankan.

Penghapusan Disk

Ketika VM skala tinggi dilampirkan dengan beberapa disk persisten penyimpanan premium, disk dapat digariskan bersama-sama untuk mengagregasi IOP, bandwidth, dan kapasitas penyimpanan mereka.

Di Windows, Anda dapat menggunakan Ruang Penyimpanan untuk menyatukan disk. Anda harus mengonfigurasi satu kolom untuk setiap disk dalam kumpulan. Jika tidak, performa keseluruhan volume bergaris dapat lebih rendah dari yang diharapkan karena distribusi lalu lintas yang tidak merata di seluruh disk.

Dengan menggunakan UI Manajer Server, Anda dapat mengatur jumlah total kolom hingga 8 untuk volume bergaris. Saat Anda melampirkan lebih dari delapan disk, gunakan PowerShell untuk membuat volume. Dengan menggunakan PowerShell, Anda dapat mengatur jumlah kolom yang sama dengan jumlah disk. Misalnya, jika ada 16 disk dalam satu set stripe, tentukan 16 kolom dalam NumberOfColumns parameter New-VirtualDisk cmdlet PowerShell.

Di Linux, gunakan utilitas MDADM untuk menyatukan disk. Untuk langkah-langkah tentang cara menghapus disk di Linux, lihat Mengonfigurasi RAID Perangkat Lunak di Linux.

Ukuran garis

Konfigurasi penting dalam striping disk adalah ukuran stripe. Ukuran garis atau ukuran blok adalah potongan data terkecil yang dapat ditangani aplikasi pada volume bergaris. Ukuran stripe yang Anda konfigurasikan bergantung pada jenis aplikasi dan pola permintaannya. Jika Anda memilih ukuran stripe yang salah, itu dapat menyebabkan ketidakselarasan I/O, yang menyebabkan penurunan performa aplikasi Anda.

Misalnya, jika permintaan I/O yang dihasilkan oleh aplikasi Anda lebih besar dari ukuran garis disk, sistem penyimpanan menulisnya di seluruh batas unit stripe pada lebih dari satu disk. Ketika saatnya untuk mengakses data tersebut, data harus mencari di lebih dari satu unit stripe untuk menyelesaikan permintaan. Efek kumulatif dari perilaku tersebut dapat menyebabkan penurunan kinerja yang substansial. Di sisi lain, jika ukuran permintaan I/O lebih kecil dari ukuran stripe, dan jika bersifat acak, permintaan I/O mungkin bertambah pada disk yang sama, menyebabkan hambatan dan pada akhirnya menurunkan performa I/O.

Bergantung pada jenis beban kerja yang dijalankan aplikasi Anda, pilih ukuran stripe yang sesuai. Untuk permintaan I/O kecil acak, gunakan ukuran garis yang lebih kecil. Untuk permintaan I/O berurutan besar, gunakan ukuran garis yang lebih besar. Cari tahu rekomendasi ukuran stripe untuk aplikasi yang akan Anda jalankan pada penyimpanan premium. Untuk SQL Server, konfigurasikan ukuran stripe 64 KB untuk beban kerja OLTP dan 256 KB untuk beban kerja pergudangan data. Untuk informasi selengkapnya, lihat Praktik terbaik performa untuk SQL Server di Azure VM.

Catatan

Anda dapat menggabungkan maksimum 32 disk penyimpanan premium pada VM seri DS dan 64 disk penyimpanan premium pada VM seri GS.

Multithreading

Azure merancang platform penyimpanan premium agar paralel secara besar-besaran. Untuk alasan ini, aplikasi multithread mencapai performa yang lebih tinggi daripada aplikasi utas tunggal. Aplikasi multithread membagi tugasnya di beberapa utas dan meningkatkan efisiensi eksekusinya dengan menggunakan VM dan sumber daya disk secara maksimum.

Misalnya, jika aplikasi Anda berjalan pada VM core tunggal menggunakan dua utas, CPU dapat beralih di antara dua utas untuk mencapai efisiensi. Saat satu utas menunggu I/O disk selesai, CPU dapat beralih ke utas lain. Dengan cara ini, dua utas dapat menyelesaikan lebih banyak dari pada satu utas. Jika VM memiliki lebih dari satu inti, itu lebih mengurangi waktu berjalan karena setiap inti dapat menjalankan tugas secara paralel.

Anda mungkin tidak dapat mengubah cara aplikasi off-the-shelf menerapkan utas tunggal atau multithreading. Misalnya, SQL Server mampu menangani multi-CPU dan multicore. Namun, SQL Server memutuskan dalam kondisi apa ia menggunakan satu atau beberapa utas untuk memproses kueri. Ini dapat menjalankan kueri dan membangun indeks dengan menggunakan multithreading. Untuk kueri yang melibatkan gabungan tabel besar dan mengurutkan data sebelum kembali ke pengguna, SQL Server kemungkinan menggunakan beberapa utas. Pengguna tidak dapat mengontrol apakah SQL Server menjalankan kueri dengan menggunakan satu utas atau beberapa utas.

Ada pengaturan konfigurasi yang dapat Anda ubah untuk memengaruhi pemrosesan multithreading atau paralel aplikasi. Misalnya, untuk SQL Server, ini adalah konfigurasinya max degree of parallelism . Pengaturan yang disebut MAXDOP ini memungkinkan Anda mengonfigurasi jumlah maksimum prosesor yang dapat digunakan SQL Server saat pemrosesan paralel. Anda dapat mengonfigurasi MAXDOP untuk kueri individual atau operasi indeks. Kemampuan ini bermanfaat ketika Anda ingin menyeimbangkan sumber daya sistem Anda untuk aplikasi penting performa.

Misalnya, katakanlah aplikasi Anda yang menggunakan SQL Server menjalankan kueri besar dan operasi indeks secara bersamaan. Mari kita asumsikan bahwa Anda ingin operasi indeks menjadi lebih berkinerja dibandingkan dengan kueri besar. Dalam kasus seperti itu, Anda dapat mengatur nilai MAXDOP dari operasi indeks menjadi lebih tinggi dari nilai MAXDOP untuk kueri. Dengan cara ini, SQL Server memiliki lebih banyak prosesor daripada yang dapat digunakan untuk operasi indeks dibandingkan dengan jumlah prosesor yang dapat didedikasikan untuk kueri besar. Ingat, Anda tidak mengontrol jumlah utas yang digunakan SQL Server untuk setiap operasi. Anda dapat mengontrol jumlah maksimum prosesor yang didedikasikan untuk multithreading.

Pelajari selengkapnya tentang tingkat paralelisme di SQL Server. Cari tahu bagaimana pengaturan tersebut memengaruhi multithreading di aplikasi Anda dan konfigurasinya untuk mengoptimalkan performa.

Kedalaman antrean

Kedalaman antrean atau panjang antrean atau ukuran antrean adalah jumlah permintaan I/O yang tertunda dalam sistem. Nilai kedalaman antrean menentukan berapa banyak operasi I/O yang dapat dibariskan aplikasi Anda, yang diproses disk penyimpanan. Ini mempengaruhi ketiga indikator performa aplikasi yang dibahas dalam artikel ini: IOPS, throughput, dan latensi.

Kedalaman antrean dan multithreading terkait erat. Nilai kedalaman antrean menunjukkan berapa banyak multithreading yang dapat dicapai oleh aplikasi. Jika kedalaman antrean besar, aplikasi dapat menjalankan lebih banyak operasi secara bersamaan, dengan kata lain, lebih banyak multithreading. Jika kedalaman antrean kecil, meskipun aplikasi multithreaded, aplikasi tidak akan memiliki cukup permintaan yang dibariskan untuk eksekusi bersamaan.

Biasanya, aplikasi off-the-shelf tidak memungkinkan Anda untuk mengubah kedalaman antrean, karena jika salah diatur, itu lebih membahayakan daripada baik. Aplikasi menetapkan nilai kedalaman antrean yang tepat untuk mendapatkan performa optimal. Penting untuk memahami konsep ini sehingga Anda dapat memecahkan masalah performa dengan aplikasi Anda. Anda juga dapat mengamati efek kedalaman antrean dengan menjalankan alat pembuat tolok ukur pada sistem Anda.

Beberapa aplikasi menyediakan pengaturan untuk memengaruhi kedalaman antrean. Misalnya, pengaturan MAXDOP di SQL Server yang dijelaskan di bagian sebelumnya. MAXDOP adalah cara untuk memengaruhi kedalaman antrean dan multithreading, meskipun tidak secara langsung mengubah nilai kedalaman antrean SQL Server.

Kedalaman antrean tinggi

Kedalaman antrean yang tinggi membuat lebih banyak operasi pada disk. Disk mengetahui permintaan berikutnya dalam antrean sebelumnya. Jadi, disk dapat menjadwalkan operasi sebelumnya dan memprosesnya dalam urutan yang optimal. Karena aplikasi mengirim lebih banyak permintaan ke disk, disk dapat memproses I/Os yang lebih paralel. Pada akhirnya, aplikasi dapat mencapai IOPS yang lebih tinggi. Karena aplikasi memproses lebih banyak permintaan, total throughput aplikasi juga meningkat.

Biasanya, aplikasi dapat mencapai throughput maksimum dengan 8 hingga 16+ I/Os yang luar biasa per disk yang terpasang. Jika kedalaman antrean adalah satu, aplikasi tidak mendorong cukup I/Os ke sistem, dan memproses jumlah yang lebih kecil dalam periode tertentu. Dengan kata lain, kurangi throughput.

Misalnya, di SQL Server, atur nilai MAXDOP untuk kueri guna 4 memberi tahu SQL Server bahwa kueri dapat menggunakan hingga empat inti untuk menjalankan kueri. SQL Server menentukan nilai kedalaman antrean terbaik dan jumlah inti untuk eksekusi kueri.

Kedalaman antrean optimal

Nilai kedalaman antrean yang sangat tinggi juga memiliki kelemahannya. Jika nilai kedalaman antrean terlalu tinggi, aplikasi mencoba mendorong IOPS yang sangat tinggi. Kecuali aplikasi memiliki disk persisten dengan IOPS yang tersedia cukup, nilai kedalaman antrean yang sangat tinggi dapat berdampak negatif pada latensi aplikasi. Rumus berikut menunjukkan hubungan antara IOPS, latensi, dan kedalaman antrean.

A diagram that shows the equation I O P S times latency equals queue depth.

Anda tidak boleh mengonfigurasi kedalaman antrean ke nilai tinggi apa pun, tetapi ke nilai optimal, yang dapat memberikan IOPS yang cukup untuk aplikasi tanpa memengaruhi latensi. Misalnya, jika latensi aplikasi perlu 1 milidetik, kedalaman antrean yang diperlukan untuk mencapai 5.000 IOPS adalah QD = 5.000 x 0,001 = 5.

Kedalaman antrean untuk volume bergaris

Untuk volume bergaris, pertahankan kedalaman antrean yang cukup tinggi sehingga setiap disk memiliki kedalaman antrean puncak satu per satu. Misalnya, pertimbangkan aplikasi yang mendorong kedalaman antrean 2 dan ada empat disk di stripe. Dua permintaan I/O masuk ke dua disk dan dua disk yang tersisa menganggur. Oleh karena itu, konfigurasikan kedalaman antrean sehingga semua disk dapat sibuk. Rumus berikut menunjukkan cara menentukan kedalaman antrean volume bergaris.

A diagram that shows the equation Q D per disk times number of columns per volume equals Q D of striped volume.

Pembatasan

Penyimpanan premium menyediakan jumlah IOPS dan throughput tertentu tergantung pada ukuran VM dan ukuran disk yang Anda pilih. Setiap kali aplikasi Anda mencoba mendorong IOPS atau throughput di atas batas ini dari apa yang dapat ditangani VM atau disk, penyimpanan premium membatasinya. Hasilnya adalah performa yang terdegradasi dalam aplikasi Anda, yang dapat berarti latensi yang lebih tinggi, throughput yang lebih rendah, atau IOPS yang lebih rendah.

Jika penyimpanan premium tidak dibatasi, aplikasi Anda dapat sepenuhnya gagal dengan melebihi apa yang mampu dicapai sumber dayanya. Untuk menghindari masalah performa karena pembatasan, selalu sediakan sumber daya yang memadai untuk aplikasi Anda. Pertimbangkan apa yang kita bahas di bagian ukuran VM dan ukuran disk sebelumnya. Tolok ukur adalah cara terbaik untuk mencari tahu sumber daya apa yang Anda butuhkan untuk menghosting aplikasi Anda.

Langkah berikutnya

Jika Anda ingin membuat tolok ukur disk Anda, lihat artikel berikut ini:

Pelajari selengkapnya tentang jenis disk yang tersedia:

Untuk pengguna SQL Server, lihat artikel tentang praktik terbaik performa untuk SQL Server: