https 和 http 对 apache 的性能影响有多大?

ero*_*ppa 50 performance apache-2.2

与同一页面的 http 相比,https 对性能的影响大约是多少?假设我可以处理 1000 个请求/秒 abc.php,通过 https 访问时它会减少多少?我知道这可能取决于硬件、配置、操作系统等,但我只是在寻找一般的经验法则/估计。

knw*_*iss 59

对于快速和肮脏的测试(即没有任何优化!)我在本地 Ubuntu 9.04 VM 上启用了简单的 Ubuntu apache2 默认网站(它只是说“它有效!”)并运行了 apacheab具有 10,000 个请求的基准“ ”(无并发)。客户端和服务器在同一台机器/虚拟机上:

结果的HTTP(” ab -n 10000 http://ubuntu904/index.html“)

  • 测试时间:2.664
  • 每秒请求数:3753.69(#/秒)
  • 每个请求的时间:0.266ms

结果HTTPS(” ab -n 10000 https://ubuntu904/index.html“):

  • 测试时间:107.673
  • 每秒请求数:92.87(#/秒)
  • 每个请求的时间:10.767ms

如果您仔细查看(例如使用 tcpdump 或 wireshark)单个请求的 tcp/ip 通信,您会发现 http 情况需要客户端和服务器之间的 10 个数据包,而 https 需要 16 个:https 的延迟要高得多。(更多关于延迟的重要性在这里

在测试中添加 keep-alive ( aboption -k) 可以改善这种情况,因为现在所有请求共享相同的连接,即 SSL 开销较低 - 但 https 仍然可以测量得更慢:

保持活动状态 (" ") 的http 的结果ab -k -n 10000 http://ubuntu904/index.html

  • 测试时间:1.200
  • 每秒请求数:8334.86 (#/sec)
  • 每个请求的时间:0.120ms

保持活动状态 (" ") 的https 的结果ab -k -n 10000 https://ubuntu904/index.html

  • 测试时间:2.711
  • 每秒请求数:3688.12 (#/sec)
  • 每个请求的时间:0.271ms

结论

  • 在这个简单的测试用例中,https 比 http 慢得多。
  • 启用 https 支持并对您的网站进行基准测试以查看您是否愿意支付 https 开销是一个好主意。
  • 使用wireshark 了解SSL 开销。


Dav*_*ley 10

在现代服务器上,我会说你的瓶颈是网络和你的应用程序,而不是加密。apache 中的 TLS/SSL 将用相当优化的 C 编写,因此与您的 PHP 代码相形见绌,尤其是当您要进行数据库访问等操作时。提供静态文件可能会产生更大的影响,因为加密将成为整个过程的更大部分。我不能给你任何具体的数字,但如果它超过 5% 并且可能接近几个百分点,我会感到惊讶。

  • 大卫是对的,这取决于您拥有的内容类型。最好的方法是使用 apache bench http://httpd.apache.org/docs/2.2/programs/ab.html 进行基准测试 (2认同)

Sav*_*btz 8

不要假设任何东西,自己测试一下!当然,在您的特定网络应用程序上。