性能分析工具

1. 概述

VTune是Intel一个比较强大的性能分析软件。主要包括三个小工具:

(1)Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点。

(2)Intel Threading Checker:用于查找线程错误, 能够检测资源竞争、线程死锁等问题

(3)Intel Threading Profiler:线程性能检测工具,多线程可能存在负载比平衡, 同步开销过大等线程相关的性能问题,该工具可以帮你发现每一个线程每一时刻的状态。

2. 安装

linux上,解压文件vtune_amplifier_xe_2011_update1.tar.gz;

执行install.sh脚本,跟据提示下一步就可以;

安装一个windows客户端VTune_Amplifier_XE_2011_update3_setup.exe,用于将收集的数据进行图形界面展示。

3. 使用

VTune有两种工作方式,我们一般使用的是远程模式,

本地模式是被分析的程序和VTune同时工作在同一台机器上

远程模式是指程序在一台机器上,VTune装在另一台机器上

1)启动需要分析的应用程序,以searcher_server为例

/home/admin/intel/vtune_amplifier_xe_2011/bin64/amplxe-cl -collect hotspots /home/admin/search/bin/is_searcher_server -c /home/admin/search/conf/searcher_server.cfg -l /home/admin/search/conf/searcher_log.cfg
-k restart -d

其中,amplxe-cl是指列出本机所支持的分析类型,这里选择-collect hotspots收集热点,

          还有amplxe-cl --report-list; 可支持的报告类型。

          更多见http://software.intel.com/zh-cn/blogs/2010/11/10/amplxe-cl/

          后面就是is_searcher_server启动参数

searcher_searver启动后,会自动生成一个数据文件,名为r000hs(之后生成的会自动命名为r001hs,r002hs...)

2)启动其它服务程序,在施压一段时间后,停止被分析的程序(也就是这里的is_searcher_server)

这时,r000hs里存的就是收集的数据信息。要注意,一定要停止被分析程序,否则数据不会生成到r000hs里面。

3)启动windows客户端VTune_Amplifier_XE_2011_update3_setup,将数据r000hs导入,步骤如下:

file->open->result,将r000hs加载,但此时会很慢,解决办法,使用sumba共享服务器,将linux文件在windows下共享,

sudo su进入root权限,
 
修改samba密码
smbpasswd -a admin;
New SMB password:
Retype new SMB password:
 
启动samba服务
/etc/init.d/smb start
 

在win7下,地址栏输入测试机的ip 10.20.137.40,就可以访问了,也可以将10.20.137.40映射为网络驱动器,方法,
计算机右键->映射网络驱动器,在弹出的界面,输入相应的路径,如图所示,

之后将\\10.20.137.40\admin\search\bin\r000hs 加载。
 
4)加载后,界面如图所示, 

其中Top-down Tree以树形结构展示每个调用所花费的时间及所占比,可以从时间花费最多的地方往下一层一层的展开,找到关键函数,分析其性能,

上图我们可以看到,关键函数evaluate所花费的时间比占11.3%.

另外可以通过Bottom-up来查看函数/模块/线程调用的时间耗费,如图所示,

其中,Function /call Stack是指函数调用的时间,还有其它选项,使用者自已点点就明白了。

5)补充说明,加载后如果看不函数信息,需要添加路径,在Module里找到被分析的程序(is_searcher_server),

双击后,在弹出的对话框中,将服务的路径加上去,然后点击Analyse Type窗口右上角的Re-resolve,就可以看到函数调用情况了。

 
vtune只能告诉我们性能热区,具体为什么成为热区,需要使用者跟据自已的经验和对项目的理解去分析并试验,从而优化性能。
 
 

网络性能分析工具

Network性能分析工具
ifconfig
ethereal
tethereal
iptraf
iwconfig
nfsstat
mrtg
ntop
netstat
cat /proc/sys/net
Network性能调优工具
ifconfig
iwconfig
sysctl

Network性能调整
一个应用系统出现如下情况时,我们认为该系统存在网络 性能问题:
网络接口的吞吐量小于期望值;
出现大量的丢包现象;
出现大量的冲突现象。

Network性能调整方法:
1、调整网卡的参数。
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Half
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
#ethtool -s eth0 duplex full
#ifconfig eth0 mtu 9000 up
2、增加网络缓冲区和包的队列。
# cat /proc/sys/net/ipv4/tcp_mem
196608 262144 393216
# cat /proc/sys/net/core/rmem_default
135168
# cat /proc/sys/net/core/rmem_max
131071
# cat /proc/sys/net/core/wmem_default
135168
# cat /proc/sys/net/core/wmem_max
131071
# cat /proc/sys/net/core/optmem_max
20480
# cat /proc/sys/net/core/netdev_max_backlog
300
# sysctl net.core.rmem_max
net.core.rmem_max = 131071
# sysctl -w net.core.rmem_max=135168
net.core.rmem_max = 135168
3、调整Webserving。
# sysctl net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_reuse = 0
# sysctl -w net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_reuse = 1
# sysctl net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_recycle = 0
# sysctl -w net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_recycle = 1

日志分析工具


在性能测试过程中,需要对应用的超时日志进行分析,从而得出超时概率,用于判断超时是否在可以接受的范围内,并定位引起超时的原因。 
淘宝性能测试团队针对目前最主要的Profiler格式的超时日志,用ruby语言自主开发了日志分析工具,实现在tWork执行日志分析和展示分析结果。分析结果包括:日志的总体统计信息、平均响应时间、区间分布、耗时排名。同时,结果展示结合了图表,使得对日志分析更加直观、方便。 
日志分析结果的三个维度: 
1) 平均响应时间:统计日志中同一个访问请求的每个方法或模板的平均响应时间。 
通过该维度,可以直观的看出,测试中响应时间消耗较大的方法或模板。如图17所示。 
2) 区间分布:按照响应时间划分出的9个区间,统计每个方法或模板的响应时间落入该区间的次数。 
通过该维度,可以直观的看出,方法或模版的响应时间在大多数情况下落在哪个区间内,从而判断该响应时间是否正常。

3) 耗时排名:统计每次请求中响应时间最大的5个方法或模板出现的次数。 
通过该维度,可以直观的看出,所有的超时请求主要是由于哪些方法或模板引起的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值