Burada çok şey oluyor ve çoğu oldukça geniş ve belirsiz.
2008R2 RTM 21 Nisan 2010'da çıktı. Tamamen desteksiz kaldı. Günden yaklaşık 3 yıl önce çıkan en son Hizmet Paketine girmeye öncelik vermek istersiniz. Eğer garip bir böcek veya başka bir şeye çarpıyorsanız, bu şekilde karşılanacaksınız. Kafa buraya indirmeye gerek anlamaya.
VCPU'ları eklediğinizden (1'den 4'e kadar) ve hiçbir ayarı değiştirmediğinden, sorgularınız artık paralel olabilir. Kulağa daha hızlı olacak gibi geldiğini biliyorum, ama dayan!
RAM eklenmiş olabilirsiniz, ancak sunucunuzdan yararlanabilmesi için Maks. Sunucu Belleğini değiştirmemiş olabilirsiniz.
Sunucunuzun ne beklediğini bulun. Üzerinde çalıştığım açık kaynaklı bir proje, SQL Server'ınızı ölçmenize yardımcı olacak ücretsiz scriptler sunuyor. Üzerinde Baş buraya sen bir denemek istiyorsan.
Sunucunuzun bekleme istatistiklerini kontrol etmek için sp_BlitzFirst'i yakalamak istersiniz. Bunu birkaç yolla çalıştırabilirsin.
Bu, başlatıldığından beri sunucunuzun ne beklediğini size gösterir.
EXEC dbo.sp_BlitzFirst @SinceStartup = 1;
Bu, 30 saniyelik bir pencerede şu anda bekleyen sorguları gösterir.
EXEC dbo.sp_BlitzFirst @Seconds = 30, @ExpertMode = 1;
Hangi sorguların beklediğini bulduğunuzda (orada bekleme istatistikleri hakkında yazılmış bir sürü şey var), kontrol altına almak için değişiklikler yapmaya başlayabilirsiniz.
Onları beklediğini görüyorsanız CXPACKET
, bu, sorgularınızın paralel hale geldiği ve belki de birbirlerinin üzerinde dolaştığı anlamına gelir. Buna çarptıysanız, muhtemelen Parallelism için Maliyet Eşiğini 50'ye kadar düşürmeyi ve MAXDOP'u 2'ye düşürmeyi düşünebilirsiniz.
Bu adımdan sonra, sorgu planlarını yakalamaya başlamak için sp_WhoIsActive veya sp_BlitzWho (ikincisi GitHub deposunda) gibi bir şey kullanmak istediğinizde olur . Bekleme istatistiklerinin yanı sıra, neyin yanlış gittiğini anlamak için bakabileceğiniz en önemli şeylerden biri.
Ayrıca , SQL Server ile ilgili olarak check-out yapmak için Jonathan Kehayias'ın VMWare Sayaçları hakkında yazdığı makaleye de bakabilirsiniz .
Güncelleştirme
Bekleme istatistiklerine bakılırsa oğlanlar tuhaflar. İşlemcilerde kesinlikle bir şeyler var. Sunucunuz çoğunlukla oturuyor ve sıkılıyor, ancak işler ısındığında işler kötüleşiyor. Bunu kolayca parçalamaya çalışacağım.
Bir zehir bekliyorsunuz diye adlandırıyorsunuz THREADPOOL
. Bir tonunuz yok, ancak bu mantıklı çünkü sunucunuz çok aktif değil. Neden bir dakika içinde açıklayacağım.
Üzerinde gerçekten uzun ortalama beklediği sahip SOS_SCHEDULER_YIELD
ve CXPACKET
. Sanal makinedesin, yani SQL Server'ın çekinceleri olduğundan veya kutunun çok fazla abonelikten çıkmadığından emin olmak isteyeceksin. Gürültülü bir komşu burada gününüzü gerçekten mahvedebilir. Ayrıca, sunucu / VM konuğu / VM sunucusunun Dengeli Güç modunda çalışmadığından emin olmak isteyeceksiniz. Bu, CPU'larınızın gereksiz yere düşük hızlara dönmesini sağlar ve hemen tam hıza dönmezler.
Nasıl bağlanırlar? 4 işlemciyle 512 iş parçacığına sahipsiniz. Unutmayın, tek bir CPU ile aynı miktarda kullandınız , ancak şimdi sorgularınız paralel gidebiliyorsa, çok daha fazla çalışan iş parçacığı tüketebilirler. Senin durumunda bir paralel sorgunun paralel dalı başına 4 konu.
Ne paralel gidiyor? Büyük olasılıkla her şey. Paralellik için varsayılan Maliyet Eşik numara baktım bir masaüstü çalışma 90'lı yılların sonunda varsayılan ara uygun yapıldığı İşte 5. olduğunu böyle .
Verilmiş, donanımınız çoğu dizüstü bilgisayardan daha küçük, ancak hala bu şeyin biraz ötesindesiniz.
Çok sayıda paralel sorgu olduğunda, bu çalışan iş parçacığı bitiyor. Bu olduğunda, sorgular sadece iş parçacığının gitmesini beklerken oturuyor. Burası aynı zamanda SOS_SCHEDULER_YIELD
devreye giriyor. Sorgu CPU'ları atlatıyor ve uzun süre geri dönmüyor. Herhangi bir engelleme bekleyişi göremiyorum, bu yüzden büyük olasılıkla hepiniz sorgu içi paralellik bekleyişlerini dolduruyorsunuz.
Ne yapabilirsin?
- Balanced Power modunda hiçbir şeyin bulunmadığından emin olun.
- MAXDOP değerini 2 olarak değiştirin.
- Paralellik için maliyet eşiğini 50 olarak değiştir
- VM sağlığını doğrulamak için yukarıdaki Jon K. makalesini takip edin
sp_BlitzIndex
Eksik dizin isteklerini aramak için çağrılan komut dosyasını kullanın .
Daha ayrıntılı sorun giderme için Google’da bulutta donanım boyutlandırma konusunda yazdığım teknik incelemeye bakın .
Bu yardımcı olur umarım!