資源監視器正在執行 SQL Server 的伺服器上進入非傳送的條件

適用於: Microsoft SQL Server

徵狀


在伺服器上執行的 Microsoft SQL Server 2008年 (或較新版本),資源監視器工作會記錄下列訊息每隔 5 秒:
Date_And_Time伺服器使用 'dbghelp.dll' '4.0.5' 版Date_And_Time伺服器 * * 傾印執行緒: spid = 0,PSS = 0x0000000000000000,EC = 0X0000000000000000Date_And_Time使用者 'OPENTEXT\sqlcrmusr' 已成功登入登入。連接: 受信任。[用戶端: IP_Address]Date_And_Time spid78 錯誤: 4014,高的嚴重性等級: 20 日的狀態: 2。從網路讀取輸入資料流時,發生Date_And_Time spid78 A 嚴重錯誤。工作階段將終止。Date_And_Time伺服器 * * * 堆疊傾印被傳送到磁碟機: \MSSQL2005\LOG\SQLDump#.txtDate_And_Time伺服器 * * * *Date_And_Time伺服器 *Date_And_Time伺服器 * 開始堆疊傾印:Date_And_Time伺服器 * Date_And_Time spid 0Date_And_Time伺服器 *Date_And_Time伺服器 * 非傳送資源監視器Date_And_Time伺服器 *Date_And_Time伺服器 * * * *Date_And_Time伺服器 *---Date_And_Time伺服器 * 短堆疊傾印Date_And_Time傾印的伺服器堆疊簽章是 0x000000000000005CDate_And_Time、 伺服器、 未知、 資源監視器 (0x9b0) 工作者 0x0000000003A2C1C0 似乎非傳送有關Node_ #。釋放的記憶體: 0 KB。預估 CPU 用於: 核心 0 msnull 使用者 0 msnull 間隔: Interval_value

原因


從開始 SQL Server 2008年,資源監視器工作定期醒機接聽,並告知 「 訂閱者 」 的 [低]、 [高] 或 [穩定的記憶體事件。這些記憶體事件可能是 SQL Server 的外部 (全系統通知從作業系統) 或 SQL Server 內部 (全處理序通知從緩衝集區)。這類的通知發生時,各種記憶體消費者會修剪其記憶體使用量。附註消費者可以是快取存放區、 使用者存放區,或物件存放區的記憶體職員。如果某些記憶體消費者使用大量的記憶體,消費者執行調整可能要花很長的時間才能完成。執行每個 5seconds 排程器監視器工作中,會檢查是否資源監視器已經從一個取用者到另一個在過去的 60 秒內。當排程器監視器偵測到的資源監視器沒有移動過去的消費者 60 秒時,排程監視器將視此為資源監視器進入非傳送的狀態,並將排程監視器然後記錄的錯誤訊息< 徵狀=""> 一節所述。
注意從 SQL Server 2019年開始,60 秒間隔會增加為 120 秒,以減少這些診斷通知的頻率及記憶體傾印檔案的產生。如果資源監視器會釋放記憶體的速率是少於 2 MB 每隔 5 秒,也會引發這些訊息。這些訊息是只表示,資源監視器是忙線中,清除 [大型的消費者,而且這些訊息不一定表示資源監視器問題本身。

解決方案


啟動 Microsoft SQL Server 2008 Service Pack 2,而 Microsoft SQL Server 2008 R2 Service Pack 1,非傳送資源監視器訊息已擴充來輕鬆地找出記憶體的索賠要求,導致非傳送的條件。新的郵件將如下所示:
資源監視器 (0x9b0) 工作者 0x0000000003A2C1C0 似乎非傳送有關節點中Node_ #。釋放的記憶體: 0 KB。上次等候: lastwaittype。上次的索賠要求: 輸入clerk_type,然後命名為clerk_name。預估 CPU 用於: 核心 0 毫秒,使用者 0 毫秒,間隔: Interval_value
這封郵件中所使用的各種欄位的說明如下:
  • 釋放記憶體: 這是多少記憶體會釋出資源監視器所指定的間隔為測量中的千位元組為單位。如果此時釋出記憶體的速率沒有超過 2 MB 每隔 5 秒,排程器監視器會偵測此條件為非傳送的條件。
  • 上次等候: 這是最後一個等待類型的資源監視器的執行緒。您可以使用此欄位與預估 CPU 使用的欄位,來識別是否資源監視器執行緒正在執行,或等候間隔的重要部分。
  • 最後的索賠要求: 這是型別和非傳送條件發生時,其記憶體已修剪的記憶體索賠要求的名稱。
  • 預估 CPU 使用: 這是所使用的資源監視器以毫秒為測量的核心和使用者時間。您可以和其他欄位一起使用這個驗證資源監視器對指定的間隔期間的進度。
  • 間隔: 這是最後的索賠要求前收到通知,以毫秒為測量後所經過的時間。
您可以使用此訊息,除了從訊息的時間的 RING_BUFFER_RESOURCE_MONITOR 項目來識別記憶體不足告知的來源。如需有關如何解譯 RING_BUFFER_RESOURCE 監視器的詳細資訊。請造訪下列 MSDN 部落格:如需有關如何 SQL Server 會接聽和回應記憶體通知和關於資源監視器工作和移難排解在 SQL Server 中記憶體相關的效能問題的詳細資訊,請參閱下列 MSDN 部落格文章:

狀態


Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。這個問題已經先獲得修正 SQL Server 2008 Service Pack 2 的 2008.This 問題已經先獲得修正 SQL Server 2008 R2 Service Pack 1 中的 SQL Server 2008 R2 的 SQL Server。