Windows Server 2025 / 使用性能监视器记录和分析服务器性能

判断服务器性能时,应同时记录中央处理器(Central Processing Unit,CPU)、内存、磁盘和网络的活动,并与正常工作时的情况比较。任务管理器适合查看当前状态;性能监视器中的数据收集器集(Data Collector Set)可按时间保存样本,帮助调查间歇性变慢的问题。

明确症状和比较条件

先明确哪项操作变慢,例如打开文件、用户登录或网页响应,而不是只写“服务器很慢”。记录受影响的用户、发生时间、同时进行的工作及最近的改动。延迟不一定由 CPU 饱和造成;虚拟机还会受到宿主机资源和存储的影响。始终确认正在测量的是哪台计算机。

在同一台服务器上比较空闲时段与有代表性、范围受控的工作,保持计数器、实例和采样间隔相同。例如,从同一客户端读取已有的测试文件,并记下开始和结束时间。不要同时改变文件大小、账户、网络和并发数量。一次小文件读取不能测出最大吞吐量;也不要为了制造曲线而临时进行压力测试或填满磁盘。

用任务管理器确定排查方向

  1. 打开任务管理器,在“进程”或“详细信息”中查看哪些进程使用 CPU 或内存。存在同名进程时记录进程 ID;不要仅因某进程排在前面就结束它。
  2. 在“性能”中查看同一时段的 CPU、内存、磁盘和网络。如果总体平均值解释不了变慢,进一步查看各逻辑处理器。
  3. 如果可用,使用资源监视器将活动与进程、磁盘或连接对应起来。这有助于选择计数器,但不能替代持续记录。
  4. 记录计算机、观察时间及用户操作。停止进程前,应先理解正常业务活动。

绝对值和百分比都需要结合含义判断。CPU 平均值较低仍可能有一个逻辑处理器满载;已用内存也可能是有益的缓存,不能直接认定内存泄漏。处理器计数器说明区分了 Processor(_Total) 的平均利用率与某个进程各线程累计的利用率:后者使用多个处理器时可能超过 100%。不要把两种百分比当成相同基准,也不要仅为清空缓存而反复重启数据库。

选择相关计数器和实例

在实验服务器(例如 FS1)上以管理权限打开 perfmon,进入“性能监视器”,选择“添加计数器”。计数器是某个对象的一项测量值;依次确认计算机、对象、计数器和实例。实例可表示特定磁盘、逻辑处理器或网卡。下表保留英文技术名称用于识别;中文系统应选择实际安装的对应项目并阅读说明。性能监视器故障排查指南介绍了收集方法。计数器不存在时应先查原因,不要编造路径。

资源 计数器和实例示例
CPU Processor 或 Processor Information:_Total 及相关逻辑处理器的 % Processor Time
内存 Memory:Available MBytes,并结合进程观察分页活动
磁盘 PhysicalDisk:Avg. Disk sec/Read、Avg. Disk sec/Write,并结合磁盘工作量
网络 Network Interface:服务所用网卡的 Bytes Total/sec

Avg. Disk sec/Read 和 Avg. Disk sec/Write 的延迟单位是秒,不是毫秒。Bytes Total/sec 表示每秒字节数,不是链路标称速率所用的每秒比特数。选择服务实际使用的磁盘和网卡;_Total 可能掩盖不同设备的差异。在虚拟机中,来宾系统称为物理磁盘的设备也可能对应虚拟磁盘,因此不能仅凭该计数器断言宿主机存储正常或损坏。

例如,0.005 秒等于 5 毫秒;12,500,000 字节/秒等于 100,000,000 比特/秒,也就是十进制的 100 Mbit/s。这只是单位换算,不是实测结果或健康阈值。应用有效数据速率也可能与网卡流量不同。资源和单位的解读指南有助于把计数器与被观察的组件对应起来。

配置五分钟的有限收集

  1. 在“数据收集器集 → 用户定义”下新建 Lab-Perf-15sec。如果已有同名项目,先查看用途,再为自己的实验选择一致的新名称,不要覆盖他人的配置。
  2. 选择手动创建,并选择性能计数器收集。将 FS1 作为数据源,只添加已选定的对象、计数器和实例,不要顺便启用无关的跟踪类型。
  3. 将采样间隔设为 15,单位选择“秒”,确认没有误选为 15 分钟。先保存配置,不立即启动。
  4. 选择空间和访问权限合适的新日志文件夹,例如本实验的 D:\PerfLogs 下。确认运行账户能写入,并避免其他用户读取内部诊断数据;记下完整路径。
  5. 打开收集器集的属性,检查“停止条件”,将“总持续时间”设为五分钟并核对单位。如果创建向导没有此选项,先完成但不启动,再进入属性设置。检查运行账户、目标路径、计划及可能延长实验的自动重启设置。
  6. 启动该收集器集并记录时间,仅执行事先约定的代表性工作,记下工作的开始和结束。确认约五分钟后停止,并打开日志检查是否包含所选计数器的实际样本,不能只看文件是否存在。若仍在运行,通过菜单仅停止本收集器集,再检查条件;没有数据时先排查权限、路径和计数器,再决定重试。

采样越频繁、计数器越多、持续时间越长,收集工作和日志存储需求通常越大。本例的 15 秒间隔和五分钟时长是练习值,并非通用要求;短于采样间隔的尖峰可能被掩盖。限制日志访问权限,检查可用空间和结果大小,并明确保留期限。保存了配置不代表已经收集到样本,也不代表收集已按时停止。

将样本与故障时间对应

停止后,在“报告 → 用户定义”中打开本次运行。若要直接加载文件,可打开性能监视器的属性,将数据源切换为日志文件,添加本次的 BLG 文件,即二进制计数器日志。选择实际发生工作的时间范围,以及相同计数器和实例。若单位差异使曲线显得平坦,可调整显示比例;图形比例不会改变原始数值的单位。将工作开始、结束时间与样本对齐,比较同一时间各资源的变化。

  • CPU:将相关逻辑处理器和进程与工作对应,区分总体平均值与进程累计利用率。
  • 内存:结合可用容量、分页和进程增长判断;一个孤立的占用数值不能证明持续内存压力。
  • 磁盘:同时比较延迟、活动量、工作类型以及宿主机和存储状态;短暂尖峰不能直接证明磁盘故障。
  • 网络:将流量与网卡及工作对应。Bytes Total/sec 本身不能区分应用有效数据、重传或其他应用流量,需要区分时应继续诊断。

应根据服务器角色、正常基准和响应时间解释结果,而不是套用一个通用阈值。时间上同时发生只能提供排查方向,不能证明因果关系。还应结合同一时段的事件与服务状态。测试配置改动前先记下原值,每次只改一项,并在可比条件下重新测量;假设不成立时恢复原设置。练习结束后确认 Lab-Perf-15sec 已停止,不再需要时只删除自己建立的测试收集器集。删除结果前保留原始 BLG、实验条件、实例及时间记录。