在使用Hibenate作为ORM工具和Oracle 11G作为数据库的Java应用程序上执行性能测试时,可能会出现哪些针点。积分用于在应用程序上执行性能测试
我也在考虑应用的基准。所以,我该怎么做。
谢谢
在使用Hibenate作为ORM工具和Oracle 11G作为数据库的Java应用程序上执行性能测试时,可能会出现哪些针点。积分用于在应用程序上执行性能测试
我也在考虑应用的基准。所以,我该怎么做。
谢谢
关键的事情是:
1)尽可能的实际测试使用真实的使用场景的应用程序 - 这可能是相当复杂的实践 - 我已经基于万维网使用Perl脚本::机械化和http ::记录器for this在过去。
2)不认为AB或JMeter的
3)记录作为锚赫越好(你不提您所使用的web服务器 - 如果它的阿帕奇,在日志中添加%d)
4 )确保你使系统饱和 - 你要确保你获得了一些主要的垃圾收集(或者证明它的homoeostatic - 对于Java程序来说这是非常罕见的事情)
5)分析webserver和gc日志。
让Hibernate记录所有执行的SQL。
检查this link的配置属性并将hibernate.show_sql
设置为true。一旦你能看到正在执行的内容,如果你怀疑它们比预期的要慢,请检查任何不寻常的语句并描述它们。
之后检查他们的执行计划并调整它们以进一步优化将有助于您的应用程序和数据库。
不确定是否使用不同的技术(例如Hibernate)会改变您执行应用程序性能测试的方式。
有一些运行性能测试的标准工具,它们应该适用于您的应用程序所使用的技术。
使show_sql为true将有助于查看查询并进一步分析它们,但可能无助于您的应用程序的整体性能测试。
查看以下文章Java benchmarking tool的基准测试工具。
希望这会有所帮助。
首先要开始的是同意什么是可接受的性能。没有这个协议,任何事情都是不成熟的。
不同的应用程序类型将有不同的痛点。读写混合,并发更新(特别是在相同的数据上 - 例如销售演唱会门票或飞机座位),数据量。
不知道你的应用程序“使用Oracle 11G作为数据库”的程度,甚至是什么类型的环境(我假设是典型的oltp),但从Oracle方面你可以做几件事情: