database - 基于分布式SOA架构的系统压力测试

标签 database performance testing metrics stress-testing

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

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

谢谢

最佳答案

这里有一些想法:

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

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

关于database - 基于分布式SOA架构的系统压力测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978517/

相关文章:

ruby-on-rails - 为什么在使用 RSpec 的共享示例时我的局部变量未定义?

sql-server - 是否可以限制 SQL Server 仅在选择某些代码时才执行代码?

php - 如何以逗号分隔显示多行数据

database - PL/SQL-甲骨文 : ORA-01843: not a valid month

python - 为什么 Pandas 数据帧 to_dict ("records") 与另一个简单的实现相比性能很差?

c++ - 在多核环境中选择 v/s 多线程

mysql - 如何检查 mysql DB 列是否具有对象的 json 数组并包含特定字符串

c# - LINQ 中的聚合与求和性能

email - selenium 可以用于测试 Microsoft Outlook 中电子邮件的电子邮件内容吗

rest - 飞盘 : response data extraction and conditional execution