学习性能测试线路图

来源:互联网 发布:sql insert 语句value 编辑:程序博客网 时间:2024/06/08 19:10

1        概览

学习性能测试线路图

 

纵向划分3颗子树:vugen,controller,monitor。优先学习vugen脚本开发以及调试。

横向划分为2层:基础知识以及高级应用。

 

2        基础知识

2.1      Loadrunner工具使用

2.1.1   建议学习路径

 

Vugen开发脚本(函数使用)->controller场景设置->monitor增加计数器

 http://www.cnblogs.com/jackei/archive/2006/10/20/534684.html


2.1.2   Loadrunner 认证

学习性能测试线路图

 


2.1.3   Vugen常用增强函数

增加事务:lr_start_transaction/:lr_end_transaction

检查点: web_reg_find

关联 web_reg_save_paramweb_set_max_html_param_len

日志 lr_error_messagelr_log_message,lr_output_message

选项设置: web_set_timeout

http header: web_add_auto_header

以及更改runtime setting

 

 

 

2.1.4   Loadrunner 架构图

概览图

 学习性能测试线路图

 详细架构图:

 学习性能测试线路图

  

2.2      Html/http协议

HTML 4.01 Specification

http://www.w3.org/TR/html4/

http://www.eygle.com/digest/2006/12/html_xml_and_internet.html

 

对性能测试而言,META http-equiv控制http头、浏览器行为,故最为重要。

 

http协议:

 

http://www.faqs.org/rfcs/rfc2616.html

 

学习性能测试线路图

 

客户端发送请求:

 

学习性能测试线路图

 

服务器响应:

 学习性能测试线路图

2.3      C 语言基础编程

Loadrunner常用的c函数主要集中在内存分配/释放、字符串操作、文件读写。

 

: malloc/free

  Sprintf/strcmp/strlen/

  Fopen/fread/fwrite

 

2.4      Linux 性能分析初步

核心指令:

Top

Sar

Vmstat

Iostat

Sar  -n  DEV

/proc文件系统

 

分析经验性步骤:

首先查看 CPU 使用情况,按照诊断CPU、内存或磁盘瓶颈的指导进行操作。对于下面的每个步骤,查找一端时间内的趋势,从中收集系统运行性能较差时的数据。另外,只有将这些数据与系统正常运行时收集的数据进行比较时才能进行准确的诊断。

步骤 1

# sar -u [interval] [iterations]
(
示例: sar -u 5 30)
%idle
是否很低? 这是 CPU 未在运行任何进程的时间百分比。在一端时间内 %idle 为零可能是 CPU 瓶颈的第一个指示。

不是 -> 系统未发生 CPU 瓶颈。转至步骤3
->系统可能发生了 CPU、内存或 I/O 瓶颈。转至步骤2

步骤2

%usr 是否较高? 很多系统正常情况下花费 80%CPU 时间用于用户,20% 用于系统。其他系统通常会使用80% 左右的用户时间。

不是 -> 系统可能遇到 CPU、内存或I/O 瓶颈。转至步骤 3
-> 系统可能由于用户进程遇到 CPU瓶颈。转至部分 3,部分 A, 调整系统的 CPU瓶颈。

步骤3

%wio 的值是否大于15? (不同os有不同的阀值)

-> 以后记住这个值。它可能表示磁盘或磁带瓶颈。转至步骤4
不是 ->转至步骤 4

步骤4

# sar -d [interval] [iterations]
用于任何磁盘的%busy 是否都大于50? (请记住,50% 指示一个大概的指南,它可能远远高于您系统的正常值。在某些系统上,甚至%busy 值为 20可能就表示发生了磁盘瓶颈,而其他系统正常情况下可能就为 50%busy)对于同一个磁盘上,avwait 是否大于avserv?

不是 -> 很可能不是磁盘瓶颈,转至步骤6
->此设备上好像发生了 IO 瓶颈。
转至步骤5

步骤5

系统上存在磁盘瓶颈,发生瓶颈的磁盘上有哪些内容?

原始分区,
文件系统 -> 转至部分3,部分 B,调整发生磁盘 IO瓶颈的系统。
Swap ->
可能是由于内存瓶颈导致的。
转至步骤6

步骤6

# vmstat [interval][iterations]
在很长的一端时间内,po 是否总是大于0?
对于一个 s800 系统(free * 4k) 是否小于 2 MB
(
对于 s700 系统 free * 4k 是否小于 1MB)?
(
2 MB1 MB 指示大概的指南,真正的LOTSFREE 值,即系统开始发生 paging的值是在系统引导时计算的,它是基于系统内存的大小的。)

不是 -> 如果步骤 1 中的%idle 较低,系统则很可能发生了 CPU瓶颈。
转至部分 3,部分 A,调整发生了CPU 瓶颈的系统。
如果 %idle不是很低,则可能不是 CPU、磁盘IO或者内存瓶颈。
请转至部分4,其他瓶颈。
-> 系统上存在内存瓶颈,转至部分 3 部分C,调整发生内存瓶颈的系统。

 

2.5      Windows 性能分析初步

windows perfmon

同样集中在 cpu,内存,io,网络上。

 

一般经验值:

网络

   网络利用率阀值没有统一。 <30% or 80%?

冲突率:<1%

Packets ReceivedErrors < 1%

 

I/O

Disk Time%  <90%

Avg. Disk Bytes/Read+  Avg. Disk Bytes/Write<20K

Avg. Disksec/Transfer <0.3 sec

队列长度:Queue Length<2

  Avg. Disk sec/Transfer<18 milliseconds

 

内存

      Available Mbytes >25%

   Pagein+out  <20

   内存泄露以及错误:

  Pool Nonpaged Bytes : an increase of 10 percent or more from its value at systemstartup

 

   Server-> Pool Nonpaged Failures shows the number of timesallocations from nonpaged pool have failed - indicates that thecomputer `s physical memory is too small. 应为0

Server -> Pool Paged Failures indicate thateither physical memory or a paging file is near capacity. 应为0

Server -> Pool Nonpaged Peak shows themaximum number of bytes in nonpaged pool the server has had in useat any one point. Indicates how much physical memory the computershould have.

 

处理器

利用率 <85%

每个CPU队列长度<2

Context Switches/sec<5000或者<5%of total threads

 

 

3        高级应用

3.1      性能建模

business layerfunctionlayersessionlayercustomerlayer出发,借助日志分析工具挖掘系统负载模型、用户行为模型。

 学习性能测试线路图

Mercury End UserManagement正是一个从client视觉出发的业务监控解决方案。

 

3.2      网络嗅探器

ethreal,fiddler,以及http debuger工具,诊断网络问题。

3.3      Loadrunner troubleshooting

各个环节都可能有问题。 client,通信,服务器)

 学习性能测试线路图

经验性步骤:

诊断vugen脚本、loadrunner场景设置、客户端硬件资源是否充足

判断服务器端各层是否达到资源上限

借助ethereal等网络嗅探器判断c/s通信问题

 

 

3.4      Linux性能分析与调优

深入了解:

 

进程/多线程编程

同步机制

Gdb 调试core

内核参数

3.5      Windows性能分析与调优

Windows 其他计数器

3.6      C语言调用dll扩展测试脚本

Dll编写格式:

int  __stdcall   lr_getLinuxIOwait_end()

{

      clnt_destroy(clnt);

}

.def文件

EXPORTS

       lr_getLinuxIOwait_end @3

 

loadrunner调用dll函数:

lr_load_dll("my.dll");

3.7      Apache/jboss/weblogic/oracle性能优化

参见各个产品tuning 文档

 

http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

http://httpd.apache.org/docs/1.3/misc/perf-tuning.html

http://edocs.bea.com/wls/docs81/perform/

http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossASTuningSliming

http://www.jboss.org/index.html?module=bb&op=viewforum&f=121

3.8      计算机性能评测研究方向

 

Ø 相关理论研究(泊松分布排队论MaKov模型、Montecarlo模拟、自相似理论)

Ø 负载特性Workload Characteristic的研究(CommercialWorkload/ Technical Workload

Ø 基准程序Benchmark的研究

Ø 性能指标的研究(全生命周期/高效能/TPOTotal Productivity Ownership/SLA Servcie LevelAgreement/QoS

Ø 模拟器的研究(SimpleScalar/SimOS/SandOS

Ø 测试系统的研究(Benchmark Factory/ServerScope/BenchmarkStudio/LoadRunner/Forecast toolset

Ø 监控系统Perfomance EvaluationIntelVtune/ EMon/ TeamQuest Lite/ ServerScope-Monitor/Grid-View

Ø 性能评测与体系结构的结合(Computer architecture analysis usingworkloads

 

参见http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html

 

3.9      Mercucy performance center

http://www.mercury.com/us/products/performance-center/

 学习性能测试线路图

 学习性能测试线路图

 

 

 

4        性能测试书籍

Microsoft .NETWeb应用程序性能测试》

《软件性能测试过程详解与案例剖析》

WEB性能测试实战》

J2EE性能测试》

LoadRunner性能测试实战

5        测试网站

http://www.51testing.com/

http://support.mercury.com


 

0 0