• 1. 介绍

Vtune 是 intel 的一款性能分析工具,其既可以分析某种应用的特性,也可以检测整个系统的特性,能够找出热点瓶颈的所在,给开发者提供良好的优化思路。

  • 2.Vtune 下载,安装

Vtune 有 windows 版本和 linux 版本,有收费的,试用的,免费的。本人使用的是一款试用版本, vtune 地址 http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/ ,下载前需要注册账号,得到序列号,安装的时候需要用到。

安装 vtune 需要在 root 账号下,或者使用 sudo 进行安装,安装成功后,需要将用户加到 vtune 这个 group 下,才能够使用 vtune 。 Usermod –aG vtune user

  • 3.vtune 使用

3.1 分析应用程序

amplxe-cl -collect hotspots -r test_hot ./test

通过上面的命令可以收集到 test 应用的热点数据,保存在 test_hot 目录下。还可收集 locksandwaits , lightweight-hotspots 等类型数据,具体可以使用 amplxe-cl –help 查看详细方法,或者 man amplxe-cl, 当然 source /opt/intel/vtune_amplifier_xe_2011/amplxe-vars.sh( 这是 vtune 的安装成功后得到的文件 ) 之后, vtune 命令才能够直接用

需要注意的是,在检测java应用的时候,如果需要得到 jit 的信息,在运行前,需要设置环境变量 export  AMPLXE_EXPERIMENTAL=1

3.2 Amplxe-runsa 和 Amplxe-runss

Amplxe-runsa ,系统模式的性能分析; Amplxe-runss ,用户模式的性能分析。

Amplxe-runsa 能够分析出整个系统的热点瓶颈,使用实例如下所示,其中 test 为收集数据目录。amplxe-runsa –target=host -r ./test

Amplxe-runss 分析的是用户模式下的热点瓶颈,使用实例如下, test 为数据数据目录, app 为应用。amplxe-runss  -r test -- app

amplxe-runss 可以 attach 到某个进程上去,进行监测收集。amplxe-runss –t cpu –r ./test -target-pid=<integer> -interval=<integer>

3.3 生成统计数据

用命令行生成统计结果, amplxe-cl -report hotspots -r test_hot -report-out test_out ,其中 hotspots 为上面 collect 的收集数据类型, test_hot 为收集数据的目录 test_out 为统计的结果文件。

用 vtune 自带的图形工具查看结果,例如在 ubuntu 下,使用 ampx-cl-gui 。在图形界面下看到的数据会丰富一些,有助于分析,例如能够看到 CPI 等信息。

Amplxe-cl,amplxe-runss,amplxe-runsa 都可以 attach 一个进程, -target-pid=integer, 但是出来的 report 是没有 jit 信息 的,用 vtune 起动的应用,最终才会生成带 jit信息 的report

  • 4. 使用过程中的出错情况

Specjbb lightweight-hotspots

Using result path `/home/xxx/test/specjbb2005/specjbb_hot'

Executing actions 16 % Loading data files

Warning: Cannot load data file `/home/xxx/test/specjbb2005/specjbb_hot/d                                                                              ata.0/tbs1381903680.tb6' (tbrw call "TBRW_dobind(tbrwFile->getHandle(), streamIn                                                                             dex)" failed: Invalid sample file (24)).

Executing actions 50 % done

Error: Error 0x4000001e (Cannot load raw collector data)

 

上面的报错是因为sample 数量太多了,因此在生成lightweight -hotspots的时候会出错,在减少采样的情况下,可以避免上面的错误

 

解决办法 :

加参数 -target-duration-type=medium, 这时产生的结果数据文件较大, windows 下 vtune gui 打开很长时间没有反应

将参数设置为 -target-duration-type=long ,这是产生的文件会小一些, vtune gui 打开就没什么问题了。

 

实际上还有个参数 -duration xxx , xxx 单位为 seconds ,就是让 vtune 检测 xxx 这些秒,将数值设置得小一些,也可以达到上面的效果,不过只是监控了程序的一部分,应用程序没有完全跑完。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐