AWS应用程序负载均衡器Http2持久连接(“keep-alive”)的性能怎么样?

0

【以下的问题经过翻译处理】 我对"AWS应用负载均衡器"的keep-alive有一些问题:1. "AWS应用负载均衡器"本身是否维护内部http2连接池?(是还是不是?)2. 如果负载均衡器确实维护其自己的http2连接池以进行持久的http2连接,那么我想问: 1. 我在AWS文档中找不到任何关于配置(如果有的话,请给我连接)和由ALB维护的http2连接池的大小的说明。例如,它是否可以同时保持200万个http2连接处于打开状态(为了实现超低延迟)?这将带来什么代价(是否存在扩展成本)?有关这些方面的详细信息的任何链接吗? 2. 默认情况下,ALB是否维护固定大小的http2连接池,以在它和浏览器(客户端)之间保持持久连接?如果它们是固定大小的,那么它们默认有多大?如果它们是动态的,那么有什么规则来管理它们的扩展/收缩,并且它们最多可以容纳多少持久http2连接?30k?40k?5百万? 3. 假设我们有2万个http2客户端,它们运行会话长达30分钟的单页应用程序(SPA)。这些客户端需要通过AWS ALB为其半频繁的http2请求享受超低延迟(例如,每4秒1个请求,相当于每秒约5k个请求登录ALB):将ALB配置为具有庞大的http2连接池,以确保来自我们客户端的所有20k个http2连接在整个生命周期内都保持有效,这样配置有意义吗?我理解,通过这种方式,http2连接将不会被关闭和重新打开(保证了较低的抖动,因为重新建立新的http2连接需要一些额外的延迟,如果我有理解错误,请及时纠正)

profile picture
专家
已提问 2 年前35 查看次数
1 回答
0

【以下的回答经过翻译处理】 您好,关于应用程序负载均衡器的并发连接限制,它没有上限,可以自动扩展以应对绝大部分的流量负载(可参阅https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)。当流量增加时,应用程序负载均衡器会积极扩展容量,而在流量减少时它会谨慎地缩减容量。随着扩展容量,新的高容量节点将被添加并注册到DNS中,而之前的节点将被删除。这有效地为应用程序负载均衡器提供了动态连接池。当您使用您所描述的客户端行为时,配置应用程序负载均衡器时您需要关注的主要属性将是连接空闲超时设置(Connection Idle Timeout setting)。默认情况下,它设置为60秒,但可以设置为高达4000秒。在您的情况下,您可以设置一个值,以满足您需要维持长达30分钟的连接而不会被终止,同时利用应用程序中的HTTP keep-alive选项。如您所预期的,应用程序负载均衡器将从最初的容量开始,可能不会立即满足您的工作负载。但正如上文所述,应用程序负载均衡器会积极扩展容量,而缩减容量时则谨慎。它会在几分钟内扩展,但根据接收到的流量,会在几小时内缩减。我强烈建议您查看我们的ELB评估的最佳实践页面(https://aws.amazon.com/articles/best-practices-in-evaluating-elastic-load-balancing ,了解有关扩展的更多信息,以及如何测试您的应用程序,以更好地了解ALB将如何根据您的流量负载进行操作。根据流量增长的速度,如果ALB尚未完全扩展以满足流量需求,但最终将扩展到必要的容量,则ALB可能会返回HTTP 503错误。在进行负载测试时,我们建议流量在五分钟的时间间隔内增加不超过50%。在定价方面,ALB按ALB运行的每小时以及每小时使用的负载平衡器容量单元(LCU)的数量收费。LCU是基于处理业务的一组维度来测量的;新连接、活动连接、已处理字节和规则评估,并且仅根据特定小时内使用率最高的维度向您收费。例如,您可以使用ELB定价计算器预估您的使用成本

profile picture
专家
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则