【问题标题】:Benchmarking a HTTP server对 HTTP 服务器进行基准测试
【发布时间】:2015-08-07 04:46:31
【问题描述】:

我目前正在构建一个基于 C++ 的自定义 HTTP 服务器,其目的是尽可能快地处理 HTTP GET 请求。

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

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

由于这是我的第一个基于网络的应用程序,我还想知道在千兆网络上运行此类测试时会遇到什么样的限制(如果有的话)。

【问题讨论】:

  • 当然是题外话(软件推荐,不是编程)。也就是说,一个严肃的 HTTP 服务器可以处理几个 10G 的连接。因此,1G 网络的局限性在于它太太慢了。

标签: c++ http networking benchmarking


【解决方案1】:

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

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

【讨论】:

  • Tsungs 似乎是我正在寻找的东西,谢谢 ^^ 作为旁注,我还找到了 this project 来测试我服务器的 SPDY 部分。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    相关资源
    最近更新 更多