linux io 请求 太多,并发连接导致打开文件过多:java.io.IOException: Too many open files 解决方法...

用 CentOS 做 API 接口服务器供其他终端调用时,并发量高会报错:java.io.IOException: Too many open files。

其原因是在 Linux 下默认的Socket最大连接数为 1024(可以通过 ulimit -n 查看)。

![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3duZ3BlbmdoYW8_size_16_color_FFFFFF_t_70][]

于是开始修改Linux的配置文件来增加连接数:

在/etc/rc.local 后增加一行

ulimit -SHn 65535

在/etc/profile 后增加一行

ulimit -SHn 65535

在/etc/security/limits.conf最后加入两行

* soft nofile 65535

* hard nofile 65535

用'*'号表示修改所有用户的限制;

重启 Linux 服务器,通过 ulimit -a 查看可以发现

![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3duZ3BlbmdoYW8_size_16_color_FFFFFF_t_70 1][]

[watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3duZ3BlbmdoYW8_size_16_color_FFFFFF_t_70]: /images/1613399867171.png

[watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3duZ3BlbmdoYW8_size_16_color_FFFFFF_t_70 1]: /images/1613399846298.png