我最近使用gatling.io来加载测试我的api服务器。在测试期间,可以选择设置例如每秒的并发用户数。
我不明白这些工具是如何产生负载的。他们如何创建让我们说200个并发连接到我的服务器并点击它?
我正在寻找一个答案,描述它是如何实现的,是否使用线程,套接字编程等。 感谢。
答案 0 :(得分:2)
Gatling在内部使用Akka framework,其中每个虚拟用户都表示为Akka actor。
Akka是异步执行的框架。这意味着我们不会浪费和挂起等待响应的线程,而是使用它来完成其他任务 - 在这种情况下是其他虚拟用户。执行时间由scheduler管理,执行本身由dispatcher
管理考虑到在某些环境中,单个JVM线程堆栈可能会达到2 Mb甚至更大,为500个用户中的每个用户创建一个线程,仅为线程花费大约1 Gb内存。请参阅here for more information了解为什么创建大量线程是一个坏主意。
总之,使用异步编程来实现并发虚拟用户的高吞吐量至关重要。