Sql-Server

SQLServer:緩衝區記憶體命中率是可能的記憶體瓶頸的一個很好的指示?

  • January 8, 2016

我正在尋找一個指示(如果有的話),要麼忽略記憶體瓶頸選項,要麼接受它,或者讓我進一步調查。

例如:

頁面壽命:

SELECT [object_name],
[counter_name],
[cntr_value]
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Manager%'
AND [counter_name] = 'Page life expectancy'

在此處輸入圖像描述

在這種情況下,在我目前的環境中,我有一台具有 8 GB RAM 的伺服器,我會要求管理人員提供更多記憶體。我相信這是一個記憶體瓶頸。

什麼在使用 RAM 將是另一項調查。

下面的這封電子郵件對於辨識可能的記憶體瓶頸是否有效?

我們需要查看 SQLServer:Buffer Cache Hit ratio

如果該比率小於 95%,則伺服器處於記憶體壓力之下

希望這可以幫助,

在此處輸入圖像描述

我們需要查看 SQLServer:Buffer Cache Hit ratio。如果該比率小於 95%,則表明伺服器處於記憶體壓力之下

停止查看緩衝區記憶體命中率來確定記憶體壓力。這是因為使用SQL Server 中的預讀機制,緩衝池中已經有足夠多的頁面來滿足查詢,因此 BCHR 沒有給出關於記憶體壓力的準確數字。您甚至可能會看到 BCHR 在記憶體壓力下甚至不會下降。所有這些都已在Great SQL Server Debate about BCHR中進行了解釋

您發布的 PLE 輸出似乎非常低,但我們不能只使用一個計數器來衡量記憶體壓力。PLE 更多地指示伺服器上的 I/O 活動。由於大量的 I/O 活動,PLE 可能會急劇下降。如果您注意到 Target 和 Total server memory 仍然保持不變。這是個好兆頭。

對於Edition upto 2008 R2. 您可以使用以下櫃檯

  1. SQLServer:緩衝區管理器–CheckpointPages/sec:
  2. SQLServer:緩衝區管理器–記憶體授予掛起:
  3. SQLServer:緩衝區管理器–目標伺服器記憶體:
  4. SQLServer:Buffer Manager–伺服器總記憶體
  5. SQLServer:緩衝區管理器–免費頁面
  6. SQLServer:Buffer Manager–Free List Stall/sec
  7. SQLServer:緩衝區管理器–頁面預期壽命

對於SQL Server 2012 onwards少數緩衝池計數器已被棄用,因此我們必須使用記憶體管理器計數器

  1. SQL Server:記憶體管理器——目標伺服器記憶體 (KB)
  2. SQL Server:記憶體管理器–伺服器總記憶體 (KB)
  3. SQL Server:記憶體管理器 - 可用記憶體 (KB)
  4. SQL Server:記憶體管理器–數據庫記憶體記憶體 (KB)
  5. SQLServer:緩衝區管理器–免費頁面
  6. SQLServer:Buffer Manager–Free List Stall/sec
  7. SQLServer:緩衝區管理器–頁面預期壽命

請注意,如果您有大量磁碟活動,請不要忘記參考與磁碟相關的計數器。創建一個數據收集器集並讓它在系統負載達到峰值時執行 4-5 小時,然後在您的問題中添加數據收集器的快照。然後我們可以確定 SQL Server 是否需要更多記憶體。

考慮到如今的工作負載和作業系統要求,個人認為 8G 的 RAM 有點少。在您的腦海中,您應該始終考慮增加 RAM。

引用自:https://dba.stackexchange.com/questions/125642