1

我在 QA 中使用 Jmeter 进行了性能测试,QA DB 中的记录数比 Prod DB 中的记录数少 30-40 倍。

由于上述原因,QA 中的性能非常好,但当应用程序在 Prod 中发布时,性能却很差。

应该如何在可以模拟 Prod 条件的 Non-Prod 中进行性能测试(就此处的 DB 大小而言)?策略/流程是什么?

4

2 回答 2

1

最好的选择是将 PROD 数据库恢复到 QA 环境,或者甚至更好地拥有 PROD 的完整副本(这称为STAGING环境),否则您的测试将不准确。

此外,扩展系统的比率永远不会是 1x1,也就是说,如果您对具有 100 万行的数据库的响应时间为 1 秒,这并不一定意味着对于 200 万行的数据库,响应时间将为 2 秒

如果您无法获得 PROD 副本,您应该直接在“死”时间(例如夜间或周末)在 PROD 上运行测试。

如果您连这样都负担不起 - 您应该仍然能够执行某些活动,例如检查查询计划并提出优化建议,就好像您将查询速度提高 2 倍一样,将在生产中应用相同的配给。您应该能够检测到死锁、缺失或低效的索引等。

您还应该能够执行集成互操作性浸泡测试,但不幸的是,在按比例缩小的环境中进行性能测试时就是这样。

于 2019-07-14T14:46:51.597 回答
0

正如您所说,如果数据库明显更小,您将无法模拟实际负载。

您应该使用类似的方法,如果不能,请尝试使用其他选项来增加负载,因为更多并发用户,每秒更多事务以匹配接近实际生产负载

于 2019-07-11T18:29:18.433 回答