淘宝性能测试要点

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


  • 性能测试策略
    1.模拟生产线真实的硬件环境。
    2.服务器置于同一机房,最大限度避免网络问题。
    3.以PV为切入点,通过模型将其转换成性能测试可量化的TPS。
    4.性能测试数据分为基础数据和业务数据两部分,索引和SQL都会被测试到。
    5.日志等级设置成warn,避免大量打印log对性能测试结果的影响。
    6.屏蔽ESI缓存,模拟最坏的情况。
    7.先单场景,后混合场景,确保每个性能瓶颈都得到调优。
    8.拆分问题,隔离分析,定位性能瓶颈。
    9.根据性能测试通过标准,来判断被测性能点通过与否。
    10.针对当前无法解决的性能瓶颈,录入QC域进行跟踪,并请专家进行风险评估。
  • 性能测试压力变化模型

    a点:性能期望值
    b点:高于期望,系统资源处于临界点
    c点:高于期望,拐点
    d点:超过负载,系统崩溃
  • 性能测试
    a点到b点之间的系统性能,以性能预期目标为前提,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。
  • 负载测试
    b点的系统性能,对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到极限,例如某种资源已经达到饱和状态等。
  • 压力测试
    b点到d点之间,超过安全负载的情况下,对系统不断施加压力,是通过确定一个系统的瓶颈或不能接收用户请求的性能点,来获得系统能提供的最大服务级别的测试。
  • 稳定性测试
    a点到b点之间,被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试时间为n*12小时。
  • 监控指标
    性能测试通常需要监控的指标包括:
    1.服务器 Linux(包括CPU、Memory、Load、I/O)。
    2.数据库:1.Mysql 2.Oracle(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数)。
    3.中间件:1.Jboss 2. Apache(包括线程数、连接数、日志)。
    4.网络: 吞吐量、吞吐率。
    5.应用: jvm内存、日志、Full GC频率。
    6.监控工具(LoadRunner):用户执行情况、场景状态、事务响应时间、TPS等。
    7.测试机资源:CPU、Memory、网络、磁盘空间。
  • 监控工具
    性能测试通常采用下列工具进行监控:
    1.Profiler。一个记录log的类,阿里巴巴集团自主开发,嵌入到应用代码中使用。
    2.Jstat。监控java 进程GC情况,判断GC是否正常。
    3.JConsole。监控java内存、java CPU使用率、线程执行情况等,需要在JVM参数中进行配置。
    4.JMap。监控java程序是否有内存泄漏,需要配合eclipse插件或者MemoryAnalyzer来使用。
    5.JProfiler。全面监控每个节点的CPU使用率、内存使用率、响应时间累计值、线程执行情况等,需要在JVM参数中进行配置。
    6.Nmon。全面监控linux系统资源使用情况,包括CPU、内存、I/O等,可独立于应用监控。
    7.Valgrind。监控C/C++程序是否存在内存泄漏,基于linux环境。
    8.Vmmap和ApplicationVerifier。监控C/C++程序是否存在内存泄漏,基于windows环境。
  • 性能分析
    可按以下顺序:
    中间件瓶颈(apache/jboss参数配置、数据库参数配置)->
    应用服务的debug log ->
    应用服务的filter log ->
    本应用的性能瓶颈(SQL语句、索引、业务逻辑、线程池设置、算法)->
    服务提供者的性能瓶颈 ->
    相关联的底层存储应用的性能瓶颈
  • 分析标准
    通过性能指标的表现形式,分析性能是否稳定。比如:
    1.响应时间是否符合性能预期,表现是否稳定。
    2.应用日志中,超时的概率,是否在可接受的范围之内。
    3.TPS维持在多大的范围内,是否有波形出现,标准差有多少,是否符合预期。
    4.服务器CPU、内存、load是否在合理的范围内,等等。
  • 分析工具
    对于部分性能指标,可借助自动分析工具,统计出数据的总体趋势:
    1.LoadRunner analysis
    LoadRunner analysis是loadrunner的一个部件,用于将运行过程中所采集到的数据生成报表,主要用于采集TPS、响应时间、服务器资源使用情况等变化趋势。
    2.Memory Analyzer
    Memory Analyzer工具可以解析Jmap dump出来的内存信息,查找是否有内存泄漏。
    3.nmon_analyser
    nmon工具可以采集服务器的资源信息。列出CPU、MEM、网络、I/O等资源指标的使用情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值