了解和掌握计算机系统的运行状态对于诊断问题、优化性能以及进行容量规划至关重要。在 Windows 操作系统中,有一个强大且内置的工具专门用于此目的,它就是性能监视器。本文将围绕性能监视器,详细解答一些用户可能关心的通用疑问。

性能监视器是什么?

性能监视器 (Performance Monitor),在 Windows 系统中通常简称为 Perfmon,是一个图形化工具,用于查看实时和历史的系统性能数据。
它可以收集来自本地计算机或远程计算机的各种性能数据,并将这些数据以图表、直方图或报告的形式显示出来。
其核心功能是使用称为性能计数器 (Performance Counters) 的组件来跟踪系统资源的使用情况和活动。

性能监视器能监测哪些数据?

性能监视器可以监测极其广泛的系统指标,这些指标被组织成不同的性能对象 (Performance Objects)。常见的性能对象包括:

  • 处理器 (Processor):监测 CPU 的使用率、中断时间、特权模式时间等。
  • 内存 (Memory):监测可用内存、缓存使用、页面错误率等。
  • 磁盘 (LogicalDisk / PhysicalDisk):监测磁盘读取/写入速率、队列长度、磁盘忙碌时间百分比等。
  • 网络接口 (Network Interface):监测发送/接收的字节数、数据包数、网络利用率等。
  • 进程 (Process)线程 (Thread):监测单个进程或线程的 CPU、内存、句柄数等。
  • 系统 (System):监测系统范围的指标,如系统运行时间、每秒的上下文切换次数等。

除了这些基本的系统对象,许多应用程序和服务(如数据库、Web 服务器等)也会注册自己的性能对象和计数器,使得性能监视器可以深入监测特定应用的性能。

为什么要使用性能监视器?

使用性能监视器有很多重要原因,主要在于它提供的深入洞察能力。

诊断性能问题

当计算机运行缓慢、无响应或出现其他异常行为时,性能监视器是诊断瓶颈和根本原因的有力工具。
通过监测 CPU、内存、磁盘和网络的使用情况,可以快速定位是哪个资源成为了限制。

识别系统瓶颈

性能监视器可以帮助确定系统中的哪个组件是性能的瓶颈。例如:

  • CPU 使用率持续接近 100% 可能表明处理器是瓶颈。
  • 可用内存极低且页面错误率很高可能表明内存不足。
  • 磁盘队列长度持续很高或磁盘忙碌时间接近 100% 可能表明磁盘 I/O 是瓶颈。
  • 网络接口的发送/接收速率达到上限可能表明网络带宽不足。

建立性能基线

在系统正常运行时,可以使用性能监视器收集数据,建立一个“正常”的性能基线。
当系统出现问题时,可以将当前的性能数据与基线进行比较,从而更容易识别异常的变化和趋势。

容量规划

通过长期监测系统资源的使用趋势,可以预测何时需要升级硬件或增加资源(如内存、磁盘空间、更快的 CPU),以满足未来的需求增长。

验证系统更改的影响

在对系统进行更改(如安装新软件、更改配置、应用补丁)后,可以使用性能监视器来评估这些更改对系统性能的影响。

在哪里找到性能监视器?

性能监视器是 Windows 操作系统的一个标准组件,无需额外安装。

有几种方法可以打开它:

  1. 通过搜索: 点击任务栏上的搜索图标或 Windows 徽标,输入“性能监视器”或“Performance Monitor”,然后点击搜索结果中的应用程序。
  2. 通过运行命令: 按下 Windows 键 + R 打开“运行”对话框,输入 perfmon.mscperfmon,然后点击“确定”或按 Enter 键。
  3. 通过管理工具: 在控制面板中,找到并打开“管理工具”(在不同 Windows 版本中位置可能略有不同,通常在“系统和安全”下),然后在列表中找到并打开“性能监视器”。

使用性能监视器需要花费多少钱?

性能监视器是 Windows 操作系统内置的工具,因此免费包含在 Windows 许可中,使用它无需额外付费。

如何使用性能监视器?

使用性能监视器进行基本的实时监测相对简单,而进行高级的长期收集和报告则需要学习使用“数据收集器集”。

实时监测基础操作

打开性能监视器

使用上文提到的任何一种方法打开性能监视器。打开后,在左侧导航窗格中,展开“性能”或“监视工具”,然后选择“性能监视器”。

添加性能计数器

默认情况下,性能监视器可能只显示一个或几个基本的计数器(如处理器使用率)。要添加更多计数器:

  1. 点击工具栏上的绿色“+”按钮,或右键点击图表区域选择“添加计数器”。
  2. 这将打开“添加计数器”对话框。
  3. 在左侧的“可用计数器”列表中,展开您感兴趣的性能对象(例如,“Processor”、“Memory”、“PhysicalDisk”)。
  4. 选择一个或多个计数器。您可以按住 Ctrl 键选择多个不连续的计数器,按住 Shift 键选择连续的计数器。
  5. 在下方的“实例”列表中,选择要监测的特定实例。例如,如果选择“Processor\% Processor Time”,在实例中可以选择“_Total”表示所有核心的平均值,或选择特定的核心编号(“0”, “1”, 等)。对于磁盘,可以选择特定的磁盘驱动器号。对于进程,可以选择特定的进程名称。
  6. 点击“添加>>”按钮将选定的计数器添加到右侧的列表中。
  7. 重复步骤 3-6 添加其他性能对象和计数器的组合。
  8. 点击“确定”。

添加后,性能监视器将立即开始收集并显示这些计数器的实时数据。

理解图表显示

默认视图是图表。底部区域会列出当前正在监测的所有计数器,包括它们的颜色、缩放比例、实例等信息。点击列表中的某个计数器,可以在图表中高亮显示其对应的数据线。
您可以通过工具栏上的按钮调整显示方式(图表、直方图、报告),或右键点击图表区域调整属性,如更新间隔、颜色、字体等。

保存当前设置

如果您配置了一组常用的性能计数器组合,可以通过右键点击左侧导航窗格中的“性能监视器”,选择“新建” -> “数据收集器集”,然后选择“从当前配置创建”,将当前的实时监测配置保存为一个数据收集器集模板,以便将来快速加载使用。

使用数据收集器集进行高级监测

数据收集器集 (Data Collector Sets, DCS) 用于配置性能计数器、事件跟踪数据、系统配置信息等,并可以安排自动运行、设置停止条件、触发警报等。这对于长期监测或在特定条件下收集数据非常有用。

创建数据收集器集

  1. 在左侧导航窗格中,展开“性能” -> “数据收集器集”。
  2. 右键点击“用户定义”,选择“新建” -> “数据收集器集”。
  3. 输入数据收集器集的名称。
  4. 选择创建方式:通常选择“手动创建(高级)”,然后点击“下一步”。
  5. 选择要包含的数据类型,例如“创建数据日志”并勾选“性能计数器”,然后点击“下一步”。
  6. 点击“添加”按钮,按照前面“添加性能计数器”的步骤选择您想要长期监测的性能计数器。完成后点击“确定”。
  7. 设置数据收集的频率(采样间隔)。
  8. 选择数据保存的位置。
  9. 完成设置后,可以选择“立即启动此数据收集器集”或“保存并关闭”以便稍后手动或通过计划任务启动。

管理和查看收集的数据

创建的数据收集器集会出现在“用户定义”列表中。右键点击它可以启动、停止、删除或查看其属性。
收集到的数据文件(通常是 .blg 格式)会保存在您指定的位置。要在性能监视器中查看这些历史数据:

  1. 在左侧导航窗格中,选择“性能监视器”。
  2. 点击工具栏上的“查看日志数据”图标(文件夹图标)。
  3. 在“源”下,选择“日志文件”。
  4. 点击“添加”按钮,浏览并选择您收集的 .blg 数据文件。
  5. 点击“确定”。
  6. 然后,点击对话框底部的“添加”按钮来选择要显示在图表中的计数器(这些计数器是从选定的日志文件中读取的)。
  7. 选择计数器并点击“添加>>”,然后点击“确定”。

图表将显示从日志文件中加载的历史性能数据。

性能监视器如何工作?

性能监视器的工作机制基于其性能计数器架构。

操作系统和许多应用程序会向系统注册它们提供的性能对象和计数器。这些计数器暴露了内部变量或统计数据,例如 CPU 正在处理的指令数、可用内存的字节数、磁盘读写的次数等等。
性能监视器通过 Windows API 调用这些性能计数器的接口,以设定的采样间隔(默认为 1 秒)查询这些计数器的当前值。
对于某些计数器(如 % Processor Time),操作系统会负责计算出在采样间隔内的平均百分比。对于其他计数器(如 Available Bytes),则直接返回当前的值。
收集到的数据样本会被存储起来,用于实时显示图表或写入日志文件。当查看日志文件时,性能监视器会读取这些保存的数据样本并将其可视化。

性能监视器本身是一个相对轻量级的工具,它主要依赖于操作系统和应用程序提供的计数器接口来获取数据,因此对系统性能的影响通常可以忽略不计,除非同时监测的计数器数量极其庞大。

常见性能计数器示例与解读

了解一些关键计数器的含义对于有效使用性能监视器至关重要。

处理器 (Processor)

  • \% Processor Time:处理器花费在执行非空闲线程上的时间百分比。持续高于 85-90% 通常表示 CPU 瓶颈。
  • \% Privileged Time:处理器花费在执行操作系统核心服务上的时间百分比。高值可能表明驱动程序或系统服务存在问题。
  • \% User Time:处理器花费在执行用户应用程序代码上的时间百分比。高值通常表示特定应用程序正在大量消耗 CPU。

内存 (Memory)

  • Available MBytes:当前可用于进程的物理内存量(以 MB 为单位)。持续较低的值(例如,总内存的 5-10% 以下)可能表明内存不足。
  • Pages/sec:为解析硬页面错误而从磁盘读取或写入磁盘的页数。这是衡量系统需要从硬盘获取数据的频率,持续较高的值表明系统在频繁使用页面文件,可能需要更多内存。
  • Page Faults/sec:每秒发生的页面错误总数(包括软错误和硬错误)。高值可能表明应用程序访问内存的方式效率低下或内存不足。

磁盘 (PhysicalDisk / LogicalDisk)

  • \% Disk Time:所选磁盘驱动器忙于为读取或写入请求提供服务的时间百分比。接近或等于 100% 通常表示磁盘是瓶颈。
  • Avg. Disk Queue Length:在采样间隔期间,磁盘上等待处理的读取和写入请求的平均数量。持续大于磁盘主轴数(通常为 1)可能表示磁盘无法及时处理请求。
  • Disk Reads/secDisk Writes/sec:每秒在磁盘上执行的读取和写入操作的次数。可以用来了解磁盘的工作负载类型。

网络接口 (Network Interface)

  • Bytes Total/sec:每秒发送和接收的总字节数,包括帧字符。这反映了网络接口的总体利用率。如果接近网络适配器的最大带宽,可能表明网络是瓶颈。
  • Current Bandwidth:网络接口当前的带宽估计值(以位/秒为单位)。结合 Bytes Total/sec 可以计算利用率。

总结

性能监视器是一个功能丰富的系统工具,它回答了关于系统“是什么、为什么、在哪里、是否免费、如何使用以及如何工作”等一系列关键问题。
通过学习如何添加和解读性能计数器,以及如何使用数据收集器集进行长期监测,用户可以获得对其系统行为的深刻理解,有效地诊断和解决性能问题,从而确保计算机系统的稳定和高效运行。

无论您是系统管理员、开发人员,还是仅仅对自己的电脑运行状态感到好奇的普通用户,掌握性能监视器的基本用法都将是一项非常有价值的技能。

性能监视器

By admin

发表回复