性能监视器是干什么的
perfmon 是 Windows 的性能数据中枢:实时曲线视图用来现场观察,数据收集器集用来长期采集并落成 blg 文件,relog 可以把它转成 CSV 供分析。它的价值不在“看个数字”,而在于把主观抱怨(“服务器很慢”)变成可比较的曲线与阈值,从而区分 CPU、内存、磁盘、网络里到底是哪一环出了问题。
基本信息
| 适用平台 | Windows 客户端与服务器全版本 |
|---|---|
| 启动 | perfmon;perfmon /res 打开资源监视器 |
| 常用计数器 | Processor Time、Available MBytes、Avg. Disk Queue Length、Bytes Total/sec |
| 日志格式 | blg 为二进制,用 relog -f CSV 转文本 |
| 权限 | 本机查看普通用户可;远程采集与创建数据收集器集需相应权限 |
典型使用场景
- 用户抱怨系统慢:先看 CPU 与磁盘队列,判断是计算瓶颈还是 IO 瓶颈
- 内存不足排查:看可用内存与提交量的趋势,判断是配置不足还是泄漏
- 应用上线前压测:按时间轴记录基线,作为容量规划依据
- 疑难问题留证:用数据收集器集连续采集几天,覆盖间歇性故障
- 远程服务器监控:在本地 perfmon 添加远程计数器(需权限与连通性)
常用示例
常用示例
:: 打开性能监视器与资源监视器
perfmon
perfmon /res
:: 把已有 blg 转成 CSV 便于分析
relog D:\perf.blg -f CSV -o D:\perf.csv
:: 查看当前正在运行的采集会话
logman query -ets
:: 用 logman 建一个 1 分钟采样的计数器日志
logman create counter Perf1min -f bincirc -si 00:01:00 -cnf 01:00:00 -o D:\perf.blg -c "\Processor(_Total)\% Processor Time" -c "\Memory\Available MBytes"
logman start Perf1min关键计数器读法
| 计数器 | 含义 | 异常提示 |
|---|---|---|
| % Processor Time | CPU 总占用 | 长期高于 80% 说明计算资源吃紧 |
| Available MBytes | 可用物理内存 | 持续偏低会引发换页与响应变慢 |
| Avg. Disk Queue Length | 磁盘平均队列长度 | 持续大于 2 说明 IO 排队严重 |
| % Disk Time | 磁盘忙闲比例 | 长期接近 100% 需区分真实负载与统计假象 |
| Bytes Total/sec | 网卡吞吐 | 接近链路带宽上限时考虑网络扩容 |
采样间隔要和现象持续时间匹配:持续几秒的卡顿用 1 分钟采样根本抓不到,短时现象用 1-5 秒;连续几天的趋势问题用 1 分钟以上,避免文件过大。
计数器数量本身就是成本:一次挂几百个计数器会明显增加被监控系统的负担。按假设选最小集合,先验证方向再加计数器。
数据收集器集占用磁盘会持续增长,务必设置日志上限与循环覆盖(bincirc)。曾因忘记设上限把系统盘写满导致服务中断的案例并不少见。