一、问题表象:
程序日志报错:java.io.IOException: Too many open files at
二、解决方案:
1、查看系统允许打开的最大文件数:
cat /proc/sys/fs/file-max 2、查看每个用户允许打开的最大文件数: ulimit -a 3、发现系统默认的是open files (-n) 1024,问题就出现在这里。 在系统文件/etc/security/limits.conf中修改这个数量限制, 在文件中加入内容: * soft nofile 65536 * hard nofile 65536 另外方法: 1、使用ps -ef |grep java (java代表你程序,查看你程序进程) 查看你的进程ID,记录ID号,假设进程ID为12 2、使用lsof -p 12 | wc -l 查看当前进程id为12的 文件操作状况 执行该命令出现文件使用情况为 1052 3、使用命令ulimit -a 查看每个用户允许打开的最大文件数 发现系统默认的是open files (-n) 1024,问题就出现在这里。 4、然后执行ulimit -n 4096 将open files (-n) 1024 设置成open files (-n) 4096
摘抄自:https://www.aliyun.com/jiaocheng/120721.html