今天在服务器巡检的时候,发现一个服务大量抛出异常

异常信息为:

seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训

LockStatusPushError&&Message:One or more errors occurred. (An error occurred while sending the request. Too many open files)&InnerMessageAn error occurred while sending the request. Too many open files& at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)at System.Threading.Tasks.Task.Wait()at CommonHelper.HttpHelper.HttpRequest(String Url, String Method, String ContentType, Byte[] data, Encoding encoding)at CommonHelper.HttpHelper.PostForm(String Url, Dictionary`2 para, Encoding encoding)at CommonHelper.HttpHelper.PostForm(String Url, Dictionary`2 para)at DeviceService.Program.LockStatusPushMethod()

seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训

首先推断,是程序打开文件(端口或者管道)太多导致的超过系统最大限制

使用 ulimit -n 查看最大限制 发现 系统最大限制为65535 为正常值

使用 lsof | wc -l 查看当前打开文件数 发现执行非常缓慢,执行结果显示系统当前打开文件数500w++。。。。。

继而查看dotnet程序打开文件数,发现为400w++

lsof>>/tmp/lsof.log 把当前打开文件列表保存 以供问题判断。

 

文件导出后,发现 dotnet 程序有大量状态为 CLOSE_WAIT 的socket连接 目的地址为程序访问的HTTP服务器的80端口

seo优化培训,网络推广培训,网络营
        
        	<div class=

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式