Sql-Server

我有記憶問題嗎?

  • January 8, 2016

我執行了sp_Blitz,它指出了一個記憶體問題:

Memory Dangerously Low 伺服器有 32755 MB 的物理記憶體,但只有 235 MB 可用。由於伺服器記憶體不足,存在交換到磁碟的危險,這會降低性能。

伺服器32 GB RAM總共有0-2 MB FreeRAM 200 - 2376 Mb Available,.

@@Version: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 版權所有 (c) Microsoft Corporation Enterprise Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1)

我觀察了一段時間的性能計數器,並在那裡看到了以下值:

Page Faults/s _Total ~ 1.200 Average, Max 18.000, regular Peeks up to 1500.
Page Faults/s sqlserver ~ 380 Average, Max 1600, regular Peeks up to 1000.
Target Server Memory 30006
Total Server Memory 30006
Buffer cache hit ratio  AVG 99,9
Target Pages 3.750 stable
Total Pages 3.750 stable
Free Pages Avg 8300, Max 13.000
Memory Grants Pending 0
% Processor Time _Total Average 15%

使用者連接數一直在 300 左右。

從我的角度來看,其中一些值表明伺服器執行良好,例如 Memory Grants Pending 或 Buffer cache hit ratio。Page Faults/sec 看起來好像有一些記憶體。資源監視器顯示硬故障/秒(這是相同的值)也有規律的高窺視。

所以我想知道為什麼 sp_blitz 會指出這個問題。我是否面臨一個嚴重的問題I NEED MORE MEMORY issue,或者它只是指出分配給 32Gb 物理記憶體的 sql 的 30GB 沒有為 Windows 留下足夠的記憶體?

如果您仔細查看SpBlitz 記憶體建議,它會說它有兩種可能的含義

記憶體過低或最大記憶體過高

在您的情況下,查看您共享的 perfmon 計數器輸出似乎不是記憶體壓力。所以我們只剩下max server memory is configured incorrectly. 這似乎是真的,在具有 32 G 記憶體的系統上,您已將 30 G 分配給 SQL Server,這肯定會讓作業系統為更多記憶體而戰。

在這種情況下,作業系統將開始將 SQL Server 程序分頁到磁碟,使其非常慢。或者,如果記憶體中存在用於 SQL Server 服務帳戶的鎖定頁面,作業系統程序將被分頁到磁碟。這兩種情況對 SQL Server 和 OS 都非常不利。

我建議你從這個 SE 執行緒中獲取幫助來計算最大伺服器記憶體的適當值。我已經在這個執行緒上給出了答案,它要求使用者幫助perfmon counters達到一個合理的價值。

你可以從給予27 G to SQL Server和離開開始5G for OS。然後使用 SE 執行緒中提到的 perfmon 計數器來達到合理的值。

編輯:我忘了問你申請 SQL Server 2008 R2 SP3,目前 SQL Server 是在 SP2 上。如果您需要擴展支持,這是必須的。在任何情況下,為了更安全,您應該始終確保 SQL Server 已修補到最新的服務包。

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