Sql-Server-2012

CPU 使用率下降期間的連接問題

  • April 25, 2020

我面臨一個具有挑戰性的問題,我想向這個社區尋求建議和可能的答案。

我們正在執行一個專用伺服器:Windows 2008 R2 64 位作業系統,32 GB RAM。

我們的 SQL Server 版本:MS SQL Server 2012 (11.0.3000)。

我們的伺服器會間歇性地下降到 0-5% 的 CPU 使用率,在此期間我們的應用程序很難(或無法)連接到 SQL Server。此外,在數據庫日誌中,我正在閱讀以下內容:

FlushCache:在 130307 毫秒內清理了 12007 個 buf,其中 100094 次寫入(避免了 667 個新的髒 buf),用於 db 7:0

最後一個未完成的目標:4,avgWriteLatency 44

平均吞吐量:0.41 MB/秒,I/O 飽和度:12161,上下文切換 25796

上述日誌每天會寫入數次,但是當我們的 CPU 下降到極低的速率時,會發生其中一些實例。我們這台伺服器的 CPU 通常在工作時間執行在 30-60% 左右,我從未見過它下降到這個水平。

唯一的重大變化是將 RAM 從 16 GB 更新到 32 GB。維護備份有一些更新,但在上午 12 點(太平洋標準時間)觸發。

我可以添加任何進一步的日誌或資訊,並且非常感謝有關此問題的任何幫助。

這聽起來有點像你遇到了一些記憶體壓力。臟緩衝區是記憶體中的頁面,其中有尚未寫入磁碟的更改。通常它們會留在記憶體中,直到各種程序之一清理它們和/或將它們寫入磁碟。

有些事情你會想調查,但只有你在這裡提供的資訊,我不得不問,“你為作業系統保留了多少記憶體?”

您正在執行 64 位版本的 Windows。現在,32 位核心將使用 4 GB 的 RAM。但是,我們發現(困難的方式)64 位版本的作業系統將使用 8 - 12 GB 的 RAM,具體取決於 Sql 伺服器的繁忙程度。我的意思是,您是否對磁碟進行了大量讀寫操作。如果作業系統無法為此分配所需的記憶體(因為 Sql 伺服器已將其全部吸收),您將看到 CPU 被消耗用於額外的上下文切換,它需要將這些緩衝區寫入磁碟。當您將額外的 RAM 添加到伺服器時,您是否重置了 Sql Server Max Memory 設置?當您只有 16 GB 的 RAM 時,您的 Sql 伺服器受到的限制與 Windows 核心一樣多,因此您可能會大量使用虛擬磁碟(硬碟空間)。

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