Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bellek kullanımının tipik aralıklar içinde olduğunu onaylamak için sql server örneğini düzenli aralıklarla izleyin.
SQL Server en fazla belleği yapılandırma
Varsayılan olarak, bir SQL Server örneği zaman içinde sunucudaki kullanılabilir Windows işletim sistemi belleğinin çoğunu tüketebilir. Bellek alındıktan sonra bellek baskısı algılanmadığı sürece serbest bırakılmaz. Bu tasarım gereğidir ve SQL Server işleminde bellek sızıntısı olduğunu göstermez. SQL Server'ın kullanımlarının çoğunda almasına izin verilen bellek miktarını sınırlamak için en fazla sunucu belleği seçeneğini kullanın. Daha fazla bilgi için bkz . Bellek Yönetimi Mimarisi Kılavuzu.
Linux üzerinde SQL Server'da, mssql-conf aracı ve memory.memorylimitmb ayarıyla belleksınırını ayarlayın.
İşletim sistemi belleğini izleme
Yetersiz bellek durumunu izlemek için aşağıdaki Windows sunucu sayaçlarını kullanın. Birçok işletim sistemi bellek sayacı, sys.dm_os_process_memory vesys.dm_os_sys_memory dinamik yönetim görünümleri aracılığıyla sorgulanabilir.
Bellek: Kullanılabilir Bayt sayısı Bu sayaç, işlemler tarafından kullanılmak üzere şu anda kaç bayt belleğin kullanılabilir olduğunu gösterir. Kullanılabilir Bayt sayısı sayacının düşük değerleri, işletim sistemi belleğinde genel bir yetersizlik olduğunu gösterebilir. Bu değer sys.dm_os_sys_memory.available_physical_memory_kb kullanılarak T-SQL aracılığıyla sorgulanabilir.
Bellek: Sayfalar/sn Bu sayaç, sabit sayfa hataları nedeniyle diskten alınan veya sayfa hataları nedeniyle çalışma kümesindeki boş alan için diske yazılan sayfa sayısını gösterir. Sayfalar/sn sayacı için yüksek bir oran aşırı sayfalama olduğunu gösterebilir.
Bellek: Sayfa Hataları/sn Bu sayaç, sistem işlemleri de dahil olmak üzere tüm işlemler için Sayfa Hataları oranını gösterir. Bilgisayarın yeterli kullanılabilir belleği olsa bile diske disk belleği (ve dolayısıyla sayfa hataları) düşük ancak sıfır olmayan bir hız tipiktir. Microsoft Windows Sanal Bellek Yöneticisi (VMM), SQL Server'dan ve diğer işlemlerden sayfaları alır ve bu işlemlerin çalışma kümesi boyutlarını kırpır. Bu VMM etkinliği sayfa hatalarına neden olma eğilimindedir.
İşlem: Sayfa Hataları/sn Bu sayaç, belirli bir kullanıcı işlemi için Sayfa Hatalarının oranını gösterir. İzleme İşlemi: Disk etkinliğinin SQL Server tarafından disk belleğinin neden olup olmadığını belirlemek için Sayfa Hataları/sn . Aşırı disk belleğinin nedeninin SQL Server mı yoksa başka bir işlem mi olduğunu belirlemek için SQL Server işlem örneği için İşlem: Sayfa Hataları/sn sayacını izleyin.
Aşırı disk belleğini çözme hakkında daha fazla bilgi için işletim sistemi belgelerine bakın.
SQL Server tarafından kullanılan belleği yalıtma
SQL Server bellek kullanımını izlemek için aşağıdaki SQL Server Nesnelerini Kullan'ı kullanın. Birçok SQL Server nesne sayacı, sys.dm_os_performance_counters veyasys.dm_os_process_memory dinamik yönetim görünümleri aracılığıyla sorgulanabilir.
Varsayılan olarak, SQL Server kullanılabilir sistem kaynaklarına göre bellek gereksinimlerini dinamik olarak yönetir. SQL Server'ın daha fazla belleğe ihtiyacı varsa, boş fiziksel belleğin kullanılabilir olup olmadığını belirlemek için işletim sistemini sorgular ve kullanılabilir belleği kullanır. İşletim sistemi için düşük boş bellek varsa, SQL Server düşük bellek koşulu azaltılana kadar veya SQL Server en düşük sunucu bellek sınırına ulaşana kadar belleği işletim sistemine geri bırakır. Ancak, en düşük sunucu belleğini ve en fazla sunucu bellek sunucusu yapılandırma seçeneklerini kullanarak belleği dinamik olarak kullanma seçeneğini geçersiz kılabilirsiniz. Daha fazla bilgi için bkz . Sunucu belleği yapılandırma seçenekleri.
SQL Server'ın kullandığı bellek miktarını izlemek için aşağıdaki performans sayaçlarını inceleyin:
SQL Server: Bellek Yöneticisi: Toplam Sunucu Belleği (KB) Bu sayaç, SQL Server bellek yöneticisinin şu anda SQL Server'a taahhüt ettiği işletim sistemi belleği miktarını gösterir. Gerçek etkinliğin gerektirdiği şekilde bu sayın artması beklenir ve SQL Server başlatma işleminden sonra artacaktır. committed_kb sütununu gözlemleyerek sys.dm_os_sys_info dinamik yönetim görünümünü kullanarak bu sayacı sorgula.
SQL Server: Bellek Yöneticisi: Hedef Sunucu Belleği (KB) Bu sayaç, SQL Server'ın son iş yüküne göre kullanabileceği ideal bellek miktarını gösterir. SQL Server'ın istenen bellek miktarının ayrılıp ayrılmadığını belirlemek için tipik bir işlem süresinden sonra Toplam Sunucu Belleği ile karşılaştırın. Tipik işlemden sonra Toplam Sunucu Belleği ve Hedef Sunucu Belleği benzer olmalıdır. Toplam Sunucu BelleğiHedef Sunucu Belleğinden önemli ölçüde düşükse, SQL Server örneği bellek baskısı yaşıyor olabilir. SQL Server başlatıldıktan sonraki bir süre boyunca, Toplam Sunucu Belleği arttıkça ToplamSunucu Belleğinin Hedef Sunucu Belleğinden daha düşük olması beklenir. committed_target_kb sütununu gözlemleyerek sys.dm_os_sys_info dinamik yönetim görünümünü kullanarak bu sayacı sorgula. Belleği yapılandırma hakkında daha fazla bilgi ve en iyi yöntemler için bkz . Sunucu belleği yapılandırma seçenekleri.
İşlem: Çalışma Kümesi Bu sayaç, işletim sistemine göre şu anda bir işlem tarafından kullanılan fiziksel bellek miktarını gösterir. Bu sayacın sqlservr.exe örneğini inceleyin. Sys.dm_os_process_memory dinamik yönetim görünümünü kullanarak bu sayacı sorgulayarak sütunu gözlemleyebilirsiniz
physical_memory_in_use_kb.İşlem: Özel Baytlar Bu sayaç, bir işlemin işletim sisteminde kendi kullanımı için istediği bellek miktarını gösterir. Bu sayacın sqlservr.exe örneğini inceleyin. Bu sayaç, en fazla sunucu belleği seçeneğiyle sınırlı olmayanlar da dahil olmak üzere sqlservr.exetarafından istenen tüm bellek ayırmalarını içerdiğinden, bu sayaç maksimum sunucu belleği seçeneğinden daha büyük değerleri raporlayabilir.
SQL Server: Arabellek Yöneticisi: Veritabanı Sayfaları Bu sayaç, veritabanı içeriğine sahip arabellek havuzundaki sayfa sayısını gösterir. SQL Server işlemi içinde başka bir disk belleği olmayan havuz belleği içermez. sys.dm_os_performance_counters dinamik yönetim görünümünü kullanarak bu sayacı sorgula.
SQL Server: Arabellek Yöneticisi: Arabellek Önbelleği İsabet Oranı Bu sayaç SQL Server'a özgüdür. 90 veya daha yüksek bir oran arzu edilir. 90'dan büyük bir değer, tüm veri isteklerinin yüzde 90'dan fazlasının diskten okumak zorunda kalmadan bellekteki veri önbelleğinden karşılandığını gösterir. SQL Server Arabellek Yöneticisi hakkında daha fazla bilgi için bkz. SQL Server, Buffer Manager nesnesi. sys.dm_os_performance_counters dinamik yönetim görünümünü kullanarak bu sayacı sorgula.
SQL Server: Arabellek Yöneticisi: Sayfa ömrü beklentisi Bu sayaç, en eski sayfanın arabellek havuzunda kaldığı süreyi saniye olarak ölçer. NUMA mimarisi kullanan sistemler için bu, tüm NUMA düğümlerinin ortalamasıdır. Daha yüksek, büyüyen bir değer en iyisidir. Ani bir düşüş arabellek havuzunun içinde ve dışında önemli bir veri değişim sıklığı olduğunu gösterir ve iş yükünün bellekte bulunan verilerden tam olarak yararlanalamadığını gösterir. Her NUMA düğümü, arabellek havuzunun kendi düğümüne sahiptir. Birden fazla NUMA düğümü olan sunucularda SQL Server: Arabellek Düğümü: Sayfa ömrü beklentisini kullanarak her arabellek havuzu düğümünü sayfa ömrü beklentisini görüntüleyin. sys.dm_os_performance_counters dinamik yönetim görünümünü kullanarak bu sayacı sorgula.
Örnekler
Geçerli bellek ayırmayı belirleme
Aşağıdaki sorgular şu anda ayrılmış bellek hakkında bilgi döndürür.
SELECT
(total_physical_memory_kb/1024) AS Total_OS_Memory_MB,
(available_physical_memory_kb/1024) AS Available_OS_Memory_MB
FROM sys.dm_os_sys_memory;
SELECT
(physical_memory_in_use_kb/1024) AS Memory_used_by_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_by_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;
Geçerli SQL Server bellek kullanımını belirleme
Aşağıdaki sorgu geçerli SQL Server bellek kullanımı hakkında bilgi döndürür.
SELECT
sqlserver_start_time,
(committed_kb/1024) AS Total_Server_Memory_MB,
(committed_target_kb/1024) AS Target_Server_Memory_MB
FROM sys.dm_os_sys_info;
Sayfa ömrü beklentisini belirleme
Aşağıdaki sorgu, SQL Server örneğinin geçerli sayfa ömrü beklentisi değerini genel arabellek yöneticisi düzeyinde ve her NUMA düğümü düzeyinde gözlemlemek için kullanırsys.dm_os_performance_counters.
SELECT
CASE instance_name WHEN '' THEN 'Overall' ELSE instance_name END AS NUMA_Node, cntr_value AS PLE_s
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page life expectancy';
İlgili içerik
- Kaynak Kullanımını İzleme (Performans İzleyicisi)
- sys.dm_os_sys_memory (Transact-SQL)
- sys.dm_os_process_memory (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)
- sys.dm_os_performance_counters (Transact-SQL)
- SQL Server, Memory Manager nesnesi
- SQL Server, Arabellek Yöneticisi nesnesi
- Sunucu belleği yapılandırma seçenekleri
- Bellek yönetimi mimarisi rehberi