排查Windows 下的内存使用率过高,但是任务管理器看不到进程

排查Windows 下的内存使用率过高,但是任务管理器看不到进程

出现的问题

最近我们的Book在内部使用的时候,很多人反馈都没打开什么应用,但是任务管理器上却显示内存接近80%-90%,如下图所示。

排查步骤

1、通过任务管理器排查

在Win11任务管理器上,其实包含了压缩的内存管理,系统会动态管理内存使用的。

资源监视器排查内存选项,观察是哪一个进程占用较高

提交:操作系统为进程保留的虚拟内存,是程序独占的内存(包含物理内存和在页面文件中的内存)(单位:KB)

工作集:进程当前正在使用的物理内存量(单位:KB)

可共享:进程所使用的可与其它进程共享的物理内存量(单位:KB)

专用:由该进程所使用而其它进程无法使用的物理内存量(单位:KB)

工作集=可共享+专用

从进程内存详细输出结果来看,所有进程内存使用率总和并不会达到那么高的水位线。所以从单纯使用该工具无法进行下一步分析。

2、通过RAMMap分析

RAMMap工具较任务管理器可以看到更详细的内存信息。首先下载该工具,工具下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/rammap

下载完成之后,直接启动执行文件,可以看到如下内存分析结果:

其中,Nonpaged Pool(未分页池)占用内存过多,约5G左右。具体这块内存是哪部分使用掉的呢?该工具是无法核查到的,所以需要其他工具进一步核查。

3、通过Poolmon分析

继续上面的排查,想要知道Nonpaged Pool(未分页池)具体是哪个程序占用的,需要借助Poolmon工具分析。

现在百度直接搜索 Poolmon.exe 直接下载,避免需要安装Wdk的工具集:Poolmon官方版下载-Poolmon(核心内存泄漏检测工具)下载 v5.2.3790 - 多多软件站

安装启动PoolMon工具

默认列出了nonpage以及page相关信息。按大写字母“P”,可以只列出nonpage相关信息,然后再按大写字母“B”,按照内存大小倒序排序。

从排序结果可以看到,主要是Tag为:Mloc 占用内存较大。

打开cmd窗口,进入c:/windows/system32/drivers,然后输入命令:

findstr /m /l Mloc *.sys

命令执行结果为:

eamonm.sys edevmon.sys ehdrv.sys epfw.sys epfwwfp.sys

定位到具体的驱动文件之后,进一步核查驱动信息,定位到具体是哪个程序

从以上五个截图可以详细看到,这几个驱动文件对应的程序为:ESET Security软件。

核查服务器上运行的程序,确认确实有启动该程序。

最终判断,是由于该程序导致nonpaged pool占用内存较大,从而导致服务器整体内存使用率较高。

参考文档:win内存使用率过高但是资源监视器查看不到进程,排查思路 - 技术文章 - 云掣

相关推荐

微信表情包储存位置
365bet网址主页

微信表情包储存位置

📅 09-19 👁️ 1184
大桥未久(Ohashi-Miku)经典品番作品MIDD-791介绍及预览
Bet体育365怎么提款

大桥未久(Ohashi-Miku)经典品番作品MIDD-791介绍及预览

📅 07-21 👁️ 4021
《金铲铲之战》s11霞洛介绍
365bet游戏平台

《金铲铲之战》s11霞洛介绍

📅 07-02 👁️ 8676
中华人民共和国广播电台列表
Bet体育365怎么提款

中华人民共和国广播电台列表

📅 07-11 👁️ 2195
快速释放销
365bet网址主页

快速释放销

📅 08-27 👁️ 2345
《宝可梦朱紫》黏美儿怎么进化?黏美儿进化条件分享
Bet体育365怎么提款

《宝可梦朱紫》黏美儿怎么进化?黏美儿进化条件分享

📅 12-19 👁️ 853