如何强制Windows操作系统在AWS AMI启动实例时仅在C:\盘创建页面文件
如何强制AWS EC2 Windows实例仅在C:\创建页面文件
绝对可以解决这个问题!核心思路是提前锁定Windows的虚拟内存配置,不让系统自动选择大空间磁盘创建pagefile.sys。下面是两种适配AWS场景的实用方案:
方案一:修改源AMI(推荐用于批量复用)
如果你的大多数应用都依赖同一个AMI,直接修改源AMI的注册表配置,就能一劳永逸解决问题:
- 启动当前正在使用的AMI实例,登录Windows系统。
- 打开注册表编辑器(按下
Win+R,输入regedit回车),定位到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management - 修改两个关键键值:
- 找到
AutomaticManagedPagefile,把数值改为0(禁用系统自动管理虚拟内存)。 - 找到
PagingFiles(多字符串值类型),删除原有条目,添加C:\pagefile.sys 2048 16384(这里2048是初始大小2GB,16384是最大16GB,可根据你的实例内存规格调整)。
- 找到
- 正常关机实例,在AWS控制台创建新的自定义AMI。后续从这个新AMI启动的实例,都会默认只在C:\创建页面文件。
方案二:使用EC2用户数据(灵活适配不同场景)
如果不想修改源AMI,可以通过实例启动时的用户数据自动配置虚拟内存,步骤如下:
- 在启动EC2实例时,打开「高级详情」的用户数据设置,选择「作为文本输入」,粘贴以下PowerShell脚本:
<# 设置虚拟内存仅在C盘 #> # 禁用系统自动管理 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "AutomaticManagedPagefile" -Value 0 # 指定C盘的页面文件大小(按需调整数值) Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "PagingFiles" -Value "C:\pagefile.sys 2048 16384" # 重启使设置生效(如果你的盘符修改脚本需要立即执行,可把重启命令放在盘符修改脚本之前) Restart-Computer -Force
- 确保你的盘符修改脚本在系统重启后执行(比如放在启动文件夹或任务计划里),此时DB盘上不会有
pagefile.sys,就能直接修改盘符了。
注意事项
- 页面文件的大小建议根据实例内存调整:一般初始大小设为内存的1倍,最大设为内存的1.5-2倍(大内存实例可适当降低比例)。
- 如果使用用户数据,默认EC2 Windows实例的管理员账号已具备执行注册表修改和重启操作的权限,无需额外配置。
内容的提问来源于stack exchange,提问作者anand
相关产品推荐
相关产品推荐

