知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

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

发布时间:2014-09-05 16:17:48作者:知识屋


今日遇到产品中报错[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.zhishiwu.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
 
当然这仅是在必要的时候,一般情况下还要先检查一下文件流的关闭情况。
 
 
 
作者 艺术家
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜