Windows性能监控工具-xperf

关键词:

Windows性能监控xperfKDV1000

摘要:

Xperf是一款系统级工具,是产品套件Windows性能工具包(Windows Performance Toolkit,WPT)的一部分,而WPT则属于微软软件开发包(Microsoft Software Development Kit,SDK)。Xperf是Windows事件跟踪系统(Event Tracing for Windows,ETW)的补充。ETW则是服务器操作系统的一个内置组件,提供详细的系统性能和系统数据。

补充:WPT包含三款工具(xperf、xperfview、GPU):

Xperf:使用CMD命令行工作。包括性能监控开始,收集,和打开等。

XperfView:这是为Xperf的采样文件可视化显示的工具,可以绘制各种资源使用曲线,并用任

意方式组织数据,排序。

GPUView:不做介绍。

案例描述

我们公司有KDV1000和PCMT都是基于windows系统的,但是对于windows系统的监控工具却不多,有的工具不权威,有的工具又有他的局限性,比如工具本身的资源占用情况和监控时间等;下面我想向大家介绍xperf是如何监控系统资源。

1案例分析

对于KDV1000和PCMT这两款在windows下运行的产品,在编高能力级别的视频时耗用资源较高,比如KDV1000在第一路编720P/30HP,解1080P/30HP,第二路解H264/H239/SXGA@5HP时,耗用CPU竟达90%。

xperf工具有以下几个特征:

1.工具本身具有权威性,而且是免费的;

2.工具本身耗用资源少(只要是监控肯定会有资源耗用);

3.工具能长时间监控,有专业的图形分析;

4.支持命令行使用,方便结合其他脚本使用;

所以xperf是非常值得推广的。

2解决过程

2.1xperf安装

安装WPT之前首先安装Microsoft

.NET Framework 4。

文件请自行到网上下载。PS:注意查看系统是32位还是64位的,安装全部选择默认就可以。

2.2xperf使用

对于xperf的使用先介绍给例子:

以管理员权限打开DOS,输入以下命令:

xperf –on base

xperf –d trace.etl

xperf trace.etl

第一条命令会收集多个种类的内核事件,base是(PROC_THREAD、LOADER、DISK_IO、HARD_FAULTS、PROFILE和MEMIFO)所有内核事件的集合,并将数据记录到一个名为kernel.etl的日志文件中,这个文件一般在C盘根目录下。

第二条命令就是将内核事件收集到trace.etl这个文件中。

第三条命令就是使用xperfview这个工具将trace.etl使用图形化工具展现出来。

下面引出以下几个问题:

内核事件有哪些?

如何使用xperfview?

问题1:我们可以使用xperf –providers k获得内核事件列表,以及不同组所代表了不同内核事件的集合,内核事件列表如下文:

C:\windows\system32>xperf -providers k

Kernel Flags:

PROC_THREAD:记录进程的创建和删除

LOADER:记录内核模式和使用模式加载和卸载事件

PROFILE:捕获CPU采样的配置文件信息

CSWITCH:记录上下文切换()

COMPACT_CSWITCH:紧凑的上下文切换

DISPATCHER: CPU调度器

DPC: DPC事件

INTERRUPT:打断事件

SYSCALL:系统调用

PRIORITY:优先级变更事件

SPINLOCK:自旋锁的碰撞

ALPC:高级本地过程调用

PERF_COUNTER:进程项的性能计数器

DISK_IO: Disk I/O

DISK_IO_INIT: Disk I/O初始化

FILE_IO:文件系统操作的结束时间和结果

FILE_IO_INIT:文件操作系统(create/open/close/read/write)

HARD_FAULTS:硬件分页错误

FILENAME: FileName (e.g.,FileName create/delete/rundown)

SPLIT_IO:分裂I/O

REGISTRY:注册表的更改记录

DRIVERS:驱动事件

POWER:电源管理事件

NETWORKTRACE:网络事件(e.g., tcp/udp send/receive)

VIRT_ALLOC:虚拟分配保留和释放

MEMINFO:内存列表信息

ALL_FAULTS:所有的页面故障,包括硬上写,复制,需求零故障等

CONTMEMGEN:连续的内存生成器

POOL:跟踪池

CPU_CONFIG: NUMA拓扑结构,处理器组和处理器索引号映射。默认情况下,它始终处于启用状态。

Kernel Groups:

Base:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+MEMINFO

Diag:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSW

ITCH+PERF_COUNTER+COMPACT_CSWITCH

DiagEasy:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSW

ITCH+PERF_COUNTER

Latency:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSW

ITCH+PROFILE

FileIO:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+FILE_IO+FILE_IO_I

NIT

IOTrace:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+CSWITCH

ResumeTrace:PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+POWER

SysProf:PROC_THREAD+LOADER+PROFILE

Network:PROC_THREAD+LOADER+NETWORKTRACE

总结:收集内核事件的通用命令公式如下:

Xperf -on [Kernel Flags| Kernel Groups]+ [KernelFlags| Kernel Groups]+…

问题2:如何使用xperfview

你可以使用命令将xperfview打开也可以直接找到程序安装目录将其打开。(直接在cmd中直接输入xperfview)

打开你保存好的etl文件,如下图:

监控图

这三个图分别是CPU使用率,进程的CPU使用率,线程的CPU使用率随着时间的变化而变化的趋势图,那么我们可以对上图进行如下操作:

1.在图上点击右键选择Summary Table查看CPU使用列表详情。

详情

备注:硬盘读写速度不是很好的话,建议大家使用Simple Summary Table。

详图

打开的列表详情包含了在监控性能的这段时间内整个系统的平均cpu使用率以及每个进程使用的平均CPU率以及改进程下调用模块的CPU使用率。

2.我们还可以对相应的曲线进行配色如图,只需双击下图的CPU#中的CPU 0,就会弹出Color框,点击相应的颜色后即可:

color选择

3.可以通过拉选范围对图形的局部进行分析可以做如下操作:放大选择范围,克隆选择范围,放弃放大,全选,选择指定范围

select zoom

4.选择指定显示的参数如下图,只显示4核CPU中的CPU1和CPU3

CPU select

5.选择任意两张图表合并对比,这样就能相互联系的看待问题;

Step1:右击图表,选择Overlay Graph然后选择需要合并的父项及子项。

Overlay Graph

Step2:合并后如下图所示:

Merge

2.3xperf使用中遇到的问题

Q1:Xperf支持的操作系统:

支持WINDOWS

VISTA, Windows Server 2008以及更高的操作系统,由于历史遗留问题,WINDOWS XP和WINDOWS Server 2003对WPT的支持不好,内核在开发的时候没有考虑到未来的程序性能调试的复杂度,所以xperf不支持WINDOWS XP和WINDOWS Server 2003。

Q2:Xperf收集数据时,一定要注意文件大小,而且读etl文件时对硬盘的读写速度要求也比较高,综合以上,实践中得出的建议监控时间为1小时,那很多时候拷机项的时间都是好几个小时的,这时候我们可以通过批处理来完成连续监控,且每个文件都收集1小时的,然而批处理没有sleep的用法,但这也很容易解决我们可以在批处理中调用VBS,VBS文件中简单的写上一句WScript.Sleep 3600即可。

Q3:由于数据收集你的硬盘也很有可能会爆,所以在监控之前先预估下硬盘大小是否支持。

3解决结果

使用Xperf工具很专业的解决了我们PCMT以及KDV1000的CPU监控需求,为我们基于WINDOWS上的终端提供了保障。

4总结

难能可贵的是该工具的权威性,专业性,稳定性还有它是免费的。所以很希望推荐大家使用这款工具。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容