微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

增加AWS Elastic Beanstalk实例大小或增加负载均衡器是否将有助于减少随机502 Nginx错误?

如何解决增加AWS Elastic Beanstalk实例大小或增加负载均衡器是否将有助于减少随机502 Nginx错误?

我最近在我的Elastic Beanstalk应用程序中添加cpu密集型20MB +图像解码/解析功能,并注意到有时(约10%的时间)调用函数本身或随后对该应用程序不相关的请求导致来自Nginx502错误,而不是应用程序本身:

[09/Oct/2020:01:51:06 +0000] "GET /plaid/eoinfoinwfe HTTP/1.1" 502 157 "-" "Mozilla/5.0 (iPhone; cpu iPhone OS 14_0_1 like Mac OS X) AppleWebKit

我的Elastic Beanstalk实例是一个运行t2.small操作系统的Docker running on 64bit Amazon Linux 2/3.2.0,而我的负载均衡器如下所示:

Listeners: 2
Load balancer type: application
Processes: 1

切换到更大的实例大小或增加我的负载均衡器的进程是否有助于减轻我看到的502错误

解决方法

注释中的其他信息表明CPU利用率很高(80%)。这是有问题的,因为t2.small实例是 burstable ,并且只有 1个vCPU 。因此,一旦EB实例长时间忙于处理图像,不仅会消耗所有CPU,从而使实例上的其他进程无法有效运行,还会耗尽其CPU信用,从而进一步影响其性能。

您可以尝试更改为具有2个vCPU的t2.medium,并将其设置在unlimited mode中以克服其CPU信用限制。但是由于您的任务占用大量CPU,因此最好从通用实例t2切换到计算优化的C5系列。这样,您不必担心任何CPU信用,但是显然它们花费更多。为了进行比较,t2.small有1个CPU,时钟为2.5GHz,而c5.large有2个CPU,时钟为3.4 GHz。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。