top

Windows自带的typepef命令行脚本快速收集性能数据

Windows自带的typepef命令行脚本快速收集性能数据

转载自:http://www.580top.com/html/201401/dba_2773.htm#6642783-tsina-1-69879-cc85c293b84219bc395cda389baa7e54

有时候线上WINDOWS服务器报资源紧张时,有可能会远程3389不到主机

或者远程上去以后卡不动,想收集一些性能参数无能为力

而此时CACTI或ZABBIX中性能数据又可能因为粒度太粗(一般5分钟一次采集)或者没有预先定义想要的参数

此时可以通过远程执行CMD命令快速收集一些关键的性能数据用于判断

如果有一个预先准备好的脚本会更快

我的习惯是将数据收集到CSV中,有时候也会在服务器上预定义一些触发条件跑此脚本并将结果入库

脚本很简单就一行命令,和一个收集项的文本(该文本中定义的项可以灵活配置)

pef.bat内容如下:

   TYPEPERF -f CSV -o D:\script\MyCounters.csv -si 0:10 -cf D:\script\perf.txt 

   REM  标黄的是采集间隔时间,这里是10秒1次

perf.txt 内容如下:

\Processor Information(_Total)\% Processor Time
\Process(_Total)\% Processor Time
\Process(sqlservr)\% Processor Time
\Processor(_Total)\% Processor Time
\Processor(_Total)\% User Time
\Processor(_Total)\% Privileged Time
\PhysicalDisk(_Total)\% Idle Time
\PhysicalDisk(_Total)\% Disk Time
\PhysicalDisk(_Total)\Avg. Disk Queue Length
\PhysicalDisk(_Total)\Current Disk Queue Length
\Memory\Page Faults/sec
\Memory\Available MBytes
\Memory\Pages/sec
\
SQLServer:Databases(_Total)\Active Transactions
\SQLServer:General Statistics\User Connections
\SQLServer:Memory Manager\Memory Grants Pending
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\SQLServer:Buffer Manager\Total pages
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page life expectancy

标黄的是SQLSERVER计数器,如没安装可删除

perf.txt中的项,可以通过性能计数器得到

注:可以定义一些更细粒度的项(例,某个DB的性能,某个分区的性能等)

通常第一行数据不准。我一般的做法是有个分析程序(C#写的)在处理的时候跳过首行,

将数据导到库里去,注意虽然TYPEPERF有-O到数据库里的选项(需要设置odbc源),但还是推荐先保存成文本,用一个分析程序去入库。

 

Microsoft ® TypePerf.exe (6.1.7600.16385)

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

用法: TYPEPERF { <counter [counter ...]> | -cf <filename> | -q [object]                                 | -qx [object] } [options]

参数:   <counter [counter ...]>       要监视的性能计数器。

选项:   -?                            显示跟上下文相关的帮助。  

-f <CSV|TSV|BIN|SQL>          输出文件格式。默认值是 CSV。

-cf <filename>                含有监视的性能计数器的文件,一个计数器一行。

-si <[[hh:]mm:]ss>            示例间的时间。默认值是 1 秒。  

-o <filename>                 输出文件或 SQL 数据库的路径。默认值为 STDOUT。  

-q [object]                   列出已安装的计数器(无实例)。要列出某个对象的                                 计数器,包括对象名,如 Processor。

 -qx [object]                  列出已安装的计数器(带实例)。要列出某个对象的                                 计数器,包括对象名,如 Processor。

 -sc <samples>                 要收集的示例数量。默认值为,在 CTRL+C 之前都                                 进行采样。  

-config <filename>            含有命令选项的设置文件。

-s <computer_name>            在计数器路径中没有指定服务器的情况下要监视的                                 服务器。

-y                            不用提示对所有问题都回答 yes。

注意:   Counter 是性能计数器的全名,格式为   "\<Computer>\<Object>(<Instance>)\<Counter>";   例如 "\Server1\Processor(0)\% User Time"。

示例:   typeperf "\Processor(_Total)\% Processor Time"   typeperf -cf counters.txt -si 5 -sc 50 -f TSV -o domain2.tsv   typeperf -qx PhysicalDisk -o counters.txt

 

--------------------------------------------------------------------------------------------------------------------

perf.txt

复制代码
\Processor Information(_Total)\% Processor Time
\Process(_Total)\% Processor Time
\Process(sqlservr)\% Processor Time
\Processor(_Total)\% Processor Time
\Processor(_Total)\% User Time
\Processor(_Total)\% Privileged Time
\PhysicalDisk(_Total)\% Idle Time
\PhysicalDisk(_Total)\% Disk Time
\PhysicalDisk(_Total)\Avg. Disk Queue Length
\PhysicalDisk(_Total)\Current Disk Queue Length
\Memory\Page Faults/sec
\Memory\Available MBytes
\Memory\Pages/sec
\SQLServer:Databases(_Total)\Active Transactions
\SQLServer:General Statistics\User Connections
\SQLServer:Memory Manager\Memory Grants Pending
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\SQLServer:Buffer Manager\Total pages
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page life expectancy
View Code
复制代码

pef.bat

TYPEPERF -f CSV -o D:\MyCounters.csv  -cf D:\perf.txt 
View Code

posted @   桦仔  阅读(1297)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示