Sanal makine ve disk performansı
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri
Bu makale, Azure Sanal Makineler ve Azure disklerini birleştirdiğinizde disk performansının ve nasıl çalıştığının netleştirilmesine yardımcı olur. Ayrıca disk GÇ'niz için performans sorunlarını nasıl tanılayabileceğiniz ve performansı iyileştirmek için yapabileceğiniz değişiklikleri de açıklar.
Disk performansı nasıl çalışır?
Azure sanal makinelerinin saniye başına giriş/çıkış işlemleri (IOPS) ve sanal makine türüne ve boyutuna göre aktarım hızı performans sınırları vardır. İşletim sistemi diskleri ve veri diskleri sanal makinelere eklenebilir. Disklerin kendi IOPS ve aktarım hızı sınırları vardır.
Uygulamanızın performansı, sanal makineler veya bağlı diskler için ayrılandan daha fazla IOPS veya aktarım hızı istediğinde sınırlanır. Eşlendiğinde, uygulama en iyi olmayan performansla karşılaşır. Bu da artan gecikme süresine gibi olumsuz sonuçlara yol açabilir. Şimdi bu kavramı netleştirmek için birkaç örnek inceleyelim. Bu örnekleri izlemeyi kolaylaştırmak için yalnızca IOPS'ye bakacağız. Ancak, aynı mantık aktarım hızı için de geçerlidir.
Disk GÇ eşlemesi
Kurulum:
- Standard_D8s_v3
- Kazınmamış IOPS: 12.800
- E30 işletim sistemi diski
- IOPS: 500
- İki E30 veri diski × 2
- IOPS: 500
Sanal makinede çalışan uygulama, sanal makineye 10.000 IOPS gerektiren bir istekte bulunur. Standard_D8s_v3 sanal makinesi en fazla 12.800 IOPS yürütebileceğinden, bunların tümüne VM tarafından izin verilir.
10.000 IOPS isteği, farklı disklere yönelik üç farklı isteğe ayrılır:
- İşletim sistemi diskine 1.000 IOPS istenir.
- Her veri diskine 4.500 IOPS istenir.
Tüm bağlı diskler E30 diskleridir ve yalnızca 500 IOPS işleyebilir. Bu nedenle, her birinde 500 IOPS ile yanıt verir. Uygulamanın performansı, bağlı diskler tarafından eşlenir ve yalnızca 1.500 IOPS işleyebilir. Premium SSD P30 diskleri gibi daha iyi performanslı diskler kullanılırsa uygulama 10.000 IOPS'de en yüksek performansta çalışabilir.
Sanal makine GÇ eşlemesi
Kurulum:
- Standard_D8s_v3
- Kazınmamış IOPS: 12.800
- P30 işletim sistemi diski
- IOPS: 5.000
- İki P30 veri diski × 2
- IOPS: 5.000
Sanal makinede çalışan uygulama 15.000 IOPS gerektiren bir istekte bulunur. Ne yazık ki, Standard_D8s_v3 sanal makinesi yalnızca 12.800 IOPS işlemek için sağlanır. Uygulama sanal makine sınırlarına göre eşlenir ve ayrılan 12.800 IOPS'yi ayırması gerekir.
İstenen 12.800 IOPS, farklı disklere yönelik üç farklı isteğe ayrılır:
- İşletim sistemi diskine 4.267 IOPS istenir.
- Her veri diskine 4.266 IOPS istenir.
Tüm bağlı diskler, 5.000 IOPS işleyebilen P30 disklerdir. Bu nedenle, istenen miktarlarla geri yanıt verir.
Sanal makine kazınmamış ve önbelleğe alınmış sınırlar karşılaştırması
Hem premium depolama hem de premium depolama önbelleği için etkinleştirilen sanal makinelerin iki farklı depolama bant genişliği sınırı vardır. Şimdi örnek olarak Standard_D8s_v3 sanal makinesine bakalım. Dsv3 serisi ve Standard_D8s_v3 belgeleri aşağıdadır:
- Maksimum kazınmamış disk aktarım hızı, sanal makinenin işleyebileceği varsayılan depolama üst sınırıdır.
- Konak önbelleğe almayı etkinleştirdiğinizde en yüksek önbelleğe alınmış depolama aktarım hızı sınırı ayrı bir sınırdır.
Konak önbelleğe alma, depolamayı hızlı bir şekilde yazılabilir veya okunabilen VM'ye yaklaştırarak çalışır. Konak önbelleğe alma için VM'nin kullanabileceği depolama alanı miktarı belgelerde yer alır. Örneğin, Standard_D8s_v3 200 GiB önbellek depolama alanıyla birlikte geldiğini görebilirsiniz.
Sanal makinenizi oluştururken ve disk eklerken konak önbelleğini etkinleştirebilirsiniz. Ayrıca, mevcut bir VM'de disklerinizde konak önbelleğini açıp kapatabilirsiniz. Varsayılan olarak, önbellek özellikli veri disklerinde salt okunur önbelleğe alma etkin olur. Önbellek özellikli işletim sistemi disklerinde okuma/yazma önbelleği etkinleştirilecektir.
Konak önbelleğini her disk için iş yükü gereksinimlerinize uyacak şekilde ayarlayabilirsiniz. Konak önbelleğinizi şu şekilde ayarlayabilirsiniz:
- Salt okunur: Yalnızca okuma işlemleri gerçekleştiren iş yükleri için
- Okuma/yazma: Okuma ve yazma işlemlerini dengeleyen iş yükleri için
İş yükünüz bu desenlerden herhangi birini izlemiyorsa konak önbelleğe alma kullanmanızı önermeyiz.
Veri akışını ve performansı nasıl etkilediğini görmek için birkaç farklı konak önbelleği ayarı örneğini inceleyelim. Bu ilk örnekte, konak önbelleğe alma ayarı Salt okunur olarak ayarlandığında GÇ isteklerinde ne olduğuna bakacağız.
Kurulum:
- Standard_D8s_v3
- Önbelleğe Alınmış IOPS: 16.000
- Kazınmamış IOPS: 12.800
- P30 veri diski
- IOPS: 5.000
- Konak önbelleğe alma: Salt okunur
Bir okuma gerçekleştirildiğinde ve istenen veriler önbellekte kullanılabilir olduğunda, önbellek istenen verileri döndürür. Diskten okumanız gerekmez. Bu okuma, VM'nin önbelleğe alınan sınırlarına göre sayılır.
Bir okuma gerçekleştirildiğinde ve istenen veriler önbellekte mevcut olmadığında , okuma isteği diske iletilir. Ardından disk bunu hem önbelleğe hem de VM'ye gösterir. Bu okuma hem VM'nin hem de VM'nin önbelleğe alınmış sınırına doğru sayılır.
Yazma işlemi gerçekleştirildiğinde, yazma işleminin tamamlandı olarak kabul edilmesi için önce hem önbelleğe hem de diske yazılması gerekir. Bu yazma, VM'nin kazınmamış sınırına ve VM'nin önbelleğe alınmış sınırına doğru sayılır.
Şimdi konak önbelleği ayarı Okuma/yazma olarak ayarlandığında GÇ isteklerinde ne olduğuna bakalım.
Kurulum:
- Standard_D8s_v3
- Önbelleğe Alınmış IOPS: 16.000
- Kazınmamış IOPS: 12.800
- P30 veri diski
- IOPS: 5.000
- Konak önbelleğe alma: Okuma/yazma
Okuma, salt okunur ile aynı şekilde işlenir. Okuma/yazma önbelleğe almada farklı olan tek şey yazma işlemleridir. Ana bilgisayar önbelleğe alma ile yazma Okuma/yazma olarak ayarlandığında, yazma işleminin tamamlandığının kabul edilmesi için yalnızca konak önbelleğine yazılması gerekir. Daha sonra önbellek düzenli aralıklarla temizlendiğinde yazma işlemi diske lazily yazılır. Müşteriler ayrıca f/sync veya fua komutu vererek temizleme işlemini zorlayabiliyor. Bu, bir yazmanın önbelleğe yazıldığında önbelleğe alınmış GÇ'ye doğru sayıldığı anlamına gelir. Diske yanlışlıkla yazıldığında, kazınmamış GÇ'ye doğru sayılır.
şimdi Standard_D8s_v3 sanal makinemizle devam edelim. Ancak bu kez disklerde konak önbelleğini etkinleştireceğiz. Bu, VM'nin IOPS sınırını 16.000 IOPS yapar. VM'ye eklenen, her birinin 5.000 IOPS işleyebildiği temel alınan üç P30 diskidir.
Kurulum:
- Standard_D8s_v3
- Önbelleğe Alınmış IOPS: 16.000
- Kazınmamış IOPS: 12.800
- P30 işletim sistemi diski
- IOPS: 5.000
- Konak önbelleğe alma: Okuma/yazma
- İki P30 veri diski × 2
- IOPS: 5.000
- Konak önbelleğe alma: Okuma/yazma
Uygulama, önbelleğe alma özelliği etkinleştirilmiş Standard_D8s_v3 bir sanal makine kullanır. 16.000 IOPS isteğinde bulunur. İstekler, önbelleğe okunduklarında veya yazıldıklarında tamamlanır. Yazma işlemleri daha sonra ekli Disklere lazily yazılır.
Birleşik, önbelleğe alınmamış ve önbelleğe alınmış sınırlar
Sanal makinenin önbelleğe alınan sınırları, kazınmamış sınırlarından ayrıdır. Bu, diğer disklerde konak önbelleğini etkinleştirmezken vm'ye bağlı disklerde konak önbelleğe almayı etkinleştirebileceğiniz anlamına gelir. Bu yapılandırma, sanal makinelerinizin önbelleğe alınan sınırın toplam depolama GÇ değerini ve eklenmemiş sınırı almasına olanak tanır.
Şimdi bu sınırların birlikte nasıl çalıştığını anlamanıza yardımcı olacak bir örneği inceleyelim. Standard_D8s_v3 sanal makinesi ve premium diskler ekli yapılandırmayla devam edeceğiz.
Kurulum:
- Standard_D8s_v3
- Önbelleğe Alınmış IOPS: 16.000
- Kazınmamış IOPS: 12.800
- P30 işletim sistemi diski
- IOPS: 5.000
- Konak önbelleğe alma: Okuma/yazma
- İki P30 veri diski × 2
- IOPS: 5.000
- Konak önbelleğe alma: Okuma/yazma
- İki P30 veri diski × 2
- IOPS: 5.000
- Konak önbelleğe alma: Devre dışı
Bu durumda, Standard_D8s_v3 bir sanal makinede çalışan uygulama 25.000 IOPS isteğinde bulunur. İstek, bağlı disklerin her birine 5.000 IOPS olarak ayrılmıştır. Üç disk konak önbelleğe alma kullanır ve iki disk konak önbelleğini kullanmaz.
- Konak önbelleğe alma kullanan üç disk 16.000 önbelleğe alınmış sınırlar içinde olduğundan, bu istekler başarıyla tamamlanır. Depolama performansı sınırlaması gerçekleşmez.
- Konak önbelleğe alma kullanmayan iki disk 12.800'e kadar olan aşılmamış sınırlar içinde olduğundan, bu istekler de başarıyla tamamlanır. Hiçbir sınırlama gerçekleşmez.