bw_mem 内存_TCP:内存不足—考虑调整tcp_mem

在遇到AWS EC2实例上的Java应用无响应问题时,通过`dmesg`命令发现TCP内存不足的内核错误。文章讨论了如何理解和解决这个在TCP级别而非应用级别出现的内存问题,提出了调整内核参数如`tcp_mem`的建议,以避免类似性能问题。
摘要由CSDN通过智能技术生成

bw_mem 内存

最近,我们遇到了一个有趣的生产问题。 一个应用程序在Elastic Load Balancer之后的多个AWS EC2实例上运行。 该应用程序在GNU / Linux OS,Java 8和Tomcat 8应用程序服务器上运行。

突然之间,一个应用程序实例变得无响应。 所有其他应用程序实例都在正确处理流量。 每当从浏览器向该应用程序实例发送HTTP请求时,我们都会在浏览器上打印以下响应。

Proxy Error 

The proxy server received an invalid response from an upstream server. 
The proxy server could not handle the request GET /.

Reason: Error reading from remote server

我们使用了APM(应用程序性能监视)工具来检查问题。 从APM工具中,我们可以观察到CPU和内存利用率是完美的。 另一方面,从APM工具中,我们可以看到流量并没有进入这个特定的应用程序实例。 真是令人费解。 为什么流量没有进入?

我们登录到该有问题的AWS EC2实例。 我们执行了vmstatiostatnetstattopdf命令,以查看是否可以发现任何异常。 令我们惊讶的是,所有这些出色的工具均未报告任何问题。

对于下一步,我们重新启动了运行该应用程序的Tomcat应用程序服务器。 它也没有任何区别。 不过,这个应用程序实例根本没有响应。

DMESG命令

然后,我们在此EC2实例上发出了' dmesg '命令。 此命令显示内核的消息缓冲区。 该命令的输出通常包含设备驱动程序产生的消息。 在此命令生成的输出中,我们注意到以下有趣的消息被重复打印:

[4486500.513856] TCP: out of m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值