问题描述
一般而言,当系统缺少虚拟内存时会引起很多问题,包含但不限于如下现象:
- 操作系统运行缓慢,甚至出现宕机,蓝色背景界面的情况。
- 用户本地控制台输入用户名、密码后,无法登录到操作系统,卡在欢迎界面。
- 无法远程桌面,提示”页面文件太小,无法完成操作”。
- 安装服务失败,例如安装IIS、.NET Framework、FTP提示“资源不足”,或者安装进程卡住。
- 安装三方服务,例如MySQL服务安装失败,或者安装完毕后无法启动。
- Windows Update无法更新。
- 系统抛出”虚拟内存不足”的报错,应用程序由于内存分配出现异常关闭的情况。
- 打开服务器管理器提示“MMC在一个管理单元检测到错误”。
- 服务器管理器控制台打开后自动关闭。
问题原因
出现上述系统虚拟内存耗尽的情况有如下可能性。
- 系统物理内存资源不足。
- 系统未配置Paging File(页面文件)或者页面文件配置较小。
- 系统存在内存泄露,即包含其它各类可能的核心资源泄露。
注意:某些情况下,您可能发现系统仍然显示有可用的物理内存,但是仍然提示虚拟内存不足,这可能是系统Section资源消耗尽导致。详情请参见微软官方文档检查系统页面交换文件的使用。
详细信息
在Windows操作系统中,内核以及应用程序是通过虚拟内存来进行内存管理和使用。微软官方文章简单介绍了虚拟内存的概念。由于物理内存是有限的资源,Windows引入了Paging File(页面文件)实现虚拟内存。以32位操作系统为例,每个进程有自己2GiB 专用的用户态虚拟地址空间。当现有的所有进程正在使用的内存超出了可用的物理内存时,操作系统将页(4KiB片)的一个或多个虚拟地址空间移动到计算机的硬盘,而后释放物理内存用于其他用途。在Windows系统中,这些被移动出物理内存的页(paged out)存储在一个或多个文件(Pagefile.sys页面文件)分区的根目录中。
环境检查
一般而言,出现操作系统虚拟内存不足时,有如下2种方法检查问题。
方法一:检查系统日志
- 打开运行窗口,输入eventvwr.exe,打开事件查看器,在系统日志中发现”Resource-Exhaustion-Detector”出现2004错误。

- Windows成功诊断出虚拟内存不足的情况。部分程序使用了大部分虚拟内存,例如mysqld.exe (1320)使用了2801614848字节,svchost.exe(808)使用了422494208字节,tomcat8.exe(2744)使用了336797696字节。
方法二:检查任务管理器
打开任务管理器,单击性能,查看已提交内存与虚拟内存的比例。如下图所示,提交(MB)等于已提交虚拟内存/虚拟内存上限,即图中3790/4093,已经超过80%,而根据微软官方文档说明,系统内存不足,需要增加更多的内存。
解决方法
在这种情况下,请尝试以下方案解决问题:
- 方法一:由于默认系统没有配置Paging File,请您手工配置Paging File。
- 方法二:如果配置Paging File后,仍然出现内存不足情况,有以下可能。
- 请排查请检查是否有内存泄露,具体请参考如下微软官方博客的排查方法。
- 请排查请检查是否有内存泄露,具体请参考如下微软官方博客的排查方法。
更多信息
虚拟内存不足引起的各类异常情况,如下所示。
- 远程登录显示蓝屏。

- 远程登录提示页面文件太小。

- 控制台连接管理终端登录服务器卡在欢迎页面。

- 安装IIS提示资源不足。

- 安装.NET Framework、FTP时提示系统资源不足。

- Windows 2008一键安装MySQL安装包时错误以及安装完成后MySQL无法启动。

- 其他方法安装MySQL卡住。

- 安装WAMP后,不能启动wampmysqld服务。

- 添加角色时提示页面文件太小,无法完成操作。

- 服务器管理器控制台打开后自动关闭。

- 打开服务器管理器提示“MMC在一个管理单元检测到错误”。

- 启动Tomcat提示虚拟内存不足。

- 连接管理终端出现错误提示框“您的系统虚拟内存不足”。

- 安装SQL Server 2008安装卡住。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




