当前位置: 首页 > news >正文

Process Monitor 学习笔记(5.17):常见问题 性能调优(FAQ + Best Practices)

Process Monitor 学习笔记(5.17):常见问题 & 性能调优(FAQ + Best Practices)

  • Process Monitor 学习笔记(5.17):常见问题 & 性能调优(FAQ + Best Practices)
    • 一、十大高频问题(含速解)
      • Q1:PML 文件巨大,GUI 打不开/卡死?
      • Q2:采集时掉帧/系统卡顿?
      • Q3:没有调用栈信息/全是地址?
      • Q4:导出的 CSV 在 Excel 里乱码/列错位?
      • Q5:过滤器设置好,却导出全是噪声?
      • Q6:Boot Logging 开了但没抓到启动期证据?
      • Q7:明明慢,却全是 `SUCCESS`,看不到异常?
      • Q8:事件洪水,关键线索被淹没?
      • Q9:Stack 指向第三方安全/云盘/代理模块,怎么取证?
      • Q10:长时间运行追踪怎么控体积?
    • 二、性能调优五件套(必配)
    • 三、可复用过滤模板(.pmc 思路图)
      • 3.1 冷启动/卡顿定位
      • 3.2 安装/升级失败
      • 3.3 网络/代理可疑
    • 四、自动化脚本范式
      • 4.1 采集→停止→导出(带过滤)
      • 4.2 每 10 分钟切片(长时观察)
    • 五、分析动作清单(10 分钟闭环)
    • 六、联动工具与边界
    • 七、最佳实践(可贴墙)
    • 八、复盘模板(One-Pager)
      • 结语

Process Monitor 学习笔记(5.17):常见问题 & 性能调优(FAQ + Best Practices)

目标:把“踩过的坑”一次讲透,给你可复制的调参手册与诊断清单。抓得稳、看得清、导得动、报得明。


一、十大高频问题(含速解)

Q1:PML 文件巨大,GUI 打不开/卡死?

现象.pml > 几 GB,双击 Procmon 卡住。
速解

  • 用命令行只加载日志不立刻渲染过滤器:

    procmon.exe /AcceptEula /OpenLog D:\trace\case.pml /Quiet
    
  • 保存过滤条件.pmc,再用它导出 CSV(轻量复盘):

    procmon.exe /OpenLog D:\trace\case.pml ^/LoadConfig D:\trace\minimal.pmc ^/SaveAs D:\trace\case_min.csv /SaveFilter
    
  • 若仍卡:拆分导出(按时间窗口多次导出),或先用 Drop Filtered 重新采集(见下文)。


Q2:采集时掉帧/系统卡顿?

原因:事件量过大 + 栈采集 + 磁盘写入瓶颈。
速解

  • 勾选 Drop Filtered Events(只写入命中过滤的事件)。
  • 提前设计 Include 为主、Exclude 为辅 的“白名单式过滤”。
  • Backing File 落到本地 SSD 非系统盘,如 D:\trace\*.pml
  • 暂关调用栈(除定位复杂 Hook 时),或只在复现窗短时开启栈

Q3:没有调用栈信息/全是地址?

速解

  • 打开 Options → Enable Advanced Output(含栈)。
  • 配置符号路径(Ctrl+S):先本地缓存再微软符号服务器。
  • 仅在最小复现场景开启栈,降低开销。

Q4:导出的 CSV 在 Excel 里乱码/列错位?

速解

  • 使用 Excel 的“数据 → 自文本/CSV”导入,手动选择分隔符(逗号/Tab)与编码(一般 UTF-8/ANSI 依系统)。

  • 或改用 PowerShell 导入验证:

    Import-Csv .\case.csv | Select-Object -First 5 | Format-Table
    

Q5:过滤器设置好,却导出全是噪声?

原因:未勾选 /SaveFilter,导出走默认全量。
速解

procmon.exe /OpenLog D:\trace\case.pml /LoadConfig D:\trace\focus.pmc ^/SaveAs D:\trace\focus.csv /SaveFilter

Q6:Boot Logging 开了但没抓到启动期证据?

核对

  • 是否在“启用后重启”且重启后第一时间保存
  • 目标问题是否发生在用户登录后而非内核启动前?(必要时分段:BootLog + 登录后普通抓取)

Q7:明明慢,却全是 SUCCESS,看不到异常?

思路

  • Duration 降序看慢成功(I/O 慢成功也很关键)。
  • 放开 SUCCESS 的同时限制 Operation/Path/Process 三要素,避免淹没。
  • 关注 DetailReparse/OpLock/Non-cached I/O/Network Redirector…

Q8:事件洪水,关键线索被淹没?

速解(三板斧)

  1. 按进程切分(只看你的应用/安装器/脚本宿主)。
  2. 按操作收敛(CreateFile / RegOpenKey / Load Image / TCP)。
  3. 按结果分层(先看错误/冲突,再看慢成功)。

Q9:Stack 指向第三方安全/云盘/代理模块,怎么取证?

要点

  • 记录模块名 + 公司 + 版本 + 时间戳(右键 → Properties)。
  • 截图 Top 慢事件 + 关联栈,形成“证据-厂商-动作”三元组。
  • 复测临时关闭/白名单/排除目录的效果(前后对比 20 条慢事件)。

Q10:长时间运行追踪怎么控体积?

实操

  • Drop Filtered + 只保留核心 Operation。
  • 定时 /Terminate/OpenLog /SaveAs 导出切片;或按小时轮换 Backing File(脚本实现)。
  • 必要时考虑 ETW/WPR 做长时基线,Procmon 做问题窗口的“显微镜”。

二、性能调优五件套(必配)

  1. Drop Filtered Events:只落命中事件,体积/开销立减。
  2. Include 优先:先圈定 Process/Path/Operation,再少量 Exclude。
  3. Backing File 到 SSD:本地非系统盘;避免网络/机械盘。
  4. 调用栈按需:只在复现场景短开;其余阶段关闭。
  5. 列集合最简Time / Proc / PID / Op / Path / Result / Detail / Duration 足矣;分析阶段再加列。

三、可复用过滤模板(.pmc 思路图)

3.1 冷启动/卡顿定位

Include: Process Name is yourapp.exe
Include: Operation is CreateFile
Include: Operation is Load Image
Include: Operation is RegOpenKey
Include: Operation is TCP Connect
Exclude: Path begins with C:\Windows\WinSxS\
Exclude: Result is SUCCESS   (初期)
Highlight: Result is ACCESS DENIED (Red)
Highlight: Result is NAME NOT FOUND (Orange)
Highlight: Detail contains Reparse (Yellow)

3.2 安装/升级失败

Include: Process Name is msiexec.exe OR setup.exe
Include: Operation is CreateFile/RegSetValue/RegCreateKey
Include: Result is ACCESS DENIED OR SHARING VIOLATION OR NAME NOT FOUND

3.3 网络/代理可疑

Include: Operation is TCP Connect OR UDP Send
Include: Process Name is yourapp.exe OR svchost.exe
Highlight: Result is REPARSE/RESET/Timeout  (视版本而定)

四、自动化脚本范式

4.1 采集→停止→导出(带过滤)

@echo off
set TRACE=D:\trace\%date:~0,10%_%time:~0,2%%time:~3,2%
mkdir "%TRACE%"procmon.exe /AcceptEula /Quiet /Minimized ^/BackingFile "%TRACE%\case.pml" ^/LoadConfig  ".\focus.pmc" ^/DropFilteredecho 复现问题后按任意键停止...
pause >nulprocmon.exe /Terminate
procmon.exe /OpenLog "%TRACE%\case.pml" ^/LoadConfig ".\focus.pmc" ^/SaveAs "%TRACE%\case.csv" /SaveFilterecho 输出:
echo   %TRACE%\case.pml
echo   %TRACE%\case.csv

4.2 每 10 分钟切片(长时观察)

@echo off
set BASE=D:\trace\longrun
set PMC=.\serverside.pmc
if not exist "%BASE%" mkdir "%BASE%":loop
set TS=%date:~0,10%_%time:~0,2%%time:~3,2%
procmon.exe /AcceptEula /Quiet /Minimized /DropFiltered ^/BackingFile "%BASE%\%TS%.pml" /LoadConfig "%PMC%"
timeout /t 600 >nul
procmon.exe /Terminate
procmon.exe /OpenLog "%BASE%\%TS%.pml" /LoadConfig "%PMC%" /SaveAs "%BASE%\%TS%.csv" /SaveFilter
goto :loop

五、分析动作清单(10 分钟闭环)

  • Result 面板:异常类型是否集中(拒绝/共享冲突/不存在)
  • Duration Top50:是否集中在某目录/模块/网络端点
  • Detail 语义:Reparse / OpLock / Non-cached / 代理/重定向
  • Stack 落点:第三方组件/安全产品/云盘/代理模块
  • 对策试验:白名单/排除/关闭某特性 → 复测前后对比(同过滤导出)

六、联动工具与边界

  • Process Explorer:从“是谁在运行/占用”入手,结合句柄/模块视图。
  • ProcDump:条件触发 Dump(如异常/高 CPU),与 Procmon 时间轴对齐。
  • WPR/WPA(ETW):长时低开销采样,适合 CPU/磁盘/调度层面基线分析。
  • TCPView / netsh trace:网络侧更细粒度取证。

七、最佳实践(可贴墙)

  • 测试前写好过滤;✅ Drop Filtered;✅ SSD Backing File
  • 短时开栈;✅ 导出前先 SaveFilter;✅ 命名含时间戳
  • ❌ 不要一上来全量抓半小时
  • ❌ 不要全关 SUCCESS(慢成功常藏根因)
  • ❌ 不要把 PML 丢到网络盘写入

八、复盘模板(One-Pager)

# Procmon 复盘摘要(问题名 + 日期)
环境/版本:
复现步骤(时间窗):
过滤配置:Process / Operation / Result / Path 要点
关键证据(截图 + 文本3条):
- E1:<Operation + Path + Result + Duration + Detail>
- E2:<Stack 模块 + 厂商 + 版本>
- E3:<聚集特征:目录/网络/组件>结论(1 句):
整改(可执行 3 条):
验证(前后对比 3 指标):

结语

把这份 FAQ + 调优手册 固化到你的 Procmon 工具包里。下一次遇到“慢/卡/权限/冲突/网络”类疑难,照清单执行:采集稳、事件少、证据准、结论快

http://www.dtcms.com/a/508228.html

相关文章:

  • 从零开始学像素画——第三章 1.3像素画明暗
  • 如何有效应对企业数据爆炸式增长?群晖 RS4017xs+私有云存储有办法
  • 自适应检索增强生成(Adaptive RAG):智能问答的新范式
  • Python3 正则表达式详解
  • 智慧养老照护实训室沉浸式教学场景搭建与护理人才培养路径
  • YOLOv3目标检测算法深度解析:从核心改进到实战应用
  • Web前端开发工具实战指南 从开发到调试的完整提效方案
  • 济南网站设计公司富wordpress不兼容ie
  • ajax做购物网站燕郊做网站的公司
  • java求职学习day44
  • 5-5〔OSCP ◈ 研记〕❘ SQL注入攻击▸手动滥用SQLi实现提权
  • HTML应用指南:利用POST请求获取中国一汽红旗门店位置信息
  • 网站备案多久一次中国建设银行e路通网站
  • 怎么建手机网站美工设计培训网
  • 九、WEB APIs(四)
  • DDL与DML解析
  • 网站推广公司网站北京公司地址推荐
  • 如何免费建造网站做外贸网站要什么条件
  • 国产化Word处理控件Spire.Doc教程:用Java实现TXT文本与Word互转的完整教程
  • 用C语言实现建造者模式
  • 山亭网站建设工商网站
  • 物联网设备分布式配置管理与一致性保障技术
  • 小波变换完全指南:从原理到实践的深度解析
  • 黄石网站设计网站开发php和c语言区别
  • 云莱坞网站开发深圳市住房和建设局网站怎么打不开了
  • Kubernetes HPA(Pod 水平自动伸缩)部署与资源限制全流程
  • 4-Spring SPI机制解读
  • 汕头公众号建设网站设计一个网站页面需要多少钱
  • 山西太原建设厅官方网站合肥到黄山旅游攻略
  • 基于Pika的RabbitMQ 消费者异常消息消费问题分析