當您在使用Windows執行個體時遇到記憶體使用量率過高,導致執行個體運行卡頓等問題時,您可以通過排查以定位記憶體使用量率過高的原因,本文為您介紹上述問題的排查方法及解決方案。
本文檔以Windows 2022為例,不同版本的作業系統介面略有差異,請您以目標作業系統的實際介面為準。
問題現象
使用Windows系統的ECS執行個體時,出現系統卡頓、內部服務響應慢等問題。在通過ECS控制台查看執行個體記憶體監控時,發現記憶體使用量率過高或收到記憶體使用量率過高的警示資訊。
可能原因
引起記憶體使用量率過高的常見原因如下:
異常的進程或服務佔用大量記憶體,導致記憶體使用量率過高。
業務程式的業務流量過大,執行個體的實體記憶體不足以支撐業務開展所需的記憶體用量。
排查步驟
要定位記憶體使用量率過高的問題,您可以參見下述操作步驟進行問題的排查定位。
查看執行個體總記憶體使用量率
您可以使用Windows系統中預設安裝的工作管理員應用查看記憶體使用量情況。
在Windows案頭左下角的搜尋方塊中,輸入工作管理員,並按
Enter鍵開啟工作管理員程式。在工作管理員介面中單擊效能頁簽,然後單擊左側記憶體,查看記憶體使用量情況。

查看進程佔用的記憶體詳情
您可以使用Windows系統中預設安裝的資源監視器應用查看記憶體等資源的使用方式,該應用支援查看單個進程的記憶體使用量情況。
在Windows案頭左下角的搜尋方塊中,輸入資源監視器,並按
Enter鍵開啟資源監視器程式。在資源監視器介面中單擊記憶體頁簽,以查看各個進程的記憶體使用量情況。對於各個進程,可以通過查看提交(KB)記憶體的大小,以確定消耗記憶體較多的進程,然後根據您的實際業務,判斷此進程是否正常。

實體記憶體的使用包含如下幾個部分,各部分的相關說明如下。
為硬體保留的記憶體:系統為硬體裝置預留的一部分實體記憶體。這些裝置包括 GPU(圖形處理器)、音效卡、網卡、藍芽模組等。被保留的記憶體無法被普通應用程式直接使用,而是專門用於支援硬體裝置的正常運行。
正在使用記憶體:由進程、驅動程式、作業系統使用的記憶體。
已修改記憶體:內容必須寫入磁碟才能用於其他用途的記憶體。
備用記憶體:包含未使用的快取資料和代碼的記憶體。
可用記憶體:不包含任何有效資料,當進程、驅動程式、作業系統需要申請更多記憶體時優先使用的記憶體。
緩衝:當檔案被開啟時,系統會將檔案儲存在緩衝中,方便下次快速讀寫。Windows 2008 R2及以後版本,對該緩衝的使用做了限制,有一部分實體記憶體不會被緩衝使用,保證系統即使在緩衝過大的時候,也有可用實體記憶體,滿足程式使用需求。
查看系統進程佔用的記憶體詳情
如果通過工作管理員及效能監控器沒有找到佔用記憶體較多的進程資訊,但執行個體記憶體使用量率很高,那麼很有可能是系統進程的記憶體佔用過高,此時,您可以使用微軟官方提供的RAMMap工具進一步分析問題,該工具支援查看系統進程在 RAM 中緩衝了多少檔案資料,以及核心和裝置驅動程式使用了多少 RAM等功能。
下載並解壓RAMMap工具。
訪問微軟官網下載RAMMap工具,下載後對壓縮檔進行解壓。
雙擊開啟RAMMap工具並查看記憶體佔用詳情。

RAMMap工具的選項卡會以不同方式顯示資源使用資訊,每個選項卡的顯示方式說明如下。
使用計數:按類型和分頁列表列出的使用方式摘要。
進程:進程工作集大小。
優先順序摘要:確定備用列表大小優先順序。
物理頁:所有實體記憶體的每頁使用量。
物理範圍:實體記憶體地址。
檔案摘要:RAM 中的檔案資料(按檔案顯示)。
檔案詳細資料:按檔案顯示的各個物理頁。
處理記憶體使用量率高的問題
記憶體佔用較多問題的原因及解決方案如下。
問題現象 | 原因 | 解決方案 |
單個使用者程式或進程長時間佔用大量記憶體 | 異常程式,進程佔用過多記憶體。 | 通過在工作管理員或者資源監視器中定位到記憶體佔用較多的程式,在該程式上右鍵點擊,並選擇結束程式即可。 警告 在您結束進程前,請務必確保您瞭解該進程的相關資訊,避免因誤操作導致您的業務中斷。 |
| 當前執行個體的服務正常運行所需記憶體容量大於執行個體的實體記憶體量。 | 建議您評估升級執行個體規格,以增加執行個體的實體記憶體。相關操作,請參見修改執行個體規格。 |
單個程式或進程偶發過高記憶體佔用,但期間較短,且發生頻率較低。 | 程式或進程中存在瞬時流量或定時任務,導致短時間內消耗大量記憶體。 |
|
相關文檔
關於處理Linux系統記憶體使用量率高的問題,請參見如何處理Linux系統記憶體使用量率過高問題。
可利用微軟的進程資源管理員Process Explorer,擷取更詳細的進程記憶體佔用情況。
使用微軟官方工具Poolmon,可按Pool Tag追蹤並定位核心記憶體池的消耗來源。