今儿本来想给新写的程序跑个压力测试,结果刚把数据量调大就崩了。任务管理器里看内存占用才1.8G,明明机器有16G内存,这就很邪门了。我就琢磨着打开资源监视器往深里扒拉,发现虚拟内存那栏标红飙到5G多——好家伙,原来问题藏在这儿。
开着资源监视器反复测试,发现三个关键点:
这验证了我的猜想:程序崩掉跟物理内存关系不大,而是虚拟地址空间塞爆了。
翻了三本操作系统书才搞懂门道:
重点来了:系统会给虚拟空间设天花板。像Windows默认给程序分配2GB用户空间。我在注册表里翻到这条关键参数:HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management 里的SystemPages值。
针对我的64位Win10实操调整:
过程中踩了个大坑:修改后某个老旧驱动不兼容,蓝屏两次才排查出问题。在主板官网更了驱动才稳下来。
现在终于明白:物理内存条插多少只决定"包间"大小,真正卡脖子的是系统给的"包厢预订额度"。那些号称128G内存的工作站要是没调虚拟空间参数,跑大数据照样崩给你看。这回折腾完的最大收获是:下次见到程序崩盘先别骂内存不够,按住Alt看资源监视器虚拟内存曲线才是正经事!
*请认真填写需求信息,我们会在24小时内与您取得联系。