Windows 性能与诊断导航 / Performance & Diagnostics Guide
Windows 性能与诊断技术导航 / Performance & Diagnostics Guide
📊 Windows 提供了从实时监控到事后分析的完整性能诊断工具链。
🔗 返回主导航图:Windows 技术生态导航图
Performance Monitor (PerfMon)
性能监视器 — Windows 内置的实时性能数据采集和分析工具。通过性能计数器 (Performance Counters) 监控 CPU、内存、磁盘、网络、进程等指标。支持 Data Collector Sets 进行长时间数据采集,生成报告用于趋势分析。
核心概念: Performance Counters, Data Collector Set (DCS), Counter Log, Alert, Report, Performance Object, Instance
关键计数器分类:
- CPU:
\Processor(_Total)\% Processor Time,\System\Processor Queue Length - Memory:
\Memory\Available MBytes,\Memory\Pages/sec - Disk:
\PhysicalDisk(*)\Avg. Disk sec/Read,\PhysicalDisk(*)\Disk Queue Length - Network:
\Network Interface(*)\Bytes Total/sec
| 资源 | 链接 |
|---|---|
| 📖 PerfMon 概述 | Performance Monitor |
| 📖 Data Collector Sets | Data Collector Sets |
| 🔧 性能排查概述 | Performance Troubleshooting |
| 🔧 内部 Wiki | Performance Wiki |
Resource Monitor
资源监视器 — 比 Task Manager 更详细的实时资源监控工具。按进程级别展示 CPU、内存、磁盘、网络的使用情况,支持按进程过滤磁盘活动和网络连接。
使用场景: 快速定位哪个进程占用资源最多、查看进程的磁盘 I/O 和网络连接
| 资源 | 链接 |
|---|---|
| 📖 Resource Monitor | Use Resource Monitor |
ETW (Event Tracing for Windows)
Windows 事件跟踪 — Windows 内核级别的高性能跟踪框架,是几乎所有 Windows 诊断工具的底层引擎。Provider 产生事件 → Controller 启停会话 → Consumer 消费事件。WPR、Netsh trace、Logman 等工具都基于 ETW。
核心概念: Provider, Controller, Consumer, Session, Keyword, Level, ETL File, Manifest-based vs TraceLogging
| 资源 | 链接 |
|---|---|
| 📖 ETW 概述 | Event Tracing for Windows |
| 📖 ETW 会话 | ETW Sessions |
WPR / WPA (Windows Performance Recorder / Analyzer)
Windows 性能录制器和分析器 — WPR 使用 ETW 录制系统级性能数据;WPA 以图形化方式分析 ETL 文件。是深度性能分析的首选工具,可分析 CPU 调度、磁盘 I/O、内存分配、网络活动、启动时间等。
核心概念: Recording Profile, ETL File, CPU Usage (Sampled/Precise), Disk I/O, Memory, Generic Events, Regions of Interest, Stack Analysis
| 资源 | 链接 |
|---|---|
| 📖 WPR 概述 | Windows Performance Recorder |
| 📖 WPA 概述 | Windows Performance Analyzer |
| 📖 WPT 下载 | Windows Performance Toolkit |
Xperf (Legacy)
Xperf — WPR/WPA 的前身,命令行工具,仍在某些场景中使用。使用 xperf -on 开始录制,xperf -stop 停止,xperf -i 或 WPA 分析。
| 资源 | 链接 |
|---|---|
| 📖 Xperf 参考 | Xperf Command-Line |
Event Log
事件日志 — Windows 的集中式日志系统。记录系统、应用、安全等事件。包括 Windows Logs (System, Application, Security) 和 Applications and Services Logs。是排查问题的第一手信息来源。
核心概念: Event ID, Source, Level (Info/Warning/Error/Critical), Event Viewer, Custom Views, Event Forwarding, Subscriptions
| 资源 | 链接 |
|---|---|
| 📖 Event Log 概述 | Windows Event Log |
| 📖 Event Forwarding | Windows Event Forwarding |
BSOD / Bugcheck & Dump Analysis
蓝屏与转储分析 — 当 Windows 遇到无法恢复的内核错误时,生成 BSOD (蓝屏)并写入内存转储文件 (Memory Dump)。使用 WinDbg 分析 dump 文件来定位问题根因(驱动、硬件、内存损坏等)。
核心概念: Bugcheck Code, Minidump/Kernel Dump/Complete Dump, WinDbg, !analyze -v, Stack Trace, IRQL, Pool Corruption
常见 Bugcheck Codes:
0x0AIRQL_NOT_LESS_OR_EQUAL — 驱动/内核访问了错误的 IRQL 内存0x1AMEMORY_MANAGEMENT — 内存管理错误(常指硬件内存问题)0x50PAGE_FAULT_IN_NONPAGED_AREA — 引用了无效的非分页内存0x9FDRIVER_POWER_STATE_FAILURE — 驱动电源状态异常0xD1DRIVER_IRQL_NOT_LESS_OR_EQUAL — 驱动在错误 IRQL 访问分页内存
| 资源 | 链接 |
|---|---|
| 📖 Bugcheck 代码参考 | Bug Check Code Reference |
| 📖 配置 Dump | Configure Memory Dump |
| 📖 WinDbg 入门 | Getting Started with WinDbg |
| 🔧 排查指南 | BSOD Troubleshooting |
WinDbg
Windows 调试器 — 微软官方的内核和用户模式调试器,是分析 Memory Dump 的核心工具。支持本地/远程调试、符号加载、扩展命令。!analyze -v 是最常用的自动分析命令。
核心命令:
!analyze -v— 自动分析 crash 原因!process 0 0— 列出所有进程!thread— 显示当前线程k/kv/kp— 显示调用栈!pool/!poolused— 池内存分析!vm— 虚拟内存信息
| 资源 | 链接 |
|---|---|
| 📖 WinDbg 下载 | Install WinDbg |
| 📖 调试命令参考 | Debugger Commands |
| 📖 符号设置 | Symbol Path |
Sysinternals Tools
Sysinternals 工具套件 — 由 Mark Russinovich 开发的高级系统诊断工具集,是 Windows 工程师的必备利器。
| 工具 | 用途 | 链接 |
|---|---|---|
| Process Monitor | 实时监控文件/注册表/网络/进程活动 | ProcMon |
| Process Explorer | 进程详细信息(句柄、DLL、性能) | ProcExp |
| Autoruns | 启动项管理(所有自启动位置) | Autoruns |
| TCPView | 实时网络连接监控 | TCPView |
| PsExec | 远程执行命令 | PsExec |
| Handle | 查看进程持有的句柄 | Handle |
| RAMMap | 物理内存使用分析 | RAMMap |
| VMMap | 进程虚拟内存分析 | VMMap |
| DiskMon | 磁盘 I/O 活动监控 | DiskMon |
| 资源 | 链接 |
|---|---|
| 📖 Sysinternals 首页 | Sysinternals Suite |
性能诊断工具链关系
graph TB
subgraph "快速诊断"
TaskMgr["Task Manager<br/>快速概览"]
ResrcMon["Resource Monitor<br/>进程级监控"]
end
subgraph "深度采集"
PerfMon["PerfMon<br/>计数器采集"]
ETW["ETW<br/>内核级跟踪"]
WPR["WPR<br/>性能录制"]
end
subgraph "深度分析"
WPA["WPA<br/>性能分析"]
WinDbg["WinDbg<br/>Dump 分析"]
end
subgraph "专项工具"
ProcMon["Process Monitor"]
ProcExp["Process Explorer"]
EventLog["Event Log"]
end
TaskMgr -->|"需要更多细节"| ResrcMon
ResrcMon -->|"需要长期采集"| PerfMon
PerfMon -->|"需要深入跟踪"| WPR
WPR -->|"ETW 录制"| ETW
WPR -->|"生成 ETL"| WPA
BSOD["BSOD 蓝屏"] -->|"生成 Dump"| WinDbg
ETW -->|"写入"| EventLog
ProcMon -->|"基于"| ETW
style ETW fill:#ffd700,stroke:#b8860b,stroke-width:3px
style WinDbg fill:#f5d5d5,stroke:#8e2d2d,stroke-width:2px
诊断工具选择指南
| 场景 | 推荐工具 | 说明 |
|---|---|---|
| 快速查看系统状态 | Task Manager → Resource Monitor | 实时概览 |
| 长时间性能监控 | PerfMon (Data Collector Set) | 采集计数器趋势 |
| CPU/磁盘/内存深度分析 | WPR + WPA | ETW 级别深度分析 |
| 蓝屏/系统崩溃 | WinDbg + Memory Dump | !analyze -v 定位根因 |
| 应用启动慢/行为异常 | Process Monitor + Process Explorer | 文件/注册表/网络活动跟踪 |
| 事件审计/日志检查 | Event Viewer | 检查 System/Application/Security 日志 |