解决Windows内存溢出/占满死机问题-PoolMon工具
某一天,
工作所用笔记本突然越来越卡直至死机
以为只是windows11的抽风行为,之前就因为windows11资源管理器经常卡死(后升级小版本好多了)。
遂长按电源键强制关机重启。
然慢慢又越来越卡,直至卡死,无奈再次重启。
开机后打开任务管理器实时观测CPU和内存占用情况。
发现内存占用正在以微妙的速度慢慢增长,到达%60后,按照内存占用大小对进程排序,前几的都是常用应用,关掉后仍然没有阻止上涨的趋势。
80%后机智的保存正在编写的各个文件,等待死机。
再次强制重启后,立马打开任务管理器,回忆最近有没有做过什么操作,打开杀毒软件,一切正常,突然地想起最近安装了某软件。
等待内存不断升高,然后查看该软件相关进程,看不出啥。。猛地发现该软件似乎开了很多小进程,虽然每个进程占用很小的内存,但我直接忽略,谁知道还开了啥看不到的进程,找该软件相关人员询问。
相关人员表示懵逼,我也懵逼,忘记了去询问的原因,强装镇定。

后无奈排除该原因,又开始新一轮回忆,然并卵。
后按“国际惯例”,遇到问题不是从底层原理开始分析问题,而是。。直接谷歌百度。
找到一篇关于定位Windows内存泄漏的文章,使用了PoolMon工具,Poolmon是一款windows平台下的核心内存泄漏检测工具。
到官网下载Poolmon和RAMMap工具。
关于RAMMap的微软介绍:RAMMap - Sysinternals | Microsoft Learn
关于PoolMon的微软介绍:PoolMon - Windows drivers | Microsoft Learn
poolmon集成在wdk里,需要运行wdksetup.exe进行安装。
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk

争分夺秒的感觉,要在下次死机前下载安装完。。
下载安装完成,打开使用!
RAMMap直接下载解压,打开使用。
poolmon:进入到 "poolmon的绝对路径目录",打开cmd,poolmon.exe的位置C:\Program Files (x86)\Windows Kits\10\Tools\x64\poolmon.exe。
.\poolmon.exe -b启动运行,-b是按照内存字节大小倒序排列。

此时内存来到了58%,我能否在卡死之前解决该问题呢。
首先利用RAMMap查看占用高的进程,发现MemCompression进程,这个进程在windwos自带的任务管理器看不到,该进程是官方的内存压缩功能,鸡贼的是反而内存以及CPU增加了,不管三七二十一,直接关闭该功能。管理员身份运行Disable-MMAgent -mc。问题不在这,意料之中。

然后利用poolmon,定位NpCD,类型为Nonp,这是在任务管理器查不到的内存占用,发现其申请(Allocs)了大量内存,但是释放(Frees)0内存,明显的内存泄漏, 持续观察一段时间,发现其占用总内存(Bytes)持续增长,看来是内存泄漏,不断申请导致占用不断升高,对应的任务管理器内存已经来到了70%。而外面,落日仍有残留余辉,混着人间灯火。

下面开始定位“始作俑者”,cd到C盘根目录,使用findstr /m /l /s NpCD *.sys,查找定位tag为NpCD的系统驱动模块文件。

与内存赛跑!
想一想人生,看了眼外面的一棵树和树下一块石,突然释怀了,何必紧张呢,大不了继续强制重启。

事实如我所想,一直到卡死死机,findstr没有查找出,看来“面包不一定有,意料之外的问题总是会有的”,原来是我命令输错了,NpCD和*.sys之间应该有个空格,而我输入的时候以为没有。所以一直没反应,还以为是我C盘文件太多了。
强制重启后,继续!

定位成功,为npcap所致,逝去的回忆涌来,依稀记得近段时间为了抓网路流量包,安装了该软件,虽然能用,但安装过程由于与本地某软件“不合”并不顺畅,可能正是该原因,导致npcap出了点问题,内存泄漏。
于是乎,卸载npcap和相关文件。
问题成功解决!观察很长一段时间,内存保持正常,未再出现异常增长和卡死问题了。

随手记录,完结。
相关文章:
解决Windows内存溢出/占满死机问题-PoolMon工具
某一天, 工作所用笔记本突然越来越卡直至死机 以为只是windows11的抽风行为,之前就因为windows11资源管理器经常卡死(后升级小版本好多了)。 遂长按电源键强制关机重启。 然慢慢又越来越卡,直至卡死,无…...
【ROS】ros-noetic和anaconda联合使用【教程】
【ROS】ros-noetic和anaconda联合使用【教程】 文章目录 【ROS】ros-noetic和anaconda联合使用【教程】1. 安装anaconda2. 创建虚拟环境3. 查看python解释器路径4. 在虚拟环境中使用任意的包5. 创建工作空间和ros功能包进行测试Reference 1. 安装anaconda 在Ubuntu20.04中安装…...
自动化RPA开发 --获取所有窗口信息和进程信息
场景 准备做一个RPA工具,可以从桌面和浏览器选择元素,获取窗口信息和进程信息是必要的,因为获取了窗口信息和进程,可用对程序做一些想要的操作。 coding 工具类 /*** Windows系统工具类*/ public class WinOsUtils {static fi…...
【Qt之布局】QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout介绍及使用
在Qt中,布局管理器(Layout)用于管理窗口中的控件的位置和大小,以适应不同大小的窗口。 常用的布局管理器包括QVBoxLayout、QHBoxLayout、QGridLayout和QFormLayout。 先放张布局UI: 1. QVBoxLayout(垂直布…...
【计算机毕业设计】python在线课程培训学习考试系统637r7-PyCharm项目
使用说明 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 使用PyCharm 导入项目,修改配置,运行项目; 将项目中config.ini配置文件中的数据库配置改为自己的配置,…...
vue3后台管理系统之登录界面和业务的实现
1.静态页面的搭建 <template><div class"login_container"><el-row><el-col :span"12" :xs"0" /><el-col :span"12" :xs"24"><!-- 登录的表单 --><el-form ref"loginForms&qu…...
GEE19:基于Landsat8的常见的植被指数逐年获取
植被指数逐年获取 1. 常见的植被指数1.1 比值植被指数(Ratio vegetation index,RVI)1.2 归一化植被指数(Normalized Difference Vegetation Index,NDVI)1.3 增强植被指数(Enhanced Vegetation I…...
Python【多分支实际应用的练习】
要求:某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折)小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱? 代码如下: tshirt_price 35 # T恤的单价 pan…...
LeetCode 343. 整数拆分(动态规划)
LeetCode 343. 整数拆分 思路: 通过题目我们可以知道,一个正整数最少拆成2个数,最多拆成n个数,即可拆分的个数为2~n 若将拆除的第一个正整数令为k,那么剩下的数则为n-k,此时可以不拆分&#x…...
C++对象模型(12)-- 构造函数语义学:构造函数
1、默认构造函数生成规则 编译器不一定会为类生成默认构造函数,但在下列情况下,编译器会生成默认构造函数。 (1)该类没有任何构造函数,但包含一个类类型的成员变量,且成员变量所属的类有默认构造函数。 …...
[23] T^3Bench: Benchmarking Current Progress in Text-to-3D Generation
3D生成蓬勃发展,主流方法通过事例比较和用户调查来评价方法好坏,缺少客观比较指标;本文提出Bench,首次综合比较了不同生成方法;具体来说,本文设计了质量评估(Quality Assessment)和对…...
linux系统如何定时关机
立刻关机 poweroff 10分钟后自动关机 shutdown -h 10 如果希望终止上面执行的10分钟关机,则执行: shutdown -c 希望在22:00关闭计算机 shutdown -h 22:00...
构建高性能物联网数据平台:EMQX和CnosDB的完整教程
CnosDB 是一款高性能、高压缩率、高易用性的开源分布式时序数据库。主要应用场景为物联网、工业互联网、车联网和IT运维。所有代码均已在GitHub开源。本文将介绍如何使用EMQX 这一MQTT 服务器 CnosDB 构建物联网数据平台,实现物联网数据的实时流处理。 前言 在物联…...
【vim 学习系列文章 11 -- vim filetype | execute | runtimepath 详细介绍】
文章目录 filetype plugin indent on 什么功能?vim runtimepath 详细介绍vim 中 execute 命令详细介绍execute pathogen#infect() 详细介绍 filetype plugin indent on 什么功能? 在网上我们经常可以看到vimrc配置中有 filetype plugin indent on 这个配…...
[备忘]WindowsLinux上查看端口被什么进程占用|端口占用
Windows上 查看端口占用: netstat -aon|findstr <端口号> 通过进程ID查询进程信息 tasklist | findstr <上一步查出来的进程号> 图例: Linux 上 查看端口占用: netstat -tuln | grep <端口号> lsof -i:<端口号&…...
函数的扩展
文章目录 函数的扩展1.函数参数的默认值1.1 基本用法-- 参数变量是默认声明的,所以不能用 let或const 再次声明-- 使用参数默认值时,函数不能有同名参数1.2 与解构赋值默认值结合使用☆☆☆ 函数参数的默认值生效以后,参数解构赋值依然会进行…...
Cypress安装使用
node.js 安装使用Cypress总是会看见node.js,那就先看看node.js是什么。JavaScript以前运行需要在浏览器中(浏览器内置解释器),通过node.js框架内置v8引擎(也就是可以执行js脚本所需的工具),这样…...
怎么把图片改成jpg格式?
怎么把图片改成jpg格式?大家都知道,随着计算机被发明到现在已经存在了很多年,在这么多的的技术发展过程中,也形成了种类非常多的图片文件格式,例如平时我们能接触到的图片格式有jpg、png、gif、bmp、heic、tiff、jfif、…...
[一带一路金砖 2023 CTF]Crypto
题1 题目描述: from Crypto.Util.number import * from flag import flag import gmpy2 assert(len(flag)38) flag bytes_to_long(flag)p getPrime(512) q getPrime(512)e 304 enc pow(flag,e,p*q) print(p) print(q) print(enc) #9794998439882070838464987…...
FPGA【Verilog语法】
关键字: and always assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endprimitive endmodule endspecify endtable …...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
