对 HTTP 服务器进行基准测试

Benchmarking a HTTP server

我目前正在构建一个自定义的基于 C++ 的 HTTP 服务器,其目的是尽快为 HTTP GET 请求提供服务。

我想对其进行一些测试,以检查当大量客户端(~1000)同时请求内容时服务器是否正常运行。我想知道是否有任何工具可以在这方面帮助我。

我想测量我的服务器响应每个请求所花费的时间以及每个客户端收到完整回复所花费的时间。我可以构建自己的应用程序来完成这项工作,但我想知道是否已经存在类似的东西。

因为这是我的第一个基于网络的应用程序,所以我也想知道当 运行 在千兆网络上进行这种测试时,我会遇到什么样的限制(如果有的话)。

jmeter 是一个基于 java 的工具,可以配置为进行负载测试。

您需要一个负载生成器。最好的配置是,如果您在一台机器上有目标系统(您要测试的系统),而在另一台机器上有负载生成器。两台机器在同一个局域网中。如果您在同一台机器上有目标系统和负载生成器,负载生成器可以从目标系统中获取资源。

我会使用 JMeter or Tsung。 JMeter 易于安装和使用。唯一的问题是它将虚拟客户端表示为线程。每个虚拟客户端意味着一个线程,如果您模拟 1K 虚拟客户端,则可能会占用大量系统资源。 Tsung 使用相同的线程模拟许多虚拟客户端,因此它可以消耗更少的资源。