- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- inode学生区校园网使用指南(Inode student District Campus Network Guide).doc
- intel cpu 分类(intel cpu 分类).doc
- intel cpu分类及命名规则汇总说明(intel cpu分类及命名规则汇总说明).doc
- intel 8042简介(intel 8042简介).doc
- intel ssd工具里边的smart信息(The smart information inside the Intel SSD tool).doc
- intel 常见65nm 45nm工艺cpu汇总表(intel 常见65nm 45nm工艺cpu汇总表).doc
- internet控制信息协议(互联网控制信息协议).doc
- iar+24系列读写(Iar+24 series read and write).doc
- intouch 选型(InTouch选型).doc
- iostat来对linux硬盘io性能进行了解(Iostat to understand the performance of Linux hard disk IO).doc
- linux vi-vim 教程(Linux VI came to 教程).doc
- linux-chmod-命令-详解(linux - chmod - 命令 - 详解).doc
- linux下显示器分辨率及刷新率设置(Display resolution and refresh rate settings under Linux).doc
- linux_fs(linux_fs).doc
- linux分区大小调整完全手册(Linux partition size complete manual).doc
- linux分辨率调整(Linux resolution adjustment).doc
- linux内核入门(Linux kernel entry).doc
- linux实训测试题1(Linux training test questions 1).doc
- linux下双网卡绑定配置(Dual NIC binding configuration under Linux).doc
- linux操作系统安全及系统性能优化(Linux operating system security and system performance optimization).doc
文档评论(0)