Windows Web 服务器的 PerfMon:解释“网站慢”的计数器
用性能监视器和数据收集器集看 CPU、内存、磁盘、IIS 应用池和连接数,并按证据读结果。
测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1- 版本号
- 26100.33650
- 版本
- Standard / Datacenter
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-29
- 页面类型
- 任务
四项资源决定多数 Web 性能:
- CPU — 被谁吃掉,系统还是你的应用。
- 内存 — 工作集、分页、应用池私有字节。
- 磁盘 — 数据/日志卷的队列长度和延迟。
- 网络/连接 — 当前连接、请求/秒、排队。
既要看应用池,也要看整机;整机健康也可能某个池坏了。
Processor(_Total)\% Processor TimeMemory\Available MBytesMemory\Pages/secPhysicalDisk(_Total)\Avg. Disk sec/ReadPhysicalDisk(_Total)\Avg. Disk sec/WritePhysicalDisk(_Total)\Current Disk Queue LengthWeb Service(_Total)\Current ConnectionsWeb Service(_Total)\Get Requests/secAPP_POOL_WAS(*)\Current Application Pool StateProcess(*)\Private BytesProcess(*)\% Processor Time请求在应用前排队时再加 HTTP Service Request Queues(*)\CurrentQueueSize。
交互:perfmon → 性能监视器 → 加计数器。
数据收集器集(事故更好用):建 User Defined 集,写文件,跑 24 小时,按计划重启。.blg 别放系统盘。
PowerShell 快照:
Get-Counter -Counter '\Processor(_Total)\% Processor Time','\Memory\Available MBytes' -SampleInterval 2 -MaxSamples 5Get-CimInstance Win32_PerfFormattedData_PerfProc_Process | Sort-Object PercentProcessorTime -Descending | Select-Object -First 10 Name,PercentProcessorTime,WorkingSetPrivate- CPU 100% — 是
w3wp、php-cgi、node还是杀毒?看进程,不只看总量。 - Available MBytes 低 + Pages/sec 高 — 真内存压力;找泄漏的池。
- 磁盘队列高/延迟高 — 存储瓶颈;查日志/AV 在数据卷上扫描。
- 连接高 + CPU 低 — 慢客户端或 keep-alive 耗尽;查超时。
- 队列增长 — 应用跟不上;扩容/优化,或池在回收。
记录正常一周的基线:每站点 CPU/内存/磁盘/连接。没有基线,“CPU 高”只是观点。
E1。实验室跑了 IIS/Nginx,但没有 PerfMon 收集器或压测。计数器和解读是 Server 2025 的生产方法。