Windows 記憶體使用情況 - 是否限制了可用 RAM
任何人都可以通過下面的圖片判斷這台機器是否不自然地限制記憶體使用。記憶體從 32GB 升級到 64GB,用於 SSRS 報告渲染,這是唯一執行的相當大的程序。
SSRS 進入恐慌模式。
- 這裡有一個日誌條目
processing!ReportServer_0-1!a5c!09/19/2019-18:54:28::w WARN: Processing Scalability – Memory Shrink Request Received
- 在 SSRS 上面的日誌條目開始分頁到 RSTempFile 文件之後,就好像它們是虛擬記憶體一樣。沒有這方面的文件,據我所知,它都是內部的,應該清理,但是,文件增長到 40+GB。
根據此處的文件SSRS Memory Configuration,配置文件中缺少 a
WorkingSetMaximum
意味著 SSRS 將根據需要聲明盡可能多的記憶體,但是,它似乎不像 sql server 那樣預先聲明所有記憶體。預設情況下,報表伺服器將 WorkingSetMaximum 設置為電腦上的可用記憶體量。服務啟動時檢測到此值。
此設置不會出現在 RSReportServer.config 文件中,除非您手動添加它。如果希望報表伺服器使用更少的記憶體,可以修改 RSReportServer.config 文件並添加元素和值。有效值範圍從 0 到最大整數。此值以千字節表示。
我在這種恐慌狀態下擷取了盒子,但無法弄清楚。SSRS 配置為使用所有可用記憶體並開始接收高壓記憶體收縮請求並開始分頁到磁碟記憶體文件,但是,**自升級以來,該機器上使用的記憶體從未超過 32%(見下圖)。是否還有其他東西可以人為地限制記憶體?**它是一個虛擬機,但是,我只能從作業系統視圖中查看它,因為我正在解決磁碟空間累積問題。
下面的圖片是在 ssrs excel 渲染器全力以赴時拍攝的。使用的記憶體不應該更高嗎?
(當 ssrs 進入這個階段時,兩個小時的渲染被延長到 20 小時,區別在於使用磁碟作為 VM,我猜。*當渲染請求結束時(通常)ssrs 清理 *一旦渲染會話轉換到此分頁策略,會話永遠不會轉換回來,即使記憶體穩定下來。 * 其他“較小”的請求處理得非常快,並且不參與分頁。)
圖 1:
圖 2:
圖 3:
圖 4:
機器重新啟動後,我們添加了 128GB 的 RAM 並為
WorkingSetMaximum
. SSRS 有 100GB 的記憶體可供使用,但從未超過 84GB。我真的不能說 MS 文件是否錯誤,並且設置WorkingSetMaximum
將允許在渲染執行緒開始映射到文件之前消耗更多記憶體。它也可能是重新啟動。我真的沒有時間確認,但它現在正在渲染大型報告,而無需創建非常大的“頁面”文件。