2010-06-05 76 views
1

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

另外,在执行压力测试时,我可以查看延迟和度量标准,例如服务请求90%的延迟是什么。有没有其他好的服务指标?我应该查找哪些指标来检查mysql数据库?

谢谢

回答

1

这里有一些想法:

  1. 设置一个测试数据库和其他数据加载到你意料的增加表;使用您期望增加的倍数,例如,如果您希望表格增加2000行,则将4000行添加到测试表中。
  2. 在MySQL中启用slow query logging
  3. 确保您的SOA服务器中的日志记录级别足够详细,以调试压力测试中的错误。
  4. 使用负载测试工具(如JMeter)可以快速连续地针对每个服务运行多个请求。使用您期望的每秒请求数的倍数;我通常会增加2x,4x,8x等预期请求数量。
  5. 依次对每个单独的服务重复上述测试。
  6. 用“典型”的服务组合重复上述测试 - 例如,如果您希望服务1的服务次数比服务2的服务次数多一倍,请在测试中反映出来。
  7. 如果您想要测试可靠性,请尝试重复JMeter测试,其中一个或两个MySQL从节点处于脱机状态。

JMeter应该给你所有你需要的延迟信息。我喜欢使用的另一个有用的“真实世界”数据点是JMeter,它是90%的查询时间,即响应时间值大于或等于测试响应的90%。

1

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

然后,您可以看到额外数据对您的服务呼叫会有什么影响。

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

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