在本地IP或域名上进行AB负载测试?

时间:2019-02-26 14:29:58

标签: nginx load-testing vps ubuntu-18.04 apachebench

我正在将digitalocean用作我的Web服务器的vps。 我在ubuntu 18中添加了第二个Droplet,它是Web服务器的专用网络(数字海洋功能)的一部分。

我将cloudflare用作dns提供程序,并同时使用其ssl证书。

使用ab最准确的负载测试是什么(**请注意以下示例中的http / https):

    ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" https://www.example.com/
    Request per second : 12.66

    ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/
    Request per second : 60.90

    ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" https://private.network.local.ip/
    Request per second : 36.70

    ab -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" http://private.network.local.ip/
    Request per second : 1849

如何将abhttphttps以及域或本地ip一起使用?

1 个答案:

答案 0 :(得分:0)

  1. 性能良好的负载测试应尽可能接近实际的应用程序使用情况,否则就没有意义。因此,您应该使用与应用程序的实际用户将使用的设置相同的设置,我的期望是:

    • 域名而不是IP地址
    • https协议
  2. 是否有理由将您的应用程序的响应时间与http://example.com(一个实时网站)进行比较?您应该将应用程序的DNS hostname与应用程序的IP地址进行比较,在这种情况下,结果应该相同

  3. ab并不是模拟真实用户活动的最佳工具,它基本上是“锤击”一个不代表真实用户行为,真实用户的URL:

    • 一次建立SSL会话,正在通过此通道进行进一步的通信
    • 发送HTTP Headers可能会触发response compression减小响应大小
    • 在其浏览器中实现了HTTP Cache,因此仅需要一次请求嵌入资源,例如图像,脚本,样式,字体等。
    • 具有Cookies代表用户会话

    假设以上所有内容,我建议切换到more advanced load testing tool which is capable of acting like a real browser