跳转到内容

Windows Web 服务器的 PerfMon:解释“网站慢”的计数器

核验于 1 分钟阅读

用性能监视器和数据收集器集看 CPU、内存、磁盘、IIS 应用池和连接数,并按证据读结果。

测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1
版本号
26100.33650
版本
Standard / Datacenter
架构
x64
支持
文档(E1)
证据
E1官方文档
核验日期
2026-10-29
页面类型
任务

四项资源决定多数 Web 性能:

  1. CPU — 被谁吃掉,系统还是你的应用。
  2. 内存 — 工作集、分页、应用池私有字节。
  3. 磁盘 — 数据/日志卷的队列长度和延迟。
  4. 网络/连接 — 当前连接、请求/秒、排队。

既要看应用池,也要看整机;整机健康也可能某个池坏了。

Processor(_Total)\% Processor Time
Memory\Available MBytes
Memory\Pages/sec
PhysicalDisk(_Total)\Avg. Disk sec/Read
PhysicalDisk(_Total)\Avg. Disk sec/Write
PhysicalDisk(_Total)\Current Disk Queue Length
Web Service(_Total)\Current Connections
Web Service(_Total)\Get Requests/sec
APP_POOL_WAS(*)\Current Application Pool State
Process(*)\Private Bytes
Process(*)\% 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 5
Get-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 的生产方法。

来源