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

Process Monitor 学习笔记(5.7):长时间运行追踪与日志体积控制

Process Monitor 学习笔记(5.7):长时间运行追踪与日志体积控制

  • Process Monitor 学习笔记(5.7):长时间运行追踪与日志体积控制
    • 一、为什么“长时间抓取”会失控?
    • 二、三层控量思路(先过滤 → 再丢弃 → 后落盘)
      • 1) 先过滤:只看该看的
      • 2) 再丢弃:只保留“通过过滤”的事件
      • 3) 后落盘:把内存换成磁盘
    • 三、长时间抓取的“稳态配置”清单(拿来即用)
    • 四、分段与归档:把“瀑布流”切成“乐高块”
    • 五、容量与性能的“七条铁律”
    • 六、典型场景配置模板
      • 场景 A:偶发卡顿(全天巡检)
      • 场景 B:磁盘打爆排查(高 IO)
      • 场景 C:注册表异常写入(策略/驱动反复改值)
    • 七、分析与复盘的三板斧
    • 八、交付物规范(让同事一眼看懂)
    • 九、常见坑与止损
    • ✅ 小结

Process Monitor 学习笔记(5.7):长时间运行追踪与日志体积控制

目标:让 Procmon 在“跑一整天/跨多小时”也稳、准、省,不把磁盘打爆,还能把关键证据沉淀下来。


一、为什么“长时间抓取”会失控?

Procmon 默认把事件写在内存环形缓冲里,界面显示的是实时刷新的“窗口”。
当事件量巨大(驱动/安全软件/编译/IO 密集场景),内存会顶不住;若直接落盘,又可能把硬盘写满。
解法核心:先“减量”,再“控盘”,最后“分段”。


二、三层控量思路(先过滤 → 再丢弃 → 后落盘)

1) 先过滤:只看该看的

  • Filter(Ctrl+L)
    典型白名单/黑名单策略:

    • Process Name is <目标进程/家族>
    • Path begins with C:\AppRoot\Path contains \Temp\
    • Operation is CreateFile/ReadFile/WriteFile/RegSetValue/Load Image
    • 少用 “Anything contains …” 的泛匹配;慎用 Result is SUCCESS(很多有效线索是失败返回导致的重试/卡顿)
  • Highlight(Ctrl+H):把 ACCESS DENIED / NAME NOT FOUND / PATH NOT FOUND / SHARING VIOLATION 等异常结果高亮,方便长跑后快速扫慢点。

经验:按业务边界过滤(进程名/路径前缀),比按错误码过滤更稳。错误码会“漂移”,但业务边界稳定。

2) 再丢弃:只保留“通过过滤”的事件

  • 勾选 Filter → Drop Filtered Events

    • 含义:丢掉未命中过滤条件的事件(破坏性过滤)
    • 收益:日志体积可下降 10~100 倍
    • 前置条件:过滤器必须先调好(建议先短跑验证 3–5 分钟)

3) 后落盘:把内存换成磁盘

  • File → Backing Files… 指定落盘文件(非系统盘更佳,例如 D:\ProcmonLogs\run1.pml
  • 建议:给日志盘预留 >10 GB 可用空间;配合定时分段(见下)

三、长时间抓取的“稳态配置”清单(拿来即用)

  1. 设置过滤器(按进程/路径/操作裁剪)

  2. 开启 Drop Filtered Events

  3. 关闭栈采集/高级输出Options → Enable Advanced Output 取消勾选

    • 说明:栈信息很有价值,但成本极高;长跑建议先关,定位到可疑点后短跑再开栈复现
  4. 关闭 Profiling 采样(若版本提供 Options → Enable Profiling Events取消勾选

  5. 启用 Backing Files(落盘),路径指向非系统盘

  6. 最小化运行,按需暂停/继续(工具栏红/绿按钮)

  7. 每 30–60 分钟分段保存一次(见“分段与归档”)


四、分段与归档:把“瀑布流”切成“乐高块”

思路:长跑不存一个超大文件,而是周期性切段保存,方便回看、分享与比对。

推荐流程(手工版)

  • 跑满一个观察周期(如 30 分钟)→ File → Save…

    • FormatNative Process Monitor Format (PML)
    • Events to saveEvents displayed using current filter(只存“有效信号”)
    • 命名:HOST-案件简称-YYYYMMDD-HHMM-段号.pml
  • Edit → Clear Display 清屏后继续采集下一段(过滤仍生效)

自动化分段

  • 先保存一份 .pmc 过滤配置(下篇 5.9 会讲命令行,届时可 procmon.exe /LoadConfig cfg.pmc /BackingFile path + 计划任务定时 /Terminate 与二次 /BackingFile 重启采集,实现滚动切片。)

五、容量与性能的“七条铁律”

  1. 过滤优先:不过滤就落盘 = 纯粹堆垃圾
  2. 丢弃噪声Drop Filtered Events 是长跑第一法宝
  3. 关栈关采样:长跑先关高级输出/栈/Profiling,命中后再短跑开
  4. 独立日志盘:避免系统盘告急影响业务
  5. 定时切段:单段 300–800MB 控制在可接受范围(视场景)
  6. 必要时 CSV 导出脱敏:便于跨团队分享
  7. 与杀软互斥白名单:把 procmon.exe 与日志目录加到安全软件排除,避免互相拖慢

六、典型场景配置模板

场景 A:偶发卡顿(全天巡检)

  • 过滤:

    • Process Name is myservice.exe OR myworker.exe
    • Operation is CreateFile/ReadFile/WriteFile/Reg*
  • Drop Filtered Events,关“高级输出/栈/Profiling”

  • Backing File → E:\pm\巡检\巡检-%DATE%.pml

  • 每 1 小时 Save 一段,清屏续跑

  • 发现卡顿时间点后,用相同过滤短跑 + 开栈复现

场景 B:磁盘打爆排查(高 IO)

  • 过滤:

    • Path begins with C:\Users\*\AppData 或目标目录
    • Operation is WriteFile/SetEndOfFile/SetDispositionInformationFile
  • 高亮:WriteFile Duration > 10ms(可用列排序替代)

  • 观察 Process NamePath 组合,锁定“写洪峰”来源

场景 C:注册表异常写入(策略/驱动反复改值)

  • 过滤:RegSetValue/RegCreateKey + 目标 hive(如 HKLM\SOFTWARE\Vendor
  • 高亮:ACCESS DENIED / REPARSE / BUFFER OVERFLOW
  • 按时间线比对改写频度,抓“谁在偷偷改”

七、分析与复盘的三板斧

  1. Duration 排序:先看最慢的 IO/注册表访问

  2. Result 归类:集中看 NAME NOT FOUND / PATH NOT FOUND / ACCESS DENIED

  3. 聚合维度

    • Process Name 分组(右键列头 → 添加/移除列,配合排序)
    • Path 前缀(目录级)定位“热区”

命中可疑点后,再开 Call Stack 精准落锤(短跑复现即可)。


八、交付物规范(让同事一眼看懂)

  • PML 切片HOST-Case-YYYYMMDD-HHMM-PartN.pml

  • 说明文档(Markdown/TXT):

    • 现象 & 影响面
    • 抓取时间窗口(起止)
    • 使用的过滤条件(贴 .pmc 配置)
    • 关键时间点(如“14:32 卡 90s”)
    • 发现 & 初步结论
  • 可选:导出一份 CSV(按当前过滤) 供 BI/脚本二次分析


九、常见坑与止损

  • 忘开 Drop Filtered Events → 日志爆量:

    • 立即暂停 → 调整过滤 → 勾选 Drop → 继续
  • 系统盘吃满

    • Backing File 放非系统盘;设置磁盘告警;定时切段
  • UI 卡顿/假死

    • Pause,再 Save;必要时命令行结束(见 5.9)
  • 抓了一天却没信号

    • 先用高亮 + Duration 排序做“快筛”;
    • 没命中就收窄过滤换观察窗口(进程家族/路径前缀)

✅ 小结

  • 长跑 Procmon 的黄金组合:精确过滤 + Drop Filtered Events + 落盘 + 分段保存
  • 先“抓到”,再“抓细”:长跑稳态禁用高成本项,命中后短跑开栈复盘。
  • 交付物规范确保跨团队沟通顺畅,证据可复核、可追溯。
http://www.dtcms.com/a/438362.html

相关文章:

  • 深入解析需求变更:从本质认知到实践指南
  • 商城网站建设的步骤网络设计教程
  • Day 30 - 错误、异常与 JSON 数据 - Python学习笔记
  • 吴恩达机器学习笔记(10)—支持向量机
  • 电商网站建设与运行xd网页设计教程
  • 基于websocket的多用户网页五子棋(四)
  • 深入浅出 C++20 协程
  • 想做个小网站怎么做主机壳 安装wordpress
  • 永兴县网站建设专业山东省城乡建设厅官网
  • ip prefix-list(IP前缀列表)概念及题目
  • [工作流节点9] 删除记录节点的风险与使用规范 —— 明道云工作流数据清理实战指南
  • 做网站推广的销售怎么打电话如何做网站发产品销售
  • MongoDB GEO 项目场景 ms-scope 实战
  • 医美三方网站怎么做网站外链建设可以提升网站
  • 在算法比赛中高效处理多行输入
  • MySQL 管理与配置详解:从安装到架构解析
  • 构建工具webpack
  • 深入理解 Rust 的内存模型:变量、值与指针
  • 单位网站备案要等多久湖南住建云网站
  • 浦口区网站建设售后服务有没有做卡商的网站
  • 可达鸭模拟赛1
  • LINUX复习资料(一)
  • 专业做酒的网站有哪些互联网营销培训班 考证
  • 串扰09-Er与串扰
  • HarmonyOS应用开发深度解析:ArkTS语法与组件化开发实践
  • 免费的简历制作网站100大看免费行情的软件
  • seo站内优化站外优化vs做网站如何输出
  • 【学习K230-例程43】GT6700-AI视觉-人体关键点检测
  • 网站域名所有权wordpress文章截断
  • HTMLz设计一个电压电流波形显示界面