Nginx错误日志:recv() failed (104: Connection reset by peer) while reading response header from upstream

1 篇文章 0 订阅
1 篇文章 0 订阅

近期收到其它同事的反馈:有个http接口调用经常出现Connection timed out,去查看tomcat下的业务日志和catalina.out也没有重要线索,怀疑reload nginx造成短时的网络问题,然而说出这种猜想自己都有点心虚。果然没多久就啪啪啪打脸了,好香!服务调用又出异常啦,而且有时候行,有时候Connection timed out~

没办法只能从整个链路查日志,链路大概是这样的:

前端发送的请求 → nginx  → ip哈希方式到Web服务器

既然Web服务器找不到有用的日志,只能去nginx找,果然在nginx的错误日志里找到大量如下错误日志:

[error] 26621#0: *50585595 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xxx.xxx.xx.xxx...

找到错误但完全没有解决思路,难受?,屋漏偏逢连夜雨,接着又收到CPU 200%的预警邮件,有点小兴奋。使用top命令查看是哪个进程占用了这么高的CPU,是个java进程,使用pwdx pid定位到进程所在路径。

估计是pid对应的进程已经不能正常工作了,查看占用CPU最高的两个线程,发现其一直在做Full GC操作。到这大概知道怎么回事了,Tomcat进程估计发生了内存泄漏已无法处理请求,快速对该进程的现场信息进行保存,然后重启Tomcat,重启后nginx不再产生recv() failed (104: Connection reset by peer)的错误日志。


总结
系统出现时好时坏的异常时首先要留意流入服务器的第一个站点以及CPU内存状况

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值