我在QA中使用Jmeter进行了性能测试,QA DB中的记录数量比Prod DB中的记录数量少30-40倍。
由于上述原因,QA的性能非常好,但是在Prod中发布应用程序时,性能很差。
应该如何在可以模拟Prod条件的Non-Prod中进行性能测试(就此处的数据库大小而言)?什么是策略/流程?
答案 0 :(得分:0)
正如您所说,如果数据库小得多,您将无法模拟实际负载。
您应该使用类似的方法,如果不能使用,请尝试使用其他选项来增加负载,因为更多的并发用户,每秒更多的事务以匹配接近实际生产负载
答案 1 :(得分:0)
最好的选择是将PROD数据库还原到QA环境,甚至更好地具有PROD的完整副本(这称为STAGING环境),否则测试将不准确。
此外,按比例缩放系统的比率永远不会为1x1,如果您对具有100万行的数据库有1秒的响应时间,那并不一定意味着对于200万行数据库的响应时间将是2秒
如果无法获得PROD副本,则应在“死”时间(如通宵或周末)直接在PROD上运行测试。
如果您甚至负担不起-您应该仍然可以执行某些活动,例如检查query plans并提出优化建议,就好像您将查询速度提高了2倍一样,相同的定量将应用于生产。您应该能够检测到deadlocks,indices缺失或效率低下等。
您还应该能够执行integration,interoperability和soak testing,但是不幸的是,在按比例缩小的环境上进行性能测试时,应该就是这样。