let's encrypt 有访问速度限制?

2018-11-07 10:22:24 +08:00
 cankoor

在本地搭建了两个网站,一个是 https,一个是 http。用 ab 测试同一个文件(复制的)

ab -n 1000 -c 100 

发现两者的速度相差比较大。下面是数据。

以下数据是 http 访问

以下数据是 https 访问

我看有人在写 Letsencrypt 限制时候,有一条是请求证书认证有速度限制,是每秒 20 次。所以这两者的速度差异主要还是因为这个限制么?

有没有好用的,速度限制不大的证书认证服务?如果没有,看起来又要走 HTTP 了。

4359 次点击
所在节点    程序员
21 条回复
SakuraKuma
2018-11-07 10:33:26 +08:00
lets encrypt: 这锅不背。

ps: lets encrypt 的限制是申请次数限制。
cankoor
2018-11-07 10:37:07 +08:00
@SakuraKuma 那我就放心了...
johnnie502
2018-11-07 10:37:12 +08:00
lets encrypt 哭晕在厕所
cankoor
2018-11-07 10:38:50 +08:00
@johnnie502 我并不理解那个请求证书认证是什么意思。。每次浏览器访问不是都要认证一次证书么?
hlwjia
2018-11-07 10:42:51 +08:00
重度网络基础知识
hlwjia
2018-11-07 10:43:26 +08:00
上面 typo

应该是 *重读
xiaopc
2018-11-07 10:51:39 +08:00
@cankoor
1. 你 HTTPS 速度慢与要加密吃 CPU 等因素有关。
2. 用证书加密本身是离线的(OSCP 查询也和这个没关系)。
3. LE 限制的是证书发放频率。
cankoor
2018-11-07 10:54:45 +08:00
@xiaopc 懂了懂了,谢谢了
fcten
2018-11-07 11:04:13 +08:00
ab -k -n 1000 -c 100

你会发现 let's encrypt 突然良心发现让你变快了
xiaopc
2018-11-07 11:09:43 +08:00
@xiaopc #7 typo: OCSP
0ZXYDDu796nVCFxq
2018-11-07 11:11:26 +08:00
Time per request: 3057 ms
你这是有严重的性能问题
cankoor
2018-11-07 11:13:21 +08:00
@fcten ==...我查了一下 keep alive。那当然了。。。。
cankoor
2018-11-07 11:14:54 +08:00
@gstqc 我请求的就是一个纯文本。应该是 CPU 的问题吧
lihongjie0209
2018-11-07 11:16:40 +08:00
http: TCP -> HTTP


https: TCP -> SSL(要加密和解密的) -> HTTP
cankoor
2018-11-07 11:22:48 +08:00
@xiaopc 那这样的话,下面的架构,把证书放在 SLB 上的问题就在 SLB 的 CPU 了。

![slb]( )
my101du
2018-11-07 11:25:49 +08:00
这个问题,我也奇怪过。之前做 Laravel 优化,用 ab 测试带 https,性能报告低到令人发指。后来换了一个 go 的工具,终于 http/https 对比没那么离谱了

```bash
go get -u github.com/rakyll/hey
```

https://github.com/rakyll/hey
cankoor
2018-11-07 11:35:15 +08:00
@my101du 我试了一下,速度快的让我怀疑是和`ab -k`一样的效果,就是 keep alive 了。
zpf124
2018-11-07 11:38:31 +08:00
所有说 https 比 http 消耗的高的不多, 都是指 正常的用户访问。
正常的用户访问只有第一次情况是要验证证书,后续只有单纯的需要多花费一些 cpu 的加解密时间。


大多数人 比较的仅仅是:
“ 100 次 http 下载需要的时间与 1 次(证书认证+确认公私钥、加密方法、ssl 加解密)的 https + 99 次(单纯 ssl 加解密)的 https 需要的时间。

而 你比较的是 100 次 http 下载需要的时间与 100 次(证书认证+确认公私钥、加密方法、ssl 加解密)的 https 需要的时间。


对于第一种情况, 交换密钥验证证书所需要的数据量在总数量中占比微乎其微, 而第二种情况如果你请求的文件本身比较小,证书和密钥的数据量有可能都能超过总数据量的一半了。

(看你的 total,http: 50kb 左右,https: 90kb 左右, 单纯的加密数据增长绝对没这么多,至少 1/3 的数据量来自传递证书和公私钥)

另外数值差距大 cpu io 都有可能是瓶颈。
cankoor
2018-11-07 12:01:34 +08:00
@zpf124 正解,感觉是这样的。对于短时超多用户的涌入,所以基本上就是第二种情况。
Yanni0507
2018-11-07 12:04:23 +08:00
@zpf124 赞同。时间消耗主要是在 SSL 握手那里,公钥验证消耗较大。不过,私钥是不会传输的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/505272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX