windows不像linux,linux只有在物理内存用到爆的时候才会用swap(虚拟内存),windows则并不是物理内存用到满才会用虚拟内存,一些业务场景吃pagingfile比吃物理内存厉害,物理内存还没瓶颈时如果pagingfile满了,那系统和业务就会比较卡。
下面举个不太相关的例子看下
【问题描述】重启后蓝屏,连续多次重启都是蓝屏,很久没重启了,是否曾经做的什么操作导致的蓝屏不太清楚
通过救援模式发现有个分区满了
多次重启都蓝屏,救援模式发现数据盘第1个分区满了,且系统的页面文件pagingfile设定在了这个分区,chkdsk各分区无异常,但卷标App的这个数据盘第一个分区确实已经满了,pagingfile在其中,将近16G,剩余空间只有几百M,我调整数据盘2个分区的大小,形象点说是把2个分区中间的这个挡板往右挪20G,实现方式:用救援模式桌面的傲梅分区助手调整分区
pagingfile文件pagefile.sys默认在系统盘,系统盘空间不足了,自己设定到数据盘第1个分区的,结果这个分区也满了,我看数据盘第2个分区还有很多空间,就果断拉了挡板
操作之前已经做了系统盘、数据盘快照才大胆尝试调整分区,调整后从winpe左下角重启,选择从本地硬盘启动验证正常,退出救援模式后查看vnc正常
系统启动要调用pagefile.sys,pagefile.sys在数据盘分区,自然得确保剩余空间充足,如果惯性思维,把系统异常全往系统盘联想,解决问题就会慢。说到这里,想起之前一个case,调整了注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList 下面的ProgramData到非系统盘,这个对系统影响挺大的,建议不要轻易动系统默认设置,不要轻易给操作系统的特定目录创建符号链接,参考https://baike.baidu.com/item/mklink/566760。
我去年5月底更新了win10系统,在C盘根目录有个Windows.old的文件夹,有20多G,我整理磁盘时发现它挺占空间的,就用电脑管家的文件粉碎功能把Windows.old文件夹拖了进来销毁,边销毁边工作,不一会儿我突然发现我任务栏固定的很多快捷方式都变成白的了,此时果断进到quick launch目录发现其中.lnk文件不见了,立即想到电脑管家正在执行的任务,马上去看家目录(C:Users用户名 )的文件,已经晚了,被电脑管家干掉了……家目录还有很多文件都被干掉了……心痛啊
我明明指定的C:Windows.old,为什么要把C:Users用户名……里的东西删掉? 后果不堪设想……
上网一搜,发现有跟我同样的人"电脑管家的删除文件/粉碎文件功能为什么会把软链接(mklink /D)指向的目录一并全部删除?"
重启后系统崩溃,进不去系统了,很多重要文件被删,系统也进不去了,恨得我咬牙切齿,后来联系到电脑管家的人投诉,他们给我的结论是:Windows10的升级机制导致在C:Windows.old中创建了软链接,而管家的强力清理又会删除软链接里的内容,电脑管家会紧急发布新版本规避粉碎目录下存在junction和symbol link情况下跳转删除的情况。
通过这次教训,我深深体会到windows的link情况比Linux复杂很多,为了万无一失,最好不用符号链接,不乱改Users、ProgramData、"Program Files" 和 "Program Files (x86)"的默认配置。
看到上图的mklink /D 我又想到另一个case。