linux error --too many open files(Linux错误——打开文件太多).docVIP

linux error --too many open files(Linux错误——打开文件太多).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux error --too many open files(Linux错误——打开文件太多)

linux error --too many open files(Linux错误——打开文件太多) .socketexception: too many open files to .socket.createimpl (socket.java: 388) to .socket.connect (socket.java: 517) to .socket.connect (socket.java: 469) to workclient.doconnect (networkclient.java: 163) to .www.http.httpclient.openserver (httpclient.java: 394) to .www.http.httpclient.openserver (httpclient.java: 529) to .www.http.httpclient. practice (httpclient.java: 233) to .www.http.httpclient.new (httpclient.java: 306) to .www.http.httpclient.new (httpclient.java: 323) to tocol.http.httpurlconnection.getnewhttpclient (httpurlconnection.java: 852) to tocol.http.httpurlconnection.plainconnect (httpurlconnection.java: 793) to tocol.http.httpurlconnection.connect (httpurlconnection.java: 718) to tocol.http.httpurlconnection.getoutputstream (httpurlconnection.java: 896) to a8.mms.util.tools.postobject (tools.java: 301) 情景描述: 系统产生大量 too many open files 原因分析: 在服务器与客户端通信过程中, 因服务器发生了socket未关导致的closed _ wait发生, 致使监听port打开的句柄数到了1024个, 且均处于close _ wait的状态, 最终造成配置的port被占满出现 too many open files, 无法再进行通信. close _ wait状态出现的原因是被动关闭方未关闭socket造成, 如附件图所示: 解决办法: 有两种措施可行 一、解决: 原因是因为调用serversocket类的accept () 方法和socket输入流的read () 方法时会引起线程阻塞, 所以应该用setsotimeout () 方法设置超时 (缺省的设置是0, 即超时永远不会发生); 超时的判断是累计式的, 一次设置后, 每次调用引起的阻塞时间都从该值中扣除, 直至另一次超时设置或有超时异常抛出. 比如, 某种服务需要三次调用read (), 超时设置为1分钟, 那么如果某次服务三次read () 调用的总时间超过1分钟就会有异常抛出, 如果要在同一个socket上反复进行这种服务, 就要在每次服务之前设置一次超时. 二、规避: 调整系统参数, 包括句柄相关参数和tcp / ip的参数; 注意: / proc / sys / fs / file max 是整个系统可以打开的文件数的限制, 由sysctl.conf控制; ulimit修改的是当前shell和它的子进程可以打开的文件数的限制, 由limits.conf控制; lsof是列出系统所占用的资源, 但是这些资源不一定会占用打开文件号的; 比如: 共享内存, 信号量, 消息队列, 内存映射等, 虽然占用了这些资源, 但不占用打开文件号; 因此, 需要调整的是当前用户的子进程打开的文件数的限制, 即limits.conf文件的配置; 如果cat / proc / sys / fs / file - max值为65536或甚至更大, 不需要修改该值; 若ulimit - a; 其open files参数的值小于4096 (默认是1024), 则采用如下方法修改open files参数值为8192; 方法如下: 1.使用root登陆, 修改文件 / etc / security / limits. conf vi / etc / security / 添加 limits. xxx - nofile 8192 xxx 是一个用户, 如果是想所有用户生效的话换成 *, 设置的数值与硬件配置有关, 别设置太大了. # d

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档