一早起来,发现服务器挂了,查看日子,发现报了一推java.net.SocketException: Too many open files异常。搜索后才知道,是linux系统对进程打开的文件数量是有限制的。
open files最大打开数为1024
用命令ulimit -a查看
[root@taoci01 ~]# 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) 20480
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) 20480
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
open files最大打开数为1024
通过ulimit -n 10240可修改限制数
[root@taoci01 ~]# ulimit -n 10240
[root@taoci01 ~]# 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) 20480 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 10240 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) 20480 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
但退出重新登陆后,用ulimit -a 发现还是1024,这个修改不是永久修改。
如果需要永久修改限制数,可以按照如下方式。
[root@taoci01 ~]# vi /etc/security/limits.conf
在最后加上
root soft nofile 10240 root hard nofile 10240