【问题标题】:How does load and performance testing tools work behind the scenes?负载和性能测试工具如何在幕后工作?
【发布时间】:2017-06-14 10:10:04
【问题描述】:

我最近使用 gatling.io 对我的 api 服务器进行负载测试。在测试期间,有一些选项可以设置,例如每秒并发用户数。

我不明白这些工具是如何产生这种负载的。他们如何能够创建到我的服务器的 200 个并发连接并点击它?

我正在寻找一个描述它是如何实现的答案,他们是否使用线程、套接字编程等。 谢谢。

【问题讨论】:

    标签: performance load gatling


    【解决方案1】:

    Gatling 在内部使用Akka framework,其中每个虚拟用户都表示为Akka actor

    Akka 是一个用于异步 执行的框架。这意味着我们不会浪费和暂停等待响应的线程,而是使用它来完成其他任务——在这种情况下是其他虚拟用户。执行时间由scheduler 管理,执行本身由dispatcher 管理

    考虑到在某些环境中,单个 JVM 线程堆栈可以达到 2 Mb 甚至更大,为 500 个用户中的每个用户创建一个线程仅用于线程就需要大约 1 Gb 的内存。请参阅here for more information,了解为什么创建大量线程是一个坏主意。

    总之,使用异步编程来实现如此高的并发虚拟用户吞吐量是必不可少的。

    【讨论】:

      猜你喜欢
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多