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

来源:岁月联盟 编辑:exp 时间:2012-04-11

今日遇到产品中报错[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为122.使用:lsof -p 12 | wc -l    查看当前进程id为12的 文件操作状况    执行该命令出现文件使用情况为 10523.使用命令: ulimit -a    查看每个用户允许打开的最大文件数    发现系统默认的是open files (-n) 1024,问题就出现在这里。4.然后执行:ulimit -n 4096     将open files (-n) 1024 设置成open files (-n) 4096 这样就增大了用户允许打开的最大文件数,每个ssh连上的用户的设置ulimit是互不干扰的。 现在我们产品的解决办法是在启动脚本sh里加入ulimit -n 65535 当然这仅是在必要的时候,一般情况下还要先检查一下文件流的关闭情况。   作者 艺术家