IT技术博客大学习 共学习 共进步

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

扶凯 2010-07-21 23:45:57 浏览 8,582 次

一直很想知道,在 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 的差别了。。。

建议继续学习

  1. Xvfb+YSlow+ShowSlow搭建前端性能测试框架 (阅读 55,342)
  2. Go Reflect 性能 (阅读 13,663)
  3. 30分钟3300%性能提升――python+memcached网页优化小记 (阅读 13,581)
  4. 服务器性能测试工具推荐 (阅读 7,901)
  5. SQL vs NoSQL:数据库并发写入性能比拼 (阅读 7,882)
  6. 一种基于长连接的社交游戏服务器程序构架 (阅读 7,381)
  7. WEB性能测试工具推荐 (阅读 6,942)
  8. 分析进程内存分配情况,解决程序性能问题 (阅读 6,682)
  9. HTTP KeepAlive,开启还是关闭 (阅读 6,640)
  10. 由12306.cn谈谈网站性能技术 (阅读 6,203)