aspnetcore3.1版本,部署到docker容器,长时间运行后,突然不处理新的请求了,但是docker容器并没有退出,telnet接口的端口号是成功的,请问大家有没有遇到过类似的情况,该怎么排查这种问题
代码中有没有在同步方法中调用异步方法的地方?
没有 全部都是异步的,感觉是不接受新的请求进来了,请问有没有好的排查方法
代码问题,记录日志看看
有通过中间件记录全部异常日志的 我看假死前的日志都是正常的 假死后就没有日志了,请问下一步要怎么排查
内存使用情况?看描述像是发生了内存泄漏
不是的 我通过docker stats看过 内存是正常的 只有几百M
“不处理新的请求”是什么意思?超时了,还是返回了错误码?
不是超时 是没有响应任何内容了 但是telnet端口号还在
@雙孖星: 你的意思是发送一个http请求,不会超时,不会有任何反应?
会不会是有耗时操作?建议在可以方法开始处和结束处分别写日志,看看是不是只记录了开始时的日志,记录不到结束时的日志
@会长: 是的 任何http请求都没响应了 是不是要抓包看看情况
@会长: 已经假死了两天了 应该不是耗时操作导致吧 因为请求很多 在这种情况下 这样加日志也很难看出出哪个耗时没有完成
@雙孖星: 肯定有地方可以加这样的日志,我太久没看了,忘记了,在一个较高的中间件中加
@雙孖星: 但是出问题肯定是个某接口,总结还是某个接口代码有问题
另外进入到容器用netstat查查tcp的连接情况。
dotnet-dump
https://docs.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-dump 一下看看。
好的 下次遇到这种情况我试试
请问楼主后找到问题吗 我的也出现这种问题
还没有 你可以试试有没有死锁了