java.net.SocketException: Too many open files_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java.net.SocketException: Too many open files

java.net.SocketException: Too many open files

 2011/12/20 10:53:41  printfabcd  http://printfabcd.iteye.com  我要评论(0)
  • 摘要:刚才写脚本出现了一个异常java.net.SocketException:Toomanyopenfiles,以前没有遇到过,试了几次都这样。后来看了一下linux的限制(执行ulimit-a命令)显示如下corefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedschedulingpriority(-e)0filesize(blocks,-f)unlimitedpendingsignals(-i)71680maxlockedmemory
  • 标签:.net file many files net Java socket

?????? 刚才写脚本出现了一个异常java.net.SocketException: Too many open files ,以前没有遇到过,试了几次都这样。后来看了一下linux的限制(执行ulimit -a 命令)显示如下

?

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 71680
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 71680
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

?

??? 其中open files 为1024 ,好像有点小,将它调整大一点试一下就ok了(ulimit -n 65536)。注意:这个调整只影响你的创建的子进程不会影响,不会影响其他人。

?

?? 有时候在linux上的服务器也会抛出这个错误 ,只要在启动服务器的脚本执行前添加一些代码。设置ulimit 例:

?

?

 76 ulimit -s 128
 77 ulimit -n 8192

?

??? 以前只是知道ulimit 命令这次算是用上啦!!

Linux下如何查看进程打开的文件以及修改进程打开文件数上限

1. 查看进程打开文件
在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件。

2. 修改进程打开文件数上限
Linux 默认的进程打开文件上限是1024个,可以通过ulimit -n查看。很多系统上限可以通过修改/etc/security/limits.conf文件改变,这个文件有详细的注释,对如何修改做了说明。如果希望把所有用户的进程打开文件上限改为65536,可以加入下面两行

* soft nofile 65535
?????? * hard nofile 65535
还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。

发表评论
用户名: 匿名