系统性能指标查看方法-Windows

1、CPU使用率windows

一、Windows上最经常使用的CPU使用率监控工具是Task Manager(任务管理器)和Performance Monitor(性能监视器)。这两个监控工具用不一样颜色区分用户态CPU使用率和系统态CPU使用率。网络

图1-1 win8 Task Manager的性能监视窗口工具

上方的实线是用户态和系统态CPU使用率的总和,下方的虚线是系统态CPU使用率。上下两线之间的差就是用户态CPU使用率。注意必须勾选显示内核时间(show kernel Utilization)才能显示系统态CPU使用率。性能

图1-2 win8 Performance Monitor的窗口操作系统

在cmd中运行perfmon就能够显示这个窗口。命令行

右键单击Performance Monitor的显示区域,在弹出的菜单中选择添加计数器(Add Counters),选择性能对象Processor,选择计数器%User Time和%Privileged Time再点击添加(Add)按钮,便可监控用户态CPU使用率和系统态CPU使用率。Windows使用术语Privileged Time描述内核或系统态CPU使用率。上图就是添加计数器的示例。orm

上方的线分别是%Processor Time、总的%User Time以及%Privileged Time。本示例中的%User Time高于%Privileged Time,这和预想的结果一致,换句话说,执行应用程序代码的时间超过执行操做系统内核代码的时间。对象

二、Windows typeperf是收集操做系统性能统计数据的命令行工具。typeperf能够在Windows命令提示符窗口中运行,或者做为脚本语句在bat或cmd文件中运行。你能够用Windows性能计数器的名字指定那些须要收集的性能统计数据,他们的名字与Performance Monitor中的相同。例如,要收集用户态和系统态CPU使用时间,能够指定性能计数器User Time和Privileged Time。在命令提示符窗口或者cmd文件中,命令看起来是这样的:接口

         typeperf "\Processor(_Total)\% Privileged Time" "\Processor(_Total)\% User Time"队列

这里看到的名字和在Performance Monitor中显示的同样。你也能够将性能计数器列表写入文件,而后将文件名传给typeperf。例如,能够把一下性能计数器写入cpu-util.txt文件中。

         \Processor(_Total)\% Privileged Time

         \Processor(_Total)\% User Time

而后调用typeperf,参数-cf后面是文件名。例如,typeperf –cf cpu-util.txt

图1-3

上面的示例中typeperf用3个性能计数器分别抓取用户态CPU使用率、系统态CPU使用率和总CPU使用率。

输出的第一行是表头,描述所采集的数据。下面几行诗数据,每行的日期时间戳表示采集相应性能计数器值得时间点。默认状况下,typeperf的报告间隔是1秒,-si选项能够更改间隔,接受形如[mm:]ss(mm是分钟,能够选;ss是秒数)的数据。若是进行长时间监控,你能够指定比默认更长的时间间隔以减小须要处理的数据量。

2、CPU调度程序运行队列

一、Windows上能够用性能计数器\System\Processor Queue Length(在Performance Monitor的Add Counters对话框中添加计数器System>Processor Queue Length)监控运行队列长度

图1-4

特别须要注意Performance Monitor的比例因子。图中的比例因子是10,意味着运行队列长度1在图中显示为10,2则显示20,3则显示30,以此类推。依据系统虚拟处理器的数量评估运行队列长度,而后决定是否须要性能分析。

二、Windows的typeperf也能够监控运行队列长度。用如下命令监控运行队列长度。

         typeperf "\System\Processor Queue Length"

图1-5

Typeperf输出的运行队列长度为实际值,没有像性能监视器中的比例因子。

3、监控内存使用率

一、在windows Performance Monitor中监控每秒内存页面调度(\Memory\Pages/second)、可用内存字节数(\Memory\Available MBytes),能够判断系统是否正在进行页面交换。

图1-6

当可用内存(\Memory\Available MBytes)变少,而且有页面调度(\Memory\Pages/second)时,系统可能正在进行页面交换。

二、显示windows页面交换的最简单方法是typeperf命令:

         typeperf "\Memory\Available MBytes" "\Memory\Pages/sec"

图1-7

上面截取了一部分。第一列是时间戳,第二列是可用内存,第三列是每秒的页面调度。

能够看到,可用内存一直稳定在4662MB左右,而且偶尔有页面调度。

因为可用内存保持恒定,有理由假定没有启动新应用。由于新应用启动时须要将页面换进内存,因此可用内存会降低,同时也能看到页面调度。因此,若是系统使用的内存量保持稳定,也没有启动新应用,却依然有页面调度,说明系统可能在进行页面交换。

值得注意的是,若是系统报告可用内存不多,也没有页面调度,说明系统没有页面交换,只不过系统大部分物理RAM都被占用了。一样,若是系统正在进行页面调度,但内存充足且没有页面交换,说明有应用在启动。

三、Windows的内建工具难以监控Java锁竞争,Windows的性能计数器能够监控上下文切换,但没法区分让步和抢占式上下文切换。Windows上监控Java锁竞争,一般须要外部工具。(所需工具自行搜索)

4、网络I/O使用率

一、Windows上监控网络使用率,就不像在performance Monitor中添加性能计数器那么简单了。你须要知道被监控网络接口的带宽,以及网络接口传递的数据量。

图1-8

二、网络接口每秒传递的字节数能够经过性能计数器\Network Interface(*)\Bytes Total/sec得到。通配符“*”表示报告的是系统全部网络接口的总字节数。能够用命令\Network Interface(*)\Bytes Total/sec查看网络接口名,而后用你打算监控的网络接口替换通配符“*”。

图1-9

除了接口传递的字节数,还必须得到网络接口的带宽。能够经过性能计数器\Network Interface(*)\Current Bandwidth得到,其中“*”应该用被监控的网络接口替换。

图1-10

重点须要注意的是,性能计数器Current Bandwidth的带宽单位是bits/s,相比而言,Bytes Total/sec是bytes/s。因此网络使用率的计算公式须要考虑适当的单位,bits/s或bytes/s。下面是两个网络使用率的公式:第一个是Current Bandwidth除以8变成字节,第二个是Bytes Total/sec乘以8变成比特位。

Network utilization % = (Bytes Total/sec) / (Current Bandwidth / 8) * 100

或者

Network utilization % = (Bytes Total/sec * 8) / (Current Bandwidth) * 100

三、在任务管理器中也能够监控windows的网络使用率。

图1-11

相关文章
相关标签/搜索