Windows自带的typepef命令行脚本快速收集性能数据
Windows自带的typepef命令行脚本快速收集性能数据
有时候线上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
pef.bat

TYPEPERF -f CSV -o D:\MyCounters.csv -cf D:\perf.txt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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,欢迎大家贡献代码