gpt4 book ai didi

go - ListenAndServe 与 ListenAndServeTLS 速度

转载 作者:太空宇宙 更新时间:2023-11-03 15:15:48 32 4
gpt4 key购买 nike

我正在构建一个 API,每秒会收到来自几个来源的许多请求(称为 1000/秒),并且会用非常少的信息(想想 < 1k)快速响应每个请求。

当我使用 HTTP (http.ListenAndServe()) 时,在我的 t3.micro 上使用 Siege 时性能在 1000-2000 请求/秒之间,CPU 使用率很少超过 30-40%

使用 HTTPS (http.ListenAndServeTLS()),我在 CPU 使用率为 100% 时限制在大约 450 个请求/秒。看起来很明显它做了很多 SSL 握手类型的工作,但我的问题是为什么会这样?即使来自 Siege 的并发连接很少,它也会慢得多(我还在 siege 配置中尝试了 connection=keep-alive)

我知道第一个连接应该更慢,但在那之后,这种行为是否仍然是预期的,或者是否存在一些我不知道的问题?我注意到一件事是 Siege 使用的是 HTTP/1.1,我认为它在通过 HTTPS 时应该使用 2.0?

谢谢。

最佳答案

使用 SSL/TLS 时,您的程序需要对发送或接收的每条消息进行编码和解码,这会消耗 CPU 资源。您可以尝试添加 http/https 代理,这将终止 SSL/TLS 流量。这可以是 apache http、nginx、haproxy。这可以改善这种情况。

关于go - ListenAndServe 与 ListenAndServeTLS 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59514126/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com