淘宝性能测试要点

上一篇 / 下一篇  2011-12-12 17:45:31 / 个人分类:性能测试

  • 每台服务器每秒平均PV量= ( (80%*总PV)/(24*60*60*(9/24)))/服务器数量,
  • 即每台服务器每秒平均PV量=2.14*(总PV)/* (24*60*60) /服务器数量
  • 最高峰的pv量是1.29倍的平均pv值

q{2sFS/G9g {A0

~L)J{Yt8a0

51Testing软件测试网,J2R^;C-Uw1Fj{-A*]

*PI i9U;^(N!Q0  性能测试策略

m`ls"o0

C(h!N*V*~1p0  1.模拟生产线真实的硬件环境。51Testing软件测试网;au _"C9a;Y:Od

51Testing软件测试网uZZ)d]riB(@

  2.服务器置于同一机房,最大限度避免网络问题。

7t6Uo"\Zd8d0

p9f p2z)|`o[0  3.以PV为切入点,通过模型将其转换成性能测试可量化的TPS。

;O8L7X1mX1`4v0

N2]6?t9L5wmtz0  4.性能测试数据分为基础数据和业务数据两部分,索引和SQL都会被测试到。51Testing软件测试网z+H#V:~#yu:g/}}

51Testing软件测试网3G uP'XB(e*pl${"n

  5.日志等级设置成warn,避免大量打印log对性能测试结果的影响。

+`.c\_w051Testing软件测试网 ^,Oc.O&q Cq/X @9?gf

  6.屏蔽ESI缓存,模拟最坏的情况。51Testing软件测试网5f{qgc6a H

51Testing软件测试网ohrpK"v

  7.先单场景,后混合场景,确保每个性能瓶颈都得到调优。51Testing软件测试网tm7Dw1W!CdH

_!c6pQ"zs0  8.拆分问题,隔离分析,定位性能瓶颈。51Testing软件测试网+nj ki3G i

0[F(~su7D6_\S5]1[0  9.根据性能测试通过标准,来判断被测性能点通过与否。

Y,c.F\]Iw Q0

&Ri/CdK]T3X0  10.针对当前无法解决的性能瓶颈,录入QC域进行跟踪,并请专家进行风险评估。51Testing软件测试网5_'],m:E#CVf wj

51Testing软件测试网&NG TL3J

  性能测试压力变化模型51Testing软件测试网gv5[5R/z z

9y^%} d/kC2Z w0

;Zzy@E7j5@1q0  a点:性能期望值51Testing软件测试网hv-h O9KE&nruKp

51Testing软件测试网emh*i8qbHl#s

  b点:高于期望,系统资源处于临界点51Testing软件测试网-k*G6u0M|f

51Testing软件测试网?nI8_B!T\0uxN b

  c点:高于期望,拐点

Y6`ZR,h_2a9v0

&ZH+x WBn*?0T0  d点:超过负载,系统崩溃51Testing软件测试网r&\0EZ[7neUC

3mQ9]5adt_+M:xj q0  性能测试

E:GIvZd)E2K0

l1\A/zBgi@c0  a点到b点之间的系统性能,以性能预期目标为前提,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。51Testing软件测试网+F3X8M| ~(Zt/D

51Testing软件测试网{ t Zb|Lr

  负载测试

2Bu?7[e+_[*B#P051Testing软件测试网&x ~;VG Xvs]

  b点的系统性能,对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到极限,例如某种资源已经达到饱和状态等。

:E!W Zeq_6w^\051Testing软件测试网dr g+o_

  压力测试51Testing软件测试网)Ag L@1YW#j

51Testing软件测试网4Hkb"c0u wfZ

  b点到d点之间,超过安全负载的情况下,对系统不断施加压力,是通过确定一个系统的瓶颈或不能接收用户请求的性能点,来获得系统能提供的最大服务级别的测试。51Testing软件测试网w[N!__F

51Testing软件测试网#vq#\G}H"{ U9~

  稳定性测试

.~Z Bo8{W5s0Nj051Testing软件测试网 {9J:T5zohn0E

  a点到b点之间,被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试时间为n*12小时。51Testing软件测试网%TRp:S(c9]

8Q6[9H-Z/bAow:i0  监控指标

0Jdn#@8]!V/rJ0

D%s }X1B1R0  性能测试通常需要监控的指标包括:

$V4`$?h+P E&q }051Testing软件测试网 MkIS2E9s(}#U8R

  1.服务器Linux(包括CPU、Memory、Load、I/O)。

.tf,uW6~mf0

T+lX+]p0c0  2.数据库:1.Mysql 2.Oracle(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数)。51Testing软件测试网(nCgT@9~?6k

51Testing软件测试网C/pZt i%XF'z"B

  3.中间件:1.Jboss 2. Apache(包括线程数、连接数、日志)。

xy0J/i0p p+C051Testing软件测试网~?(u r;sK@3V0t

  4.网络: 吞吐量、吞吐率。51Testing软件测试网m4zP(xS!Y!bj/o

0hu9q5|)Lg0  5.应用: jvm内存、日志、Full GC频率。51Testing软件测试网"P;y-p"{f2qU

51Testing软件测试网:m5c)oelT Q

  6.监控工具LoadRunner):用户执行情况、场景状态、事务响应时间、TPS等。

o,d_5l;y051Testing软件测试网V| U!@L)aUu.w8V?A

  7.测试机资源:CPU、Memory、网络、磁盘空间。51Testing软件测试网f tkSI

51Testing软件测试网.K"m)U9x+p yn_

  监控工具

C V&B;aHK B B+E(f051Testing软件测试网$xW K[XI

  性能测试通常采用下列工具进行监控:51Testing软件测试网&F;j*APBS{ o:]zC

51Testing软件测试网P3K+iCYP G ?,kf{$O[

  1.Profiler。一个记录log的类,阿里巴巴集团自主开发,嵌入到应用代码中使用。51Testing软件测试网?t&K2m7o'wv/o5x,P ze

vu'xKL0  2.Jstat。监控java进程GC情况,判断GC是否正常。51Testing软件测试网x[\u0nmAyA

51Testing软件测试网)a ^4lF/Clwmr

  3.JConsole。监控java内存、java CPU使用率、线程执行情况等,需要在JVM参数中进行配置。

%T"T1_E9YO ytF1y0

/smB-Z Z ^0  4.JMap。监控java程序是否有内存泄漏,需要配合eclipse插件或者MemoryAnalyzer来使用。51Testing软件测试网;Wq|"T#w.{:^ Y

D-lKS"?(^ c0  5.JProfiler。全面监控每个节点的CPU使用率、内存使用率、响应时间累计值、线程执行情况等,需要在JVM参数中进行配置。51Testing软件测试网Zn6K)Ey6y

^'kcO%T,MC z5]o v0  6.Nmon。全面监控linux系统资源使用情况,包括CPU、内存、I/O等,可独立于应用监控。

9_ ~+UG#[3B-V0

cxQ6{^pz0  7.Valgrind。监控C/C++程序是否存在内存泄漏,基于linux环境。51Testing软件测试网.R@ki5} R i#|

Lx/t1G#` I q p0  8.Vmmap和ApplicationVerifier。监控C/C++程序是否存在内存泄漏,基于windows环境。

3djXD9YZ[8jC.}0

.a7Ls)Id|0  性能分析

g8]E#z"Xo0

vUGo1Gb[0  可按以下顺序:

*EgE/bpq0B0

SKZ-}"Z oK0  中间件瓶颈(apache/jboss参数配置、数据库参数配置)->

8[,\cB1o|0

4Z!Y,cc A3GaR1A(d0  应用服务的debug log ->51Testing软件测试网)W \!y#E$v/bHx_E

51Testing软件测试网PY8mU_3ZM-wd[1}h)a

  应用服务的filter log ->51Testing软件测试网C+B3htP&g

ac$?Bx3b m9Fu.V0  本应用的性能瓶颈(SQL语句、索引、业务逻辑、线程池设置、算法)->51Testing软件测试网x`(O3]E*e

51Testing软件测试网[x~4i?jL9[,X5l`

  服务提供者的性能瓶颈 ->

U,J2~5pm"S x051Testing软件测试网&ZsZ9I)I]2]

  相关联的底层存储应用的性能瓶颈51Testing软件测试网y v$~FV/e,F7r/[C4`

51Testing软件测试网cL@&X:U0C$g xt

  分析标准

C`3O.n~V-|wR3?051Testing软件测试网 m8i"@h#v:s

  通过性能指标的表现形式,分析性能是否稳定。比如:51Testing软件测试网2I9} fma:Y@H

51Testing软件测试网*K1I8Hm Y w0sw

  1.响应时间是否符合性能预期,表现是否稳定。

l2Wz!r2x0

ZCg6_H XJ0  2.应用日志中,超时的概率,是否在可接受的范围之内。

,hkvUbRO6}7w0

Qe HB*E.d$V0  3.TPS维持在多大的范围内,是否有波形出现,标准差有多少,是否符合预期。

eTW @ St CT C0

!uU9C!y} @3G)p4Bl0  4.服务器CPU、内存、load是否在合理的范围内,等等。51Testing软件测试网3v!vM}Al

#\^*o.cF0  分析工具51Testing软件测试网N'[-L E1Vp$r Q"f_

51Testing软件测试网)F~!T'zLh'^ ej

  对于部分性能指标,可借助自动分析工具,统计出数据的总体趋势:51Testing软件测试网 [TI ~2v'@Y+EAA

+g&}(N KC @8\0  1.LoadRunner analysis51Testing软件测试网 z3^.~)TrM

1RcE'E)H.}Z0  LoadRunner analysis是loadrunner的一个部件,用于将运行过程中所采集到的数据生成报表,主要用于采集TPS、响应时间、服务器资源使用情况等变化趋势。

kr @'[WtS051Testing软件测试网 y,A/I5ph;b |*B#R

  2.Memory Analyzer

{1t7eVH7S;F+[ Z,[@0

%mM3g/p{;l9d0  Memory Analyzer工具可以解析Jmap dump出来的内存信息,查找是否有内存泄漏。51Testing软件测试网%h^+F [A

9av(C+Z"p?3M{0  3.nmon_analyser51Testing软件测试网^B9T/tK9n8z$P3y

)m6Ud)r0_8tzc'K0  nmon工具可以采集服务器的资源信息。列出CPU、MEM、网络、I/O等资源指标的使用情况。
!z%mdv ~~^0
51Testing软件测试网n9~{*Ydh


TAG:

 

评分:0

我来说两句

Open Toolbar