Too many open files是Linux系统中常见的错误,字面意思就是说打开了太多的文件,超过了系统的限制。
这里的文件(file)更准确的意思是文件句柄,或者是文件描述符。可以说,Linux系统里的一切都是文件,包括网络连接、端口等等。
lsof -p pid命令可以查看指定进程当前打开的文件信息。wc -l命令指按行统计。问题分析
open files 那行就是表示打开的文件数限制,即一个进程最多可以同时打开的文件数。当时查出来的配置是4096,查看其他没问题的环境上的配置,数量都是远远大于这个数。而且系统重新启动后,没做任何操作时,通过lsof -p pid | wc -l查看文件占用,只有100多个。在好的环境上执行导入成功后,再次查看,文件占用数不变。在有问题的环境上导入失败后,查看文件占用数也是不变。
也可以通过ulimit -n直接查看最大打开文件数量。
命令ulimit -n 65536只能临时临时调整文件数量,系统重启后配置就会失效。
如果要永久生效,需要在配置文件/etc/security/limits.conf里增加如下两行:复制代码
- * soft nofile 65536
- * hard nofile 65535
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |