2017-06-14 102 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

總之,使用異步編程實現併發虛擬用戶的高吞吐量是非常重要的。