最近听了一个饿了么大牛的性能压测实战分享,并从中总结了性能压测后结果分析的一些思路,大致如下,仅供参考哦: 步骤思路: 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后,再执行测试,查看事务响应等!
测试后的性能调优方案:
- 把oracle的运行模式调成“共享服务器模式”
- 增大分配给Oracle的内存:把内存调整成系统内存的55%
- 增大共享池(SHARED_POOL)和缓冲区高速缓存(DB_CACHE)的大小
- 对数据库表和查询相关的字段建立索引
应用程序方面:
- 用优化后的程序替换原来的程序
- 采用页面缓冲技术提高用户访问速度,同时缓冲对数据库的压力