AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 43692
In Process
erotsppa
erotsppa
Asked: 2009-07-22 10:45:58 +0800 CST2009-07-22 10:45:58 +0800 CST 2009-07-22 10:45:58 +0800 CST

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

  • 772

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

performance apache-2.2
  • 8 8 个回答
  • 26359 Views

8 个回答

  • Voted
  1. knweiss
    2009-07-22T16:25:28+08:002009-07-22T16:25:28+08:00

    为了进行快速和肮脏的测试(即没有任何优化!)我在本地 Ubuntu 9.04 VM 上启用了简单的 Ubuntu apache2 默认网站(它只是说“它有效!”),并在本地 Ubuntu 9.04 VM 上使用 http 和 https(自签名证书)并运行 apache对ab10,000 个请求(无并发)进行基准测试。客户端和服务器位于同一台机器/VM 上:

    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 仍然可以测量得更慢:

    带有 keep-alive (" ")的http的结果ab -k -n 10000 http://ubuntu904/index.html

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

    带有 keep-alive (" ") 的https的结果ab -k -n 10000 https://ubuntu904/index.html:

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

    结论:

    • 在这个简单的测试用例中,https 比 http 慢得多。
    • 启用 https 支持并对您的网站进行基准测试以查看您是否要支付 https 开销是一个好主意。
    • 使用 wireshark 来了解 SSL 开销。
    • 59
  2. David Pashley
    2009-07-22T10:53:04+08:002009-07-22T10:53:04+08:00

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

    • 10
  3. SaveTheRbtz
    2009-07-22T14:04:48+08:002009-07-22T14:04:48+08:00

    不要假设任何事情,自己测试!当然是在您的特定网络应用程序上。

    • 抗体
    • 围城
    • JMeter
    • 8
  4. Keith
    2009-07-22T11:08:16+08:002009-07-22T11:08:16+08:00

    我发现在现代硬件上,我更可能受特定事务的 I/O 限制,而不是受处理器(计算)限制。在谈论压缩和加密时尤其如此。这些天,128 位加密是微不足道的 - 我通常比使用 SSL 更难构建和交付传出页面,并且在几年内没有注意到 http 和 https 流量之间的性能显着差异。

    • 1
  5. Chris
    2009-07-23T02:23:37+08:002009-07-23T02:23:37+08:00

    我支持 nginx 的建议。在我自己的测试中,它作为专用的 SSL 卸载程序表现良好。

    • 1
  6. Coops
    2009-07-22T10:59:33+08:002009-07-22T10:59:33+08:00

    当然,如果 SSL 处理确实受到重创,您可以随时将其从服务器移至专用盒子。这里有一篇关于使用 nginx 执行此操作的好文章。这是我们在高负载的第 7 层负载平衡服务器上所做的事情。

    • 0
  7. Francesco Abeni
    2009-07-22T13:01:00+08:002009-07-22T13:01:00+08:00

    我可以确认,与包含的所有其他元素(脚本、网络等)相比,加密的额外负载非常小

    • 0
  8. Areeb Soo Yasir
    2016-04-19T14:15:17+08:002016-04-19T14:15:17+08:00

    根据我的经验,一般规则与您的公钥有多大直接相关(例如 2048、4096 和 8192)都需要更长的时间。然而,我几乎看不出桌面环境有什么不同,但移动设备是你看到不同之处的地方,因为它需要计算能力。

    一般来说,这是不幸的,但 SSL 总是并且很可能总是会带来巨大的性能损失。

    • 0

相关问题

  • IIS 6.0 (Windows Server 2003) 上的 HTTP 压缩

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 上线的第一天:如何不杀死您的网站

  • IIS 优化

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve