如何做数据库的性能测试

做过很多次的性能测试,现在回想之前的测试,有很多的地方不足,导致测试的结果可能不是很准确,现在总结下,如果有不足之处还请补充。
数据库相关的性能测试包含2个方面的测试:1涉及业务的性能测试2只是针对数据库的性能测试。先说下需要注意的方面
1监控,在测试之前需要配置好监控,包含各种数据库性能指标以及机器资源使用率的监控,最好监控工具能提供图形化的界面显示各种指标曲线。如果只是数据的监控没有曲线,没有办法看到过程中的每个点的情况,很多情况下会有曲线的波动,在测试完成后需要分析这种波动产生的原因。
2数据库的初始化,在测试之前需要准备测试数据,包含业务的测试需要制作业务的测试数据,纯数据库相关的测试可以自己生成测试数据。只有在一定量的测试数据环境下运行语句才能测试数据库的性能及机器的配置是否能支撑这种量级的操作。
3预热,在测试之前需要将部分数据加载到内存中,如果没有预热,在测试的时候加载数据,这种情况与线上的情况不同,对测试结果又影响。
4多次测试,在多次测试的时候,需要确保测试数据的量级差别不太大。
5在做性能测试的时候,我们的目的是测试数据库的表现,不是测试数据库究竟能承受多大的压力,所以我们的测试机器配置一定要足够,不要出现因为机器资源导致的限制。
6工具的选择,包含业务的测试测试工具对于传统领域的测试来说一般使用loadrunner,对于互联网的应用一般的非自研的使用jmeter即可满足。
7测试结果的分析,对于测试结果的分析一般要包含机器资源使用的分析,数据库监控指标的分析,慢sql的分析,数据库错误日志的查看。同时结合压测工具或自己配置的工具生成的结果去分析,是否有慢sql,是否有资源使用波动,结果的tps,qps是否满足预期等。
8在分析完结果后,需要对发现的问题进行调整,优化,但是最好每次调整一个方面的配置,调整后再次测试,记录结果并对比查看效果。涉及业务的测试在分析的时候需要配合研发同学分析定位问题。
9场景的设计,在单独的数据库性能测试中,必须包含的几个场景有
只读,读写混合,只写,这3个场景分别包含下面2个场景
a,数据量比较小,能在buffer中全部放下的情况。
b,数据量比较大,不能完全在buffer中放下。

你可能感兴趣的:(oracle管理)