linux用户打开文件最大数问题



今日遇到产品中报错[Too many open files],相关知识如下。
 
查看系统允许打开的最大文件数
 
#cat /proc/sys/fs/file-max
 
查看每个用户允许打开的最大文件数
 
ulimit -a
 
发现系统默认的是open files (-n) 1024,问题就出现在这里。
 
在系统文件/etc/security/limits.conf中修改这个数量限制,
 
在文件中加入内容:
 
* soft nofile 65536 
* hard nofile 65536
  www.2cto.com  
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
 
这样就增大了用户允许打开的最大文件数,每个ssh连上的用户的设置ulimit是互不干扰的。
 
现在我们产品的解决办法是在启动脚本sh里加入ulimit -n 65535
 
当然这仅是在必要的时候,一般情况下还要先检查一下文件流的关闭情况。
 
 
 
作者 艺术家

相关内容

    暂无相关文章