我在AWS负载平衡器后面安装了5个t1.micro EC2。
一旦连接到LB,所有实例都会减速。 即使我直接向实例发送请求(绕过LB),10个请求中的8个请求也会花费30多秒。 实例的CPU负载似乎不成问题。 当我从LB中删除一个实例时,它的响应很好。 一旦它被添加回LB,请求再次减慢。
任何人都可以给我一些线索,为什么一旦LB连接起来,实例响应速度就会变慢?
提前致谢
听起来像在ELB中排队的请求,因为(也许)很长的Keep-Alive头文件。 ELB将通过遵守Keep-Alive标题来尽量减less到后端的连接数量。
如果后端节点有空闲的资源来处理该传入的连接,则短(或禁用)保持活动状态将迫使ELB为每个请求打开一个连接到后端。 长时间保留会减less后端连接,并会强制ELB尽可能串行化请求,这可能会导致请求等待其他人处理。
在负载testing期间检查Cloudwatch中的ELB队列,如果它们在后端闲置时增长,请尝试降低每个连接的请求数量并减lessKeep-Alive超时。 确切的值将根据您的应用要求而有所不同。
PS:t1.micro是邪恶PS(2):粘性是邪恶的