1. 打开

  • 鼠标:任务栏上右键->启动任务管理器(K)->性能->打开资源监视器
  • 命令-Windows 7:resmonperfmon /res
  • 命令-Windows Server 2012:resmonperfmon /res
  • 命令-Windows 10:resmonperfmon
  • 命令-Windows 11:resmon

下面以Windows 10为例,介绍常用功能标签,Windows 7和Windows Server 2012、Windows 11也差不多。

2. 概述

分为4个分类区域:

  1. CPU
    • 选中某个进程后,整个软件GUI中都优先显示该进程的资源使用信息,并且此时点击鼠标右键提供杀死进程功能。
  2. 磁盘
    • 请查看下方5.2 硬盘活动
  3. 网络
    • 请查看下方6.2 网络活动
  4. 内存

在每个显示出分类名称的标题栏上点击鼠标左键鼠标右键,会收缩、展开其内容。每个分类区域显示的都是一张多行多列的数据表,在表头上点击鼠标右键来选择想要显示的数据,推荐CPU分类保持默认,其他分类全选。

每张数据表会根据数据多少,来自动显示或隐藏左右、上下滚动条,在数据表的各个列标题上点击鼠标左键,可根据该列的值作为查询条件,升降排序显示数据。鼠标放在某个列标题上后,按住Ctrl键还能够左右移动该列到新的位置。

这里汇总了4种资源的统计信息,在其他4个标签页中有更详细的描述,各个标签页中的UI习惯保持一直。

3. CPU

最常用的任务管理器中有CPU占用的数据,本文略。

4. 内存

最常用的任务管理器中有内存占用的数据,本文略。

5. 磁盘

命令行运行chkdsk(系统自带命令,显示当前驱动器中的磁盘状态,会频繁访问磁盘)时的截图如下:

5.1 磁盘活动的进程

每个进程占用一行,假设PID为4的内核进程system读写10个文件,这里只有1条记录,合并了带宽:

  1. PID。
  2. 映像,即进程名,并附带单选框,可选择只看该进程,点击鼠标右键提供杀死进程功能。。
  3. 读(字节/秒),最近一分钟的平均值。
  4. 写(字节/秒),最近一分钟的平均值。
  5. 总数(字节/秒),最近一分钟的平均值。

显示每个进程读写每个文件的带宽、优先级、响应时间等信息。

5.2 磁盘活动

每个进程读写的每一个文件,分别占用一行,假设PID为4的内核进程system读写10个文件,这里有10条记录:

  1. PID。
  2. 映像,即进程名。
  3. 文件。
  4. 发送(字节/秒),最近一分钟的平均值。
  5. 接收(字节/秒),最近一分钟的平均值。
  6. 总数(字节/秒),最近一分钟的平均值。
  7. IO优先级。
  8. 响应时间(ms)。

磁盘活动标题栏的中间和右边,还显示有2个重要的性能指标:

  • 绿色正方形的x 千字节/秒磁盘I/O
    • 所有进程的磁盘读 +写的带宽总数据量。
  • 蓝色正方形的x% 最长活动时间
    • 磁盘驱动器花在读写文件上的时间消耗百分比。运行chkdsk扫描磁盘、使用迅雷下载、视频平台软件多路存储时,都可能会导致该值飙升,严重时达到100%,还会导致上述响应时间(ms)升高,比如到3000ms,也就是移动磁头、写入文件延时了3秒钟。

没有多块物理磁盘的测试,估计此时这里会显示平均值。

5.3 存储

  1. 逻辑磁盘。
  2. 物理磁盘。
  3. 活动时间(%)。
    • 和上述最长活动时间正相关。
  4. 可用空间(MB)。
  5. 总空间(MB)
  6. 磁盘队列长度。
    • 待处理的磁盘请求队列的长度,也和上述最长活动时间正相关。

5.4 常见问题

5.4.1 例子1:电脑反应慢

尤其访问文件系统的软件反应更慢,这可能和硬盘IO太高有关,查看磁盘活动中的最长活动时间,如果超过70%就可能影响到使用。

此时进入磁盘活动的进程,点击总数(字节/秒),降序显示,查看最高占用进程的映像,关闭她即可。

但很多时候应用软件写入大数据量到硬盘,是由操作系统内核中PID为4的system进程来完成物理写入的,你无法杀死她,就需要到磁盘活动中通过文件来辨别system写入的文件应该是由哪些应用软件访问,从而去杀死这些应用软件。

还有一些特殊的文件,比如:

  1. 用于虚拟内存映射的c://pagefile.sys
    • 如果该文件的总数(字节/秒)很高,意味着频繁发生了页面错误的系统中断,也不是好现象,应该去分析任务管理器中最高的页面错误增量所在进程。
  2. 用于NTFS文件系统的类似Unix上Super Blockc:\\$Bitmapc:\\$Extendc:\\$Logfile(NTFS卷日志)c:\\$Mft(NTFS主文件表)等。
    • 如果文件碎片多的同时又有大量文件同时读写,这些文件的访问也可能会繁忙。

6. 网络

有以下4种分类方式显示网络资源占用情况:

  1. 网络活动的进程
  2. 网络活动
  3. TCP连接
  4. 侦听端口

6.1 网络活动的进程

每个进程占用一行,显示出:

  1. PID。
  2. 映像,即进程名,并附带单选框,可选择只看该进程,点击鼠标右键提供杀死进程功能。。
  3. 发送(字节/秒),最近一分钟的平均值。
  4. 接收(字节/秒),最近一分钟的平均值。
  5. 总数(字节/秒),最近一分钟的平均值。

直观地看到每个进程分别有多少输入、输出的网络流量,不足之处是刷新率太低,且不能看到进程在不同网卡的流量,后者对于分析那些使用多张网卡的软件很有用。

她和下面网络活动的最大区别是前者显示每个进程网络信息的总和,后者根据不同地址单独显示,更为详尽。

6.2 网络活动

每个进程和对端网络地址分别占用一行,显示出:

  1. PID。
  2. 映像,即进程名。
  3. 地址。
  4. 发送(字节/秒),最近一分钟的平均值。
  5. 接收(字节/秒),最近一分钟的平均值。
  6. 总数(字节/秒),最近一分钟的平均值。

网络活动标题栏的中间和右边,还显示有

  • 绿色正方形的x Kbps 网络 I/O
    • 所有进程的网络输入 + 输出的带宽总数据量,包括本地协议栈,比如发给localhost、不经过网卡的TCP数据。
  • 蓝色正方形的x% 网络使用率
    • 所有进程的网络输入 + 输出流量 / 网络总带宽的百分比,不包括本地协议栈。

6.3 TCP连接

每个进程的不同TCP连接分别占一行,包含标示TCP的4要素:

  1. PID。
  2. 映像,即进程名。
  3. 本地地址。
  4. 本地端口。
  5. 远程地址。
  6. 远程端口。
  7. 发送(字节/秒),最近一分钟的平均值。
  8. 接收(字节/秒),最近一分钟的平均值。
  9. 总数(字节/秒),最近一分钟的平均值。
  10. 数据包丢失(%),丢失时会导致重传、使得延迟变高,最近一分钟的平均值。
  11. 延迟时间(ms),最近一分钟的平均值。

6.4 侦听端口

每个进程侦听的不同端口分别占用一行,显示出:

  1. PID。
  2. 映像,即进程名。
  3. 地址。
  4. 端口。
  5. 协议,TCP或UDP。
  6. 防火墙状态。

6.5 常见问题

6.5.1 例子1:如何统计某个进程的网络占用情况?

网络活动的进程区域,单击PID排序,找到具体进程后打钩,然后在下面网络活动TCP连接中,可查看详细和每个网络地址之间数据流量。

6.5.2 例子2:如何查看某个进程存在哪些TCP连接?

网络活动的进程区域,单击PID排序,找到具体进程后打钩,然后查看TCP连接区域。

6.5.3 例子3:如何查看本机TCP 80端口被哪个进程占用?

选择侦听端口区域,点击端口列进行端口号排序,重复点击实现递减排序,再通过协议列上选出TCP,可看到对应行左侧的PID映像

7. 参考

  1. Windows 7任务管理器
  2. Windows 10和Server 2012任务管理器
  3. aida64-强大的软硬件系统信息工具
  4. CPU-Z
  5. GPU-Z