阿里云Windows虛擬內存不足問題的處理方法
在 Windows 操作系統(tǒng)中,內核以及應用程序是通過虛擬內存來進行內存管理和使用。微軟官方文章簡單介紹了虛擬內存的概念。請參考:什么是虛擬內存?
由于物理內存是有限的資源,Windows 引入了 Paging File (頁面文件)實現(xiàn)虛擬內存。以32位操作系統(tǒng)為例,每個進程有自己 2 GiB 專用的用戶態(tài)虛擬地址空間。當現(xiàn)有的所有進程正在使用的內存超出了可用的 物理內存 時,操作系統(tǒng)將頁 (4 KiB 片) 的一個或多個虛擬地址空間移動到計算機的硬盤,而后釋放物理內存用于其他用途。在 Windows 系統(tǒng)中,這些”paged out”被移動出物理內存的頁存儲在一個或多個文件 (Pagefile.sys 頁面文件) 分區(qū)的根目錄中的。
相比于Linux系統(tǒng),Windows系統(tǒng)由于圖形化界面操作相對容易而受到許多用戶的青睞,在購買ECS實例時,需要至少1G內存才能選擇Windows系統(tǒng),于是乎大部分用戶就選擇1G內存,這1G內存對于系統(tǒng)運行來說是足夠了,但是再配置環(huán)境、安裝更多軟件后就會出現(xiàn)內存不足的情況。
問題現(xiàn)象
一般而言,當系統(tǒng)缺少虛擬內存會引起很多問題,包含但不限于:
- 操作系統(tǒng)運行緩慢,甚至出現(xiàn)Hang(夯機),藍色背景界面的情況
- 用戶本地控制臺輸入用戶名、密碼后,無法登錄到操作系統(tǒng),卡在歡迎界面
- 無法遠程桌面,提示”頁面文件太小, 無法完成操作”
- 安裝服務失敗,例如安裝IIS、.NET Framework、FTP提示”資源不足”,或者安裝進程卡住
- 安裝三方服務,例如MYSQL服務安裝失敗,或者安裝完畢后無法啟動
- Windows Update無法更新
- 系統(tǒng)拋出”虛擬內存不足”的報錯,應用程序由于內存分配出現(xiàn)異常關閉的情況。
- 打開服務器管理器提示“MMC在一個管理單元檢測到錯誤
- 服務器管理器控制臺打開后自動關閉
上述問題具體的報錯圖請參考附錄。
診斷方法
一般而言,出現(xiàn)操作系統(tǒng)虛擬內存不足,有2種方法檢查
方法1: 檢查系統(tǒng)日志
打開事件查看器(運行->eventvwr), 在系統(tǒng)日志中發(fā)現(xiàn)”Resource-Exhaustion-Detector”報出的2004 錯誤,例如:
Windows 成功診斷出虛擬內存不足的情況。以下程序使用了大部分虛擬內存: mysqld.exe (1320) 使用了 2801614848 字節(jié);svchost.exe (808) 使用了 422494208 字節(jié);tomcat8.exe (2744) 使用了 336797696 字節(jié)。
方法2: 檢查任務管理器
任務管理器中發(fā)現(xiàn)檢查已提交內存與虛擬內存的比例。
%Commited Bytes In Use 等于已提交虛擬內存/虛擬內存上限, 該圖中 (3790/4093) 已經超過80%, 而根據微軟官方說明:
Memory\% Committed Bytes in Use This measures the ratio of Committed Bytes to the Commit Limit—in other words, the amount of virtual memory in use. This indicates insufficient memory if the number is greater than 80 percent. The obvious solution for this is to add more memory.
https://technet.microsoft.com/en-us/magazine/2008.08.pulse.aspx
可能原因
出現(xiàn)上述系統(tǒng)虛擬內存耗盡的情況有如下可能性:
- 系統(tǒng)物理內存資源不足
- 系統(tǒng)未配置paging file (頁面文件)或者頁面文件配置較小
- 系統(tǒng)存在內存泄露(包含其它各類可能的核心資源的泄露)
例如,某些情況下,正如上圖,您可能發(fā)現(xiàn)系統(tǒng)仍然顯示有可用的物理內存,但是仍然提示虛擬內存不足,這可能是系統(tǒng)Section資源消耗盡導致。微軟官方Blog文章 檢查系統(tǒng)頁面交換文件的使用 也提到類似的情況。
跟進方案
在這種情況下,請嘗試如下方案:
方案1: 由于默認ECS沒有配置Paging File,請您手工配置paging file,按照如下步驟進行。
http://help.aliyun.com/knowledge_detail/5988580.html?spm=5176.7114037.1996646101.1.PYPA9B&pos=1
方案2: 如果配置Paging File后,仍然出現(xiàn)內存不足情況,有2種可能。
- 應用程序對內存要求高,請增大實例規(guī)格,調高ECS的物理內存,同時相應的增加paging file。
- 請排查請檢查是否有內存泄露, 具體請參考微軟官方博客的排查方法:
閱讀須知
本文僅供用戶使用 ECS Windows 時參考,文中引用的微軟官方鏈接,版權歸屬微軟。請注意文章適用的操作系統(tǒng)范圍,以及微軟 Windows 產品迭代或者文檔未及時更新可能帶來的問題,阿里云官方不對引用的微軟官方鏈接內容負責。
如果您對文檔內容有疑問或認為文檔內容有誤,請及時通過文檔下方的評價板塊反饋給我們,我們將酌情改進修正。
如果問題還未解決,請聯(lián)系售后技術支持。
附錄
虛擬內存不足引起的各類異常情況,請參考如下圖示。
1. 遠程登錄顯示藍屏
2. 遠程登錄提示頁面文件太小
3. 控制臺連接管理終端登錄服務器卡在歡迎頁面
4. 安裝IIS提示資源不足
5. 安裝.NET Framework、FTP時提示系統(tǒng)資源不足
6. Windows 2008一鍵安裝包安裝Mysql時錯誤以及安裝完成后mysql無法啟動
7. 其他方法安裝Mysql卡住
8. 安裝wamp后,不能啟動wampmysqld服務
9. 添加角色時提示頁面文件太小,無法完成操作
10. 服務器管理器控制臺打開后自動關閉
11. 打開服務器管理器提示“MMC在一個管理單元檢測到錯誤”
12. 啟動Tomcat提示虛擬內存不足
13. 連接管理終端出現(xiàn)錯誤提示框“您的系統(tǒng)虛擬內存不足”
14. 安裝SQL Server 2008卡住
如有其它疑問,即可咨詢阿里云代理商-北京優(yōu)勝智連小編,會為你免費提供24小時不間斷的技術和售后服務。