最近听了一个饿了么大牛的性能压测实战分享,并从中总结了性能压测后结果分析的一些思路,大致如下,仅供参考哦:
步骤思路:
1、在整个测试场景的执行过程中,测试环境是否正常
2、测试场景的设置是否正确、合理
3、测试结果是否直接暴露出系统的一些问题

1)性能分析的基本原则
性能开始出现下降的最直接表象时系统的响应时间变长;
服务器的内存不够可能会引起较大的磁盘I/O,进而导致CPU利用率居高不下--而根本原因可能是内部存在内存泄漏
2)对于数据库出现的问题
1.把数据库分为Insert、Update、Delete和Select四种操作,分开进行测试
2.把用户对数据库的操作组合起来进行测试
3.做一些疲劳或者大数据量测压力测试
进一步分析,那些接口的访问量比较大。
a. SQL语句消耗了大量的数据库时间:
当一些反复执行的SQL语句效率过低时,首先会造成高速缓存不够用,随之引起较大I/O;而频繁的I/O势必会消耗大量的CPU。因此整个系统的瓶颈极有可能是这个三个语句造成的。
b. 再查看事务平均响应时间(稳定):测试的性能问题主要在程序本身

优化SQL后,再执行测试,查看事务响应等!

测试后的性能调优方案:

  1. 把oracle的运行模式调成“共享服务器模式”
  2. 增大分配给Oracle的内存:把内存调整成系统内存的55%
  3. 增大共享池(SHARED_POOL)和缓冲区高速缓存(DB_CACHE)的大小
  4. 对数据库表和查询相关的字段建立索引

应用程序方面:

  1. 用优化后的程序替换原来的程序
  2. 采用页面缓冲技术提高用户访问速度,同时缓冲对数据库的压力