1

我们目前有一个具有 20 个 SOA 服务的系统,并且有一个主 mysql 数据库和 2 个从节点。我们目前在数据库中有 10 GB 的数据。我们有一个要求,其中表中的数据将显着增加。我们希望在继续实施之前对系统进行压力测试。什么样的压力测试对这种分布式环境有意义?

此外,在执行压力测试时,我可以查看延迟和指标,例如为 90% 的服务请求提供服务的延迟是多少。还有其他好的服务指标吗?我应该寻找 mysql 数据库的哪些指标?

谢谢

4

2 回答 2

1

这里有一些想法:

  1. 设置一个测试数据库并将附加数据加载到您期望增加的表中;使用您期望的增加的倍数,例如,如果您期望表增加 2000 行,那么将 4000 行添加到您的测试表中。
  2. 在 MySQL 中启用慢查询日志记录。
  3. 确保 SOA 服务器中的日志记录级别足够详细,可以调试压力测试中的错误。
  4. 使用JMeter等负载测试工具快速连续地对每个服务运行多个请求。使用您期望的每秒请求数的倍数;我通常会增加 2x、4x、8x 等倍于预期请求的数量。
  5. 依次对每个单独的服务重复上述测试。
  6. 使用“典型”服务组合重复上述测试 - 例如,如果您预计服务 1 的请求数量是服务 2 的两倍,则在测试中反映这一点。
  7. 如果您还想测试可靠性,请尝试在一个或两个 MySQL 从属节点脱机的情况下重复 JMeter 测试。

JMeter 应该为您提供所需的所有延迟信息。我喜欢使用的另一个有用的“真实世界”数据点形式 JMeter 是 90% 的查询时间,这是大于或等于 90% 的测试响应的响应时间值。

于 2010-06-05T01:21:18.130 回答
1

这种情况下的想法仍然是尝试在生产中使用页面请求和帖子并对其进行建模。不同之处在于仅使用 10Gb 当前生产数据的副本运行负载测试。然后模拟额外的数据并运行相同的负载测试。您将能够比较使用服务的页面的响应或直接检查服务调用。

然后,您可以查看额外数据将对您的服务调用产生什么影响。

最重要的指标是您期望(或已测量)最频繁调用的调用的响应时间。

如果您发现性能问题,可以分析有关数据库和服务器本身的其他统计信息。

于 2010-06-14T03:50:39.633 回答