• Windows性能监控工具ypeperf


           Windows的性能监控,目前主要有两种方式。一种是wmi协议:即通过Windows管理接口,获取性能计数器的值进行监控,比如使用libpcap开源库;另一种则是命令行工具typeperf,下面我们将详细介绍此种方式。

    一、typeperf 命令用法

    typeperf 命令将性能数据写入命令窗口或日志文件。 若要停止 typeperf,请按 CTRL+C。

    语法

    typeperf [options]

    typeperf -cf [options]

    typeperf -q [object] [options]

    typeperf -qx [object] [options]

    参数

    参数

    说明

    指定要监视的性能计数器。 参数  是 \Computer\Object (Instance) \Counter 格式(如 )的性能计数器的全名 \\Server1\Processor(0)\% User Time

    选项

    选项

    说明

    -f 

    指定输出文件格式。 默认值为 CSV。

    -cf 

    指定包含要监视的性能计数器列表的文件,每行一个计数器。

    -si <[[hh:]mm:]ss>

    指定采样间隔。 默认值为一秒。

    -o 

    指定输出文件或数据库SQL路径。 默认值为 STDOUT (写入命令窗口) 。

    -q [object]

    显示已安装计数器的列表, (实例) 。 若要列出一个对象的计数器,请包括对象名称。 例子

    -qx [object]

    显示具有 实例的已安装计数器的列表。 若要列出一个对象的计数器,请包括对象名称。

    -sc 

    指定要收集的样本数。 默认设置是收集数据,直到按 CTRL+C。

    -config 

    指定包含命令选项的设置文件。

    -s 

    指定在计数器路径中未指定计算机时要监视的远程计算机。

    -y

    在 无提示 的情况下回答所有问题的"是"。

    /?

    在命令提示符下显示帮助。

    示例

    若要将本地计算机 \Processor(_Total)\% Processor Time 的性能计数器的值写入命令窗口(默认采样间隔为 1 秒,直到按 CTRL+C),请键入:

    typeperf \Processor(_Total)\% Processor Time

    若要以 5 秒的采样间隔将文件 counters.txt 中的计数器列表的值写入制表符分隔的文件 domain2.tsv ,直到收集 50 个样本,请键入:

    typeperf -cf counters.txt -si 5 -sc 50 -f TSV -o domain2.tsv

    若要使用计数器对象 PhysicalDisk 的实例查询已安装的计数器,将生成的列表写入 counters.txt,请 键入:

    typeperf -qx PhysicalDisk -o counters.txt

    二、CPU使用率统计

    cpu使用率命令:typeperf "\Processor(_Total)\% Processor Time

    要收集用户态和系统态CPU使用时间,能够指定性能计数器User Time和Privileged Time。在命令提示符窗口或者cmd文件中,命令看起来是这样的:typeperf "\Processor(_Total)\% Privileged Time"

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

    三、内存使用率统计

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

    命令行:typeperf "\Memory\Available MBytes" "\Memory\Pages/sec"

    四、网络IO使用率统计

    网络接口每秒传递的字节数能够经过性能计数器\Network Interface(*)\Bytes Total/sec得到。通配符“*”表示报告的是系统全部网络接口的总字节数。

    命令行:typeperf "\Network Interface(某网卡)\Bytes Total/sec"

    获取网络接口的接收字节数,通过"\Network Interface(某网卡)\Bytes Received/sec"命令获取。

    获取网络接口的发送字节数,通过"\Network Interface(某网卡)\Bytes Sent/sec"命令获取。

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

    命令行:typeperf "\Network Interface(某网卡)\Current Bandwidth"

    性能计数器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

    五、磁盘性能统计

    获取物理磁盘相关性能计数器:typeperf -qx PhysicalDisk

    查询所有磁盘使用率:

    typeperf  "\PhysicalDisk(*)\% Idle Time" -si 5 -sc 2

    查询某个盘符对应磁盘使用率:

    typeperf  "\PhysicalDisk(* D:)\% Idle Time" -si 5 -sc 2

    查询平均磁盘读队列长度

    typeperf  "\PhysicalDisk(_Total)\Avg. Disk Read Queue Length" -si 5 -sc 2


    磁盘常见监控项:

    \PhysicalDisk(_Total)\Avg. Disk Queue Length  平均磁盘队列长度( Avg. Disk Queue Length) 在采样的时间间隔中,选中的物理磁盘读请求和写请求排队的平均数量。

    \PhysicalDisk(_Total)\Avg. Disk Read Queue Length  平均磁盘读队列长度( Avg. Disk Read Queue Length) 在采样的时间间隔中,选中的物理磁盘读请求排队的平均数量。

    \PhysicalDisk(_Total)\Avg. Disk Write Queue Length   平均磁盘写队列长度( Avg. Disk Write Queue Length) 在采样的时间间隔中,选中的物理磁盘写请求排队的平均数量。

    \PhysicalDisk(_Total)\% Disk Time  磁盘时间百分比(%Disk Time) 选中的物理磁盘忙于服务读请求或写请求总共用的时间的百分比,是磁盘写时间百分比与磁盘读时间百分比的和。

    \PhysicalDisk(_Total)\% Disk Read Time    磁盘读时间百分比(%Disk Read Time) 选中的物理磁盘忙于服务读请求总共用的时间的百分比

    \PhysicalDisk(_Total)\% Disk Write Time   磁盘写时间百分比(%Disk Write Time) 选中的物理磁盘忙于服务写请求总共用的时间的百分比

    \PhysicalDisk(_Total)\Avg. Disk sec/Transfer  平均磁盘秒数/传输( Avg. Disk sec/Transfer) 从物理磁盘进行传输的平均时间,以秒为单位

    \PhysicalDisk(_Total)\Avg. Disk sec/Read     IO响应时间 读    平均磁盘秒数/读( Avg. Disk sec/Read) 从物理磁盘读数据的平均时间,以秒为单位。

    \PhysicalDisk(_Total)\Avg. Disk sec/Write     IO响应时间 写   平均磁盘秒数/写( Avg. Disk sec/Write) 向物理磁盘写数据的平均时间,以秒为单位。

    \PhysicalDisk(_Total)\Disk Transfers/sec      IOPS  磁盘传输/秒(Disk Transfers/sec) 物理磁盘上的读和写操作的比率。

    \PhysicalDisk(_Total)\Disk Reads/sec          IOPS 读   磁盘读/秒(Disk Reads/sec) 物理磁盘上的读操作比率。

    \PhysicalDisk(_Total)\Disk Writes/sec          IOPS 写  磁盘写/秒(Disk Writes/sec) 物理磁盘上的写操作比率。

    \PhysicalDisk(_Total)\Disk Read Bytes/sec       IO吞吐量  磁盘读/秒(Disk Reads Bytes/sec) 物理磁盘上每秒读字节。

    \PhysicalDisk(_Total)\Disk Write Bytes/sec       IO吞吐量  磁盘写/秒(Disk Writes Bytes/sec) 物理磁盘上每秒写字节。

    \PhysicalDisk(_Total)\% Idle Time   空闲时间百分比(%Idle Time) 物理磁盘在采样时间间隔中处于空闲状态的时间百分比。

    六、收集数据库服务器性能统计

    1、查找和数据库JinRiDomesticOrder相关的性能参数

    TYPEPERF -qx "SQLServer:Databases" | FIND "JinRiDomesticOrder"  

    2、查找和数据库JinRiDomesticOrder相关的性能参数并导出

    TYPEPERF -qx "SQLServer:Databases" | FIND "JinRi" >>s:\perf.txt

    3、perf.txt这个文本文件中读取计数器信息,将技术器数值写入到perf.csv文件中,每隔10秒钟执行一次,共执行600次

    TYPEPERF -f CSV -o s:\perf.csv -si 10 -cf s:\perf.txt -sc 600

  • 相关阅读:
    ArcGIS教程——ArcGIS工具-按线分割面
    XCTF1-web unseping
    AD教程 (十九)PCB板框的评估和层叠设置
    Java-HelloWorld编写与执行(记事本)错误: 编码GBK的不可映射字符
    LeetCode链表问题——142.环形链表II(一题一文学会链表)
    $refs不是响应式的
    聊聊logback的DuplicateMessageFilter
    设备维修保养通知:如何使用API接口发送通知给相关人员
    污水除磷的方式
    SpringBoot 01: JavaConfig + @ImportResource + @PropertyResource
  • 原文地址:https://blog.csdn.net/byxdaz/article/details/126782202