求助: windows 超大虚拟内存(swap) 泄漏?

查看 93|回复 9
作者:wisej   
提交了大量的内存请求 51G 。根据图 1 可知,ram 用了 28G,剩下 23G 正好和虚拟内存已分配数值匹配上。
根据网上信息,我在 C 盘根目录还找不到 pagefile.sys 文件(已打开隐藏项目显示),并且按内存排序占用最多的也就是 chrome 2G 的样子。我大概看了下,所有的内存占用加起来感觉还没有 28G ,不知道虚拟内存这 23G 哪来的(而且任务管理器也不显示?)
这占的 23G swap 导致 C 盘空间不足 10g ,导致我休眠后会重新开机(休眠失败)---内存的 28g 写入不下了。
我的问题
1.为什么这 swap file C 盘找不到,如何安全删除?
2.这么大的内存申请(malloc)为什么任务管理器看不到,只有真的使用(memset)才会标识占用?
Ref: https://github.com/cw1997/memory-allocation-test
图 1

图 2

wisej
OP
  
我把几乎所有看得见的程序都退出,内存占用最多的只有几百 M 的情况下:内存使用中仍然显示有 23G. ..
yinmin   
输入命令:dir c:\ /a
yinmin   
除了要显示隐藏文件,还要取消勾选“隐藏受保护的系统文件”,才能看见 pagefile.sys 。系统时好像是删不掉。
取消自动管理,自己设置大小,重启
Plutooo   
你有没有用 WSL ? 或者 hyper-v ? 修改配置限制 WSL 的最大内存,否则 WSL 有可能会占满你的所有内存
MossFox   
开始-资源监视器-内存-提交,看看是哪个进程的问题吧
wisej
OP
  
我遇到过一例是英特尔某个服务的进程刷了几万个死掉的 pid 在那边,任务管理器里面看不到。
RAMMap 里面才能见到。RAMMap → Processes 看一下有没有同名进程对应巨多 pid 的情况。如果看到了恭喜你就找到罪魁祸首了。
qbqbqbqb   
@by 感谢,取消勾选后能看见了。
@yinmin 虚拟化是启用的,但是 windows 功能里 Hyper-V 没有勾选。我印象里最近也没启用过 WSL
wisej
OP
  
Windows 任务管理器里的“内存”实际上是常驻集大小( RSS )的意思。当然不包括只申请未使用,或者被交换出的部分了。
要看这些的话需要看“详细信息”tab 里的“提交大小”这一列(默认隐藏,需要右键表头配置之后才能看)
wisej
OP
  
@Plutooo 最大的 MsMpEng.exe 456,916KB. 看不出问题所在
您需要登录后才可以回帖 登录 | 立即注册

返回顶部