本文介紹Windows Server 2003/2008系統的ECS執行個體虛擬記憶體不足導致的問題及解決方案。
問題現象
一般而言,Windows Server 2003/2008系統的ECS執行個體缺少虛擬記憶體時會引起很多問題,包含但不限於如下現象:
作業系統運行緩慢,甚至出現宕機,遠端桌面連線執行個體時出現藍色背景介面。
VNC串連執行個體時輸入使用者名稱、密碼後,無法登入到作業系統,卡在歡迎介面。
無法使用遠端桌面連線執行個體,提示分頁檔太小,無法完成操作錯誤資訊。
安裝服務失敗,例如安裝IIS、.NET Framework、FTP提示資源不足,或者安裝進程卡住。
安裝三方服務,例如MySQL服務安裝失敗,或者安裝完畢後無法啟動。
Windows Update無法更新。
系統提示虛擬記憶體不足錯誤資訊,應用程式由於記憶體配置出現異常關閉的情況。
開啟伺服器管理員時,提示MMC在一個嵌入式管理單元檢測到錯誤,請卸載此嵌入式管理單元。
伺服器管理員控制台開啟後自動關閉,提示Microsoft管理主控台已停止工作。
上述問題具體的報錯圖請參見常見虛擬記憶體不足問題現象。
問題原因
出現系統虛擬記憶體耗盡的可能有以下原因。
系統實體記憶體資源不足。
系統未配置Paging File(分頁檔)或者分頁檔配置較小。
系統存在記憶體泄露,即包含其他各類可能的核心資源流失。
在Windows作業系統中,核心以及應用程式是通過虛擬記憶體來進行記憶體管理和使用。由於實體記憶體是有限的資源,Windows引入了Paging File(分頁檔)實現虛擬記憶體。以32位作業系統為例,每個進程有自己2 GiB專用的使用者態虛擬位址空間。當現有的所有進程正在使用的記憶體超出了可用的實體記憶體時,作業系統將頁(4 KiB)的一個或多個虛擬位址空間移動到電腦的硬碟,而後釋放實體記憶體用於其他用途。在Windows系統中,這些被移動出實體記憶體的頁(paged out)儲存在一個或多個檔案(Pagefile.sys分頁檔)分區的根目錄中。
相比於Linux系統,Windows系統由於圖形化介面操作相對容易而受到許多使用者的青睞,在購買ECS執行個體時,需要至少1 GiB記憶體才能選擇Windows系統,1 GiB記憶體對於系統運行來說是足夠了,但是在配置環境、安裝更多軟體後就會出現記憶體不足的情況。
解決方案
步驟一:檢查記憶體不足問題
出現作業系統虛擬記憶體不足問題時,您可以通過檢查系統日誌或工作管理員查看。
方法一:檢查系統日誌
遠端連線Windows Server 2003/2008系統的ECS執行個體。
具體操作,請參見串連方式概述。
開啟運行視窗,輸入eventvwr.exe,單擊確定。
在事件檢視器頁面,選擇Windows日誌>系統。
在系統日誌中找到事件2004,Resource-Exhaustion-Detector的系統事件。
單擊該事件,即可查看虛擬記憶體不足事件的具體資訊。
具體資訊如下所示,表示mysqld.exe佔用虛擬記憶體較多,
方法二:檢查工作管理員
遠端連線Windows Server 2003/2008系統的ECS執行個體。
具體操作,請參見串連方式概述。
按右鍵工作列,選擇啟動工作管理員(k)。
在Windows 工作管理員頁面,單擊效能,查看已提交記憶體與虛擬記憶體的比例。
提交(MB)=已提交虛擬記憶體/虛擬記憶體上限,若提交(MB)為3790/4093,表示已經超過80%,根據微軟官方文檔說明,系統記憶體不足,需要增加更多的記憶體。
步驟二:處理記憶體不足問題
出現記憶體不足問題時,請嘗試以下方案解決問題:
方法一:由於預設系統沒有配置Paging File,請您手動設定Paging File。具體操作,請參見如何配置Windows系統的虛擬記憶體。
方法二:如果配置Paging File後,仍然出現記憶體不足情況,有以下2種可能。
應用程式對記憶體要求高,請升級執行個體規格,調高ECS的實體記憶體,同時相應的增加Paging file。具體操作,請參見升降配方式概述。
請排查請是否有記憶體泄露。
常見虛擬記憶體不足問題現象
虛擬記憶體不足引起的各類異常情況,如下所示。
遠程登入顯示藍屏。
遠程登入提示分頁檔太小。
控制台串連管理終端登入伺服器卡在歡迎頁面。
安裝IIS提示系統資源不足。
安裝.NET Framework、FTP時提示系統資源不足。
Windows 2008一鍵安裝MySQL安裝包時錯誤以及安裝完成後MySQL無法啟動。
其他方法安裝MySQL卡住。
安裝WAMP後,啟動wampmysqld服務時,提示在本機電腦無法啟動wampmysqld服務。
添加角色時,提示分頁檔太小,無法完成操作。
開啟伺服器管理員後自動關閉,提示Microsoft管理主控台已停止工作。
開啟伺服器管理員時,提示MMC在一個嵌入式管理單元檢測到錯誤,請卸載此嵌入式管理單元。
啟動Tomcat時提示Windows-虛擬記憶體不足。
使用VNC遠端連線執行個體時,提示“您的系統虛擬記憶體不足”錯誤資訊。
安裝SQL Server 2008安裝卡住。