IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

长连接(KeepAlive)在 http 连接中的性能影响

扶凯 2010-07-21 23:45:57 累计浏览 8,803 次
本机暂存

摘要来自 扶凯阅读原文 →

探索更多技术文章 技术头条社区

推荐阅读

  1. Linux 性能监控、测试、优化工具
  2. redis在大数据量下的压测表现
  3. HBase随机写以及随机读性能测试

一直很想知道,在 http 1.1 中的长连接功能,如果在理想的环境中,对性能的影响。所以简单的做了一下测试

未使用长连接

Concurrency Level: 200
Time taken for tests: 7.016 seconds
Complete requests: 30000
Failed requests: 0
Write errors: 0
Total transferred: 134524481 bytes
HTML transferred: 122884096 bytes
Requests per second: 4275.85 [#/sec] (mean)
Time per request: 46.774 [ms] (mean)
Time per request: 0.234 [ms] (mean, across all concurrent requests)
Transfer rate: 18724.15 [Kbytes/sec] received

使用长连接

Concurrency Level: 200
Time taken for tests: 5.006 seconds
Complete requests: 30000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 30000
Total transferred: 135338747 bytes
HTML transferred: 123486848 bytes
Requests per second: 5992.49 [#/sec] (mean)
Time per request: 33.375 [ms] (mean)
Time per request: 0.167 [ms] (mean, across all concurrent requests)
Transfer rate: 26400.24 [Kbytes/sec] received

由上面可以看出,在理想的环境中,如果打开长连接,可以处理6k/s 的响应,如果关掉长连接,只能处理4.2k/s 的响应。我想实际的环境影响一定小很多。。但一定程度的说明长连接还是相当有用的。

换 2.7 的 squid 测试

Requests per second:    6004.86 [#/sec] (mean)
 
Requests per second:    8680.81 [#/sec] (mean)

这个更新明显,有 3k 的差别了。。。