2017-06-14 74 views
0

我最近使用gatling.io来加载测试我的api服务器。在测试期间,可以选择设置例如每秒并发用户数。负载和性能测试工具如何在幕后工作?

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

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

回答

2

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

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

管理考虑在某些环境下,单个JVM线程堆栈可以得到的2 MB一样大,甚至更大的创造每500个用户的线程将耗资约1 Gb的内存仅用于线程。有关创建大量线程的原因,请参阅here for more information

总之,使用异步编程实现并发虚拟用户的高吞吐量是非常重要的。