Son zamanlarda, sunuculardan birinin çalışan iş parçacıkları tükendiği SQL Server 2014 HADR ortamımızda bir sorun yaşadık.
Mesajı aldık:
AlwaysOn Kullanılabilirlik Grupları için iş parçacığı havuzu, yeterli kullanılabilir iş parçacığı olmadığından yeni bir iş parçacığı başlatamadı.
Sorunu analiz etmeme yardımcı olması için (düşündüğüm) bir ifade almak için başka bir soru açtım ( Hangi SPID'nin hangi zamanlayıcıyı (çalışan iş parçacığı) kullandığını görmek mümkün mü? ). Şimdi sistemi kullanarak iş parçacığı bulmak için sorgu var, ancak neden bu sunucu işçi iş parçacığı bitti anlamıyorum.
Çevremiz aşağıdaki gibidir:
- 4 Windows Server 2012 R2
- SQL Server 2014 Enterprise
- 24 İşlemci -> 832 İş parçacığı
- 256 GB RAM
- 12 Kullanılabilirlik Grubu (genel)
- 642 Veritabanları (genel)
Yani, sorunu olan sunucu aşağıdaki yapılandırmaya sahipti:
- 5 Kullanılabilirlik Grubu (3 İlk / 2 Orta)
- 325 Veritabanları (127 İlk / 198 Orta)
MAXDOP = 8
Cost Threshold for Parallelism = 50
- Güç planı "Yüksek performans" olarak ayarlanmış
Sorunu "çözmek" için bir Kullanılabilirlik Grubunu ikincil sunucuya el ile geçemedik. Bu sunucunun yapılandırması şimdi:
- 5 Kullanılabilirlik Grubu (2 Birincil / 3 İkincil)
- 325 Veritabanları (77 Birincil / 248 İkincil)
Bu konu ile kullanılabilir konuları izliyorum:
declare @max int
select @max = max_workers_count from sys.dm_os_sys_info
select
@max as 'TotalThreads',
sum(active_Workers_count) as 'CurrentThreads',
@max - sum(active_Workers_count) as 'AvailableThreads',
sum(runnable_tasks_count) as 'WorkersWaitingForCpu',
sum(work_queue_count) as 'RequestWaitingForThreads' ,
sum(current_workers_count) as 'AssociatedWorkers'
from
sys.dm_os_Schedulers where status='VISIBLE ONLINE'
Normalde sunucuda 250-430 civarında işçi iş parçacığı vardır, ancak sorun başladığında işçinin kalmamış olması gerekir.
Bugün, hiçbir yerden, mevcut işçiler 327'den 50'ye düştü, ama sadece bir dakika için ve sonra yaklaşık 400'e geri döndü.
Diğer soruyu zaten gördüm ( HADR yüksek iş parçacığı kullanımı ) ama bana yardımcı olmuyor.
Sistemimiz bir yıldan fazla bir süredir sorunsuz çalışıyordu. Veritabanlarının dağıtımında herhangi bir yük devretme veya başka büyük bir değişiklik olmadı.
Kopyalar arasında "Senkron taahhüt" kullanıyoruz. Anladığım kadarıyla, sıkıştırma yoktur , belgelerdeki Kullanılabilirlik grubu için sıkıştırmayı ayarlama konusuna bakın .
Herhangi bir işçi iş parçacığı ne kullanıyor bir fikri var mı?
DÜZENLEME: Tam olarak bu sorunlar hakkında çok fazla bilginin bulunduğu bu sayfayı buldum http://www.techdevops.com/Article.aspx?CID=24