SQL 2005'te bir üretim DB sunucumuz var. Her şey bir süre normal çalışıyor, ancak birkaç hafta sonra kayda değer bir performans düşüşü görüyoruz. Yalnızca SQL Server'ı yeniden başlatmak performansı normale döndürür.
Bazı arka plan:
- 1200'den fazla veritabanı çalıştırılıyor (çoğunlukla tek kiracı, bazıları çok kiracı). Biri sadece çok kiracıya geçme dersi vermeden önce, bu yapıyı korumak için geçerli sebepler var.
- RAM 16 GB'dir. Yeniden başlattıktan sonra, SQL Server'ın 15 GB kullanımına geri dönmesi çok uzun sürmüyor.
- Aktif DB bağlantıları yaklaşık 80 bağlantıdır - işlem başına web sunucusu başına bir bağlantı havuzu olduğu düşünülürse oldukça sağlıklıdır - bu nedenle bağlantı sızıntısı sorunumuz yoktur.
Yoğun olmayan zamanlarda birkaç şey denedik: - Veri önbelleğini temizlemek için DBCC DROPCLEANBUFFERS (CHECKPOINT ile) çalıştırın. Etkisi yoktur ve RAM kullanımının hiçbirini temizlemez). - Sorgu planlarını ve depolanan proc önbelleğini temizlemek için FREEPROCCACHE ve FREESYSTEMCACHE uygulamasını çalıştırın. Etkisi yok.
Açıkçası, SQL Server'ı yeniden başlatmak aktif bir üretim ortamında ideal değildir. Bir şeyleri özlüyoruz. Bundan başka biri geçiyor mu?
GÜNCELLEME: Nisan-28-2012 Hala bu problemle mücadele. Ben sadece işletim sistemi ile herhangi bir çekişme ekarte etmek için, SQL Server için belleği 10 GB'a düşürdüm. Daraltmaya daha da yaklaşıyorum, ancak bir sonraki adımda yardıma ihtiyacım var.
İşte bulduklarım, SQL Server'ı yeniden başlattıktan sonra sayfa dosyası 12.3 GB ile 12.5 GB arasında değişiyor. Günlerce böyle kalacak. Toplam sunucu iş parçacığı 850 ile 930 arasında takılacak - ayrıca günler boyunca sabit ve tutarlı (sqlserver sürekli olarak 55 ve 85 arasında trafiğe bağlı olanlar arasında).
Sonra, "bir olay" var. Etkinliğin ne olduğu hakkında hiçbir fikrim yok, günlüklerde göremiyorum ve haftanın günü veya saatinin gerçekleştiği tarihte tutarlı bir şey göremiyorum, ancak o ani sayfa dosyasının tamamı 14.1 veya 14.2'ye atlıyor GB ve dişliler 1750 ve 1785 arasında atlar.
Bu gerçekleştiğinde perfom kontrolü, bu ipliklerin 900'den fazlası sqlserver'dır. Bu yüzden bu konuların nereden geldiğini görmek için sp_who2'ye gidiyorum ... ve kullanılmış 80 ya da öylesine db bağlantıları var.
Peki .... kimse bu 900 ipliğin SQL sunucusundaki yerini ve ne yaptıklarını nasıl bulabileceğime dair bir fikri var mı?
GÜNCELLEME: Haziran-01-2012 Hala konuyla mücadele. Bunu hala okuyanlar için, yukarı zıplayan konu ile ilgili sorun çözüldü. Bunun nedeni otomatik olarak güncellenen ComVault yedekleme yazılımıdır. Sadece mevcut veritabanlarını yedeklemek yerine, artık orada olmayan (önceki veritabanlarının bir listesini tutuyordu) veritabanlarını yedeklemeye çalışan bir iş parçacığı oluşturuyordu.
Ancak - sorun hala devam ediyor ve her hafta yeniden başlamamız, birkaç gün vermemiz veya almamız gerekiyor. Işık tutabileceklerini görmek için Rackspace ekibiyle birlikte çalışmak.