1. 打开
- 鼠标:任务栏上右键->启动任务管理器(K)->性能->打开资源监视器
- 命令-Windows 7:
resmon
或perfmon /res
- 命令-Windows Server 2012:
resmon
或perfmon /res
- 命令-Windows 10:
resmon
或perfmon
- 命令-Windows 11:resmon
下面以Windows 10为例,介绍常用功能标签,Windows 7和Windows Server 2012、Windows 11也差不多。
2. 概述
分为4个分类区域:
- CPU
- 选中某个进程后,整个软件GUI中都优先显示该进程的资源使用信息,并且此时点击鼠标右键提供杀死进程功能。
- 磁盘
- 请查看下方5.2 硬盘活动。
- 网络
- 请查看下方6.2 网络活动
- 内存
在每个显示出分类名称的标题栏上点击鼠标左键或鼠标右键,会收缩、展开其内容。每个分类区域显示的都是一张多行多列的数据表,在表头上点击鼠标右键来选择想要显示的数据,推荐CPU分类保持默认,其他分类全选。
每张数据表会根据数据多少,来自动显示或隐藏左右、上下滚动条,在数据表的各个列标题上点击鼠标左键,可根据该列的值作为查询条件,升降排序显示数据。鼠标放在某个列标题上后,按住Ctrl键还能够左右移动该列到新的位置。
这里汇总了4种资源的统计信息,在其他4个标签页中有更详细的描述,各个标签页中的UI习惯保持一直。
3. CPU
最常用的任务管理器中有CPU占用的数据,本文略。
4. 内存
最常用的任务管理器中有内存占用的数据,本文略。
5. 磁盘
命令行运行chkdsk(系统自带命令,显示当前驱动器中的磁盘状态,会频繁访问磁盘)时的截图如下:
5.1 磁盘活动的进程
每个进程占用一行,假设PID为4的内核进程system读写10个文件,这里只有1条记录,合并了带宽:
- PID。
- 映像,即进程名,并附带单选框,可选择只看该进程,点击鼠标右键提供杀死进程功能。。
- 读(字节/秒),最近一分钟的平均值。
- 写(字节/秒),最近一分钟的平均值。
- 总数(字节/秒),最近一分钟的平均值。
显示每个进程读写每个文件的带宽、优先级、响应时间等信息。
5.2 磁盘活动
每个进程读写的每一个文件,分别占用一行,假设PID为4的内核进程system读写10个文件,这里有10条记录:
- PID。
- 映像,即进程名。
- 文件。
- 发送(字节/秒),最近一分钟的平均值。
- 接收(字节/秒),最近一分钟的平均值。
- 总数(字节/秒),最近一分钟的平均值。
- IO优先级。
- 响应时间(ms)。
磁盘活动标题栏的中间和右边,还显示有2个重要的性能指标:
- 绿色正方形的x 千字节/秒磁盘I/O。
- 所有进程的磁盘读 +写的带宽总数据量。
- 蓝色正方形的x% 最长活动时间。
- 磁盘驱动器花在读写文件上的时间消耗百分比。运行chkdsk扫描磁盘、使用迅雷下载、视频平台软件多路存储时,都可能会导致该值飙升,严重时达到100%,还会导致上述响应时间(ms)升高,比如到3000ms,也就是移动磁头、写入文件延时了3秒钟。
没有多块物理磁盘的测试,估计此时这里会显示平均值。
5.3 存储
- 逻辑磁盘。
- 物理磁盘。
- 活动时间(%)。
- 和上述最长活动时间正相关。
- 可用空间(MB)。
- 总空间(MB)
- 磁盘队列长度。
- 待处理的磁盘请求队列的长度,也和上述最长活动时间正相关。
5.4 常见问题
5.4.1 例子1:电脑反应慢
尤其访问文件系统的软件反应更慢,这可能和硬盘IO太高有关,查看磁盘活动中的最长活动时间,如果超过70%就可能影响到使用。
此时进入磁盘活动的进程,点击总数(字节/秒),降序显示,查看最高占用进程的映像,关闭她即可。
但很多时候应用软件写入大数据量到硬盘,是由操作系统内核中PID为4的system进程来完成物理写入的,你无法杀死她,就需要到磁盘活动中通过文件来辨别system写入的文件应该是由哪些应用软件访问,从而去杀死这些应用软件。
还有一些特殊的文件,比如:
- 用于虚拟内存映射的
c://pagefile.sys
- 如果该文件的总数(字节/秒)很高,意味着频繁发生了页面错误的系统中断,也不是好现象,应该去分析任务管理器中最高的页面错误增量所在进程。
- 用于NTFS文件系统的类似Unix上Super Block的
c:\\$Bitmap
、c:\\$Extend
、c:\\$Logfile(NTFS卷日志)
、c:\\$Mft(NTFS主文件表)
等。- 如果文件碎片多的同时又有大量文件同时读写,这些文件的访问也可能会繁忙。
6. 网络
有以下4种分类方式显示网络资源占用情况:
- 网络活动的进程
- 网络活动
- TCP连接
- 侦听端口
6.1 网络活动的进程
每个进程占用一行,显示出:
- PID。
- 映像,即进程名,并附带单选框,可选择只看该进程,点击鼠标右键提供杀死进程功能。。
- 发送(字节/秒),最近一分钟的平均值。
- 接收(字节/秒),最近一分钟的平均值。
- 总数(字节/秒),最近一分钟的平均值。
直观地看到每个进程分别有多少输入、输出的网络流量,不足之处是刷新率太低,且不能看到进程在不同网卡的流量,后者对于分析那些使用多张网卡的软件很有用。
她和下面网络活动的最大区别是前者显示每个进程网络信息的总和,后者根据不同地址单独显示,更为详尽。
6.2 网络活动
每个进程和对端网络地址分别占用一行,显示出:
- PID。
- 映像,即进程名。
- 地址。
- 发送(字节/秒),最近一分钟的平均值。
- 接收(字节/秒),最近一分钟的平均值。
- 总数(字节/秒),最近一分钟的平均值。
网络活动标题栏的中间和右边,还显示有
- 绿色正方形的x Kbps 网络 I/O。
- 所有进程的网络输入 + 输出的带宽总数据量,包括本地协议栈,比如发给
localhost
、不经过网卡的TCP数据。
- 所有进程的网络输入 + 输出的带宽总数据量,包括本地协议栈,比如发给
- 蓝色正方形的x% 网络使用率。
- 所有进程的网络输入 + 输出流量 / 网络总带宽的百分比,不包括本地协议栈。
6.3 TCP连接
每个进程的不同TCP连接分别占一行,包含标示TCP的4要素:
- PID。
- 映像,即进程名。
- 本地地址。
- 本地端口。
- 远程地址。
- 远程端口。
- 发送(字节/秒),最近一分钟的平均值。
- 接收(字节/秒),最近一分钟的平均值。
- 总数(字节/秒),最近一分钟的平均值。
- 数据包丢失(%),丢失时会导致重传、使得延迟变高,最近一分钟的平均值。
- 延迟时间(ms),最近一分钟的平均值。
6.4 侦听端口
每个进程侦听的不同端口分别占用一行,显示出:
- PID。
- 映像,即进程名。
- 地址。
- 端口。
- 协议,TCP或UDP。
- 防火墙状态。
6.5 常见问题
6.5.1 例子1:如何统计某个进程的网络占用情况?
在网络活动的进程区域,单击PID排序,找到具体进程后打钩,然后在下面网络活动和TCP连接中,可查看详细和每个网络地址之间数据流量。
6.5.2 例子2:如何查看某个进程存在哪些TCP连接?
在网络活动的进程区域,单击PID排序,找到具体进程后打钩,然后查看TCP连接区域。
6.5.3 例子3:如何查看本机TCP 80端口被哪个进程占用?
选择侦听端口区域,点击端口列进行端口号排序,重复点击实现递减排序,再通过协议列上选出TCP,可看到对应行左侧的PID和映像。