Temeli toplama: Azure VM'de SQL Server için en iyi performans yöntemleri

Şunlar için geçerlidir: Azure VM'de SQL Server

Bu makalede, Azure Sanal Makineler (VM) üzerinde SQL Server performansınızı iyileştirmeye yönelik en iyi yöntemler ve yönergeler dizisi olarak performans temeli toplamaya yönelik bilgiler sağlanır.

Genellikle maliyetleri iyileştirme ile performansı iyileştirme arasında bir denge vardır. Bu en iyi performans uygulamaları serisi, Azure Sanal Makineler'da SQL Server için en iyi performansı almaya odaklanmıştır. İş yükünüz daha az zorluysa önerilen her iyileştirmeye ihtiyacınız olmayabilir. Bu önerileri değerlendirirken performans gereksinimlerinizi, maliyetlerinizi ve iş yükü desenlerinizi göz önünde bulundurun.

Genel Bakış

Açıklayıcı bir yaklaşım için PerfMon/LogMan kullanarak performans sayaçlarını toplayın ve kaynak ortamın genel baskılarını ve olası performans sorunlarını daha iyi anlamak için SQL Server bekleme istatistiklerini yakalayın.

Uygulama performansı denetim listesini takip ederek kaynak iş yükünün CPU, bellek, IOPS, aktarım hızı ve gecikme süresini en yoğun zamanlarda toplayarak başlayın.

Tipik iş gününüzdeki iş yükleri gibi yoğun saatlerde, ayrıca gün sonu işleme ve hafta sonu ETL iş yükleri gibi diğer yüksek yük işlemleri sırasında veri toplayın. Kaynaklarınızın ölçeğini çeyrek sonu işleme gibi atiptik olarak yoğun iş yükleri için artırmayı ve iş yükü tamamlandıktan sonra ölçeğini ölçeklendirmeyi göz önünde bulundurun.

İş yükünüzün performans gereksinimlerine göre ölçeklenebilen VM Boyutunu seçmek için performans analizini kullanın.

Depolama

SQL Server performansı büyük ölçüde G/Ç alt sistemine bağlıdır ve depolama performansı IOPS ve aktarım hızıyla ölçülür. Veritabanınız fiziksel belleğe sığmadığı sürece, SQL Server veritabanı sayfalarını arabellek havuzuna sürekli olarak getirir. SQL Server için veri dosyaları farklı şekilde ele alınmalıdır. Günlük dosyalarına erişim, tempdb de dahil olmak üzere veri dosyalarına rastgele erişilen bir işlemin geri alınması gerektiği durumlar dışında sıralı olarak gerçekleşir. Yavaş bir G/Ç alt sisteminiz varsa kullanıcılarınız yavaş yanıt süreleri ve zaman aşımları nedeniyle tamamlanmayan görevler gibi performans sorunlarıyla karşılaşabilir.

Azure Market sanal makineleri, varsayılan olarak veri dosyalarından ayrı bir fiziksel diskte günlük dosyalarına sahiptir. Tempdb veri dosyalarının sayısı ve boyutu en iyi yöntemleri karşılar ve kısa ömürlü D:\ sürücüyü hedefler.

Aşağıdaki PerfMon sayaçları, SQL Server için gereken GÇ aktarım hızını doğrulamaya yardımcı olabilir:

  • \LogicalDisk\Disk Okuma/Sn (okuma IOPS)
  • \LogicalDisk\Disk Yazma/Sn (yazma IOPS)
  • \LogicalDisk\Disk Okuma Bayt/Sn (veri, günlük ve tempdb dosyaları için okuma aktarım hızı gereksinimleri)
  • \LogicalDisk\Disk Yazma Bayt/Sn (veri, günlük ve tempdb dosyaları için yazma aktarım hızı gereksinimleri)

IOPS ve aktarım hızı gereksinimlerini en yüksek düzeylerde kullanarak, ölçümlerinizdeki kapasiteyle eşleşen VM boyutlarını değerlendirin.

İş yükünüz 20.000 okuma IOPS ve 10.000 yazma IOPS gerektiriyorsa, Depolama Alanları kullanılarak şeritlenmiş 2 P30 diskle E16s_v3 (önbelleğe alınmış en fazla 32K ve 25600 önbelleğe alınmamış IOPS ile) veya M16_s (önbelleğe alınmış en fazla 20.000 ve 10.000 IOPS ile) seçebilirsiniz.

VM'lerin IOPS ve aktarım hızı için farklı ölçek sınırları olduğundan iş yükünün hem aktarım hızı hem de IOPS gereksinimlerini anladığınızdan emin olun.

Bellek

hem işletim sistemi tarafından kullanılan dış belleği hem de SQL Server tarafından dahili olarak kullanılan belleği izleyin. Her iki bileşen için de baskının belirlenmesi, sanal makinelerin boyutlandırılmasına ve ayarlama fırsatlarının belirlenmesine yardımcı olur.

Aşağıdaki PerfMon sayaçları bir SQL Server sanal makinesinin bellek durumunu doğrulamaya yardımcı olabilir:

İşlem

Azure'da işlem şirket içinden farklı yönetilir. Şirket içi sunucular, yönetim yükü ve yeni donanım edinme maliyeti nedeniyle yükseltme yapılmadan birkaç yıl dayanacak şekilde oluşturulur. Sanallaştırma bu sorunların bazılarını azaltır, ancak uygulamalar temel alınan donanımdan en iyi şekilde yararlanacak şekilde iyileştirilmiştir; bu da kaynak tüketiminde önemli bir değişikliğin fiziksel ortamın tamamını yeniden dengelemeyi gerektirdiği anlamına gelir.

Bu, farklı bir donanım serisinde ve hatta farklı bir bölgede bulunan yeni bir sanal makinenin kolayca başarıldığı Azure'daki bir zorluk değildir.

Azure'da mümkün olduğunca çok sanal makine kaynağından yararlanmak istiyorsunuz, bu nedenle Azure sanal makinelerinin iş yükünü etkilemeden ortalama CPU'nun olabildiğince yüksek kalmasını sağlayacak şekilde yapılandırılması gerekir.

Aşağıdaki PerfMon sayaçları bir SQL Server sanal makinesinin işlem durumunu doğrulamaya yardımcı olabilir:

  • \İşlemci Bilgileri(_Total)% İşlemci Süresi
  • \Process(sqlservr)% İşlemci Süresi

Not

İdeal olarak, işleminizin %80'ini kullanmayı ve %90'ın üzerinde zirve yapmayı ama sürekli herhangi bir süre boyunca %100'e ulaşmamayı hedeflemeyi deneyin. Temel olarak, yalnızca uygulamanın ihtiyaç duyduğu işlemi sağlamak ve ardından işletmenin gerektirdiği şekilde ölçeği artırmayı veya azaltmayı planlamak istiyorsunuz.

Sonraki adımlar

Daha fazla bilgi edinmek için bu en iyi yöntemler serisindeki diğer makalelere bakın:

En iyi güvenlik uygulamaları için bkz. Azure Sanal Makineler'da SQL Server için güvenlikle ilgili dikkat edilmesi gerekenler.

Azure Sanal Makineler Genel Bakış'ta SQL Server'daki diğer SQL Server Sanal Makine makalelerini gözden geçirin. SQL Server sanal makineleri hakkında sorularınız olursa Sık Sorulan Sorular bölümüne bakın.