Windows Server 2008 R2'de garip bellek kullanımı


20

Umarım birisi yardımcı olabilir. 16GB RAM'e sahip bir Windows Server 2008 R2 makinemiz var ve mevcut belleğinin bir şey tarafından yenilmesini sağlıyor. Görev Yöneticisi veya Kaynak İzleyicisi'ndeki hiçbir şey 300 MB'ın üzerinde bellek kullanan herhangi bir işlemi göstermez ... ancak sunucudaki bellek kullanımı 15,7 GB'dir.

https://i784.photobucket.com/albums/yy129/ThunderPeel2001/ram-usage.gif

Çalışan tek şey SQL Server 2008 ve IIS7.5 (ASP.Net ile).

Not: Yeniden başlatmadan sonra RAM kullanımı düşük başlar ve hızlanır. Bir hafta sonra kendimizi bu durumda bulmaya devam ediyoruz.

Tüm hafızamızı neyin yediğini nasıl keşfedebilirim? :(


1
"SQL Server RAM kullanımını (min / maks) şimdi 13GB ile sınırlandırdığınızda, bu tekrar olmamalı." SQL 2008 R2 ile bir Win 2008 R2 makinesi çalıştırıyorum ve aynı sorunla karşılaşıyorum.

SQL Server Studio'daki bir ayardır. İyi şanslar!
Django Reinhardt

Yanıtlar:


15

Bu 64 bit sunucu mu - bellek yerel ilkesindeki kilit sayfalarını etkinleştirdiniz mi? SQL muhtemelen belleğinizin geri kalanını tüketiyor Perfmon sayaçlarına bakarsanız, bellek ayırmayı göreceksiniz.

İşte derinlemesine açıklayan bir makale

Sayaçları SQL'de de görüntüleyebilirsiniz

SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    object_Name LIKE '%Buffer Manager%'
    AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                 'Database pages' ) 
UNION SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    counter_name IN ( 'Target Server Memory (KB)',
                      'Total Server Memory (KB)' )

2
Bu her şeyi açıklıyor. Bellek kullanımı "mevcut olanların tümünü kullan" (örn. 2000 TB) ve sayfalar RAM'de kilitliyken, kullanımdayken her şeyin buna erişimi yoktu. Şimdi SQL Server RAM kullanımını (min / maks) 13GB ile sınırlandırdığınızda, bu tekrar olmamalıdır. Artık değişiklikleri izlemek için kullanabileceğim birkaç araç var. Yardımın için teşekkürler!
Django Reinhardt

>> Artık değişiklikleri izlemek için kullanabileceğim birkaç araç daha var - Hangi araçları kullandınız?
David Christiansen

6

Hızlı test: SQL Server'ı yeniden başlatın.
Başka bir hızlı test: IIS'yi yeniden başlatın.

Bunlardan birinin suçlu olup olmadığını veya başka bir yere bakmak zorunda olup olmadığınızı kesin olarak bileceksiniz.


SQL suçlu oldu gibi görünüyor!
Django Reinhardt


1

Aslında bellekle ilgili bir sorun mu yaşıyorsunuz?

Bellek kullanımı gerçekte kurulu olan bellekten daha yüksek olur mu yoksa sadece dolar ve orada kalır mı?

Bellek dolduğunda ancak herhangi bir sorun yaşamıyorsanız, işini yapan bir önbellek; gerçekten ihtiyacınız olduğunda ve ne zaman bellek otomatik olarak gerçekleşir .

Bellek kullanımı fiziksel sınırın üzerine çıkarsa ve sunucu durma noktasına gelirse, biraz bellek sızıntısı yaşarsınız ve kesinlikle hata ayıklamanız gerekir.

"Önbellek" konusundaki bazı ilginç makaleler:

http://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx
http://blogs.msdn.com/ntdebugging/archive/2007/10/10/the-memory -shell-game.aspx
http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx


RAM'i tükettiği için sunucuyu sıfırlamadan herhangi bir Kritik Windows güncellemesi yükleyemedik. Oldukça saçma. Ne kullansaydı geri vermek istemiyordu.
Django Reinhardt


0

İlk şey, daha önce söylendiği gibi, onu yamalamak ve sorunun çözülüp çözülmediğini görmek.

İkincisi, bu işe yaramadıysa, bellek kullanımınıza daha iyi bakmak için İşlem Gezgini'ni kullanın. Görünüm menüsüne gidin, ardından Sütunlar, Belleği İşle'yi seçin ve Özel Bayt, Sanal Boyut ve Çalışma Kümesi Boyutu seçeneklerini kontrol edin. Bakın burada neyin suçlanacağını gösteriyor.

Bu durumda sert bir yaklaşım hizmetleri durdurmayı denemek olacaktır. Örneğin uygulama havuzlarınız ve web bahçeleriniz yanlış yapılandırılmışsa (çok fazla) varsa IIS tam bir bellek domuzu olabilir, bu nedenle bu bir adaydır.

İyi şanslar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.