Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1087041
  • 博文数量: 282
  • 博客积分: 10865
  • 博客等级: 上将
  • 技术积分: 2480
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-12 12:35
文章存档

2017年(1)

2016年(3)

2015年(10)

2014年(12)

2013年(5)

2012年(10)

2011年(29)

2010年(3)

2008年(13)

2007年(92)

2006年(104)

我的朋友

分类: LINUX

2012-12-21 15:23:38

操作系统:Linux
应用系统:并发量较大的系统,业务应用需打开多个文件或socket链接,如web应用。
故障现象:当系统参数配置或应用程序参数配置过小时,可能会出现too many open files 的错误。
 
检查方法:
1、检查系统允许值
1.1)检查系统允许打开的最大文件句柄数,值应该不小于65536
 
[root@dwd~]#cat /proc/sys/fs/file-max
 
65536
 
1.2)检查系统当前打开的最大文件句柄数
[root@dwd~]#cat /proc/sys/fs/file-nr
 
896          0           65536
896为系统已分配值,65536为系统最大可分配值,系统已分配值应该远小于系统允许打开的最大文件句柄数
 
2、检查系统单进程允许值
2.1) 检查单进程允许打开的文件最大句柄数
[root@dwd~]#ulimit -a 或 ulimit -n
 
open files                   (-n) 10240
 
2.2)检查系统当前允许单进程打开文件最大句柄数
 
使用lsof(list open files)是一个列出当前系统打开文件的工具查看。
[root@dwd~]#lsof -n |awk'{print $2}'|sort|uniq -c |sort -nr|more
 
85 2555
56 2838
56 2000
30 2012
36 3025
第一列是"进程打开句柄数的值",第二列是"PID进程号"
第一列的值应该远小于"进程语序打开的文件最大句柄数"的值
 
3、检查应用系统允许的文件最大句柄数
如JBOSS
在run.conf中的MAX_FD为系统默认值,该属性是配置JBOSS能够使用文件描述符的最大数量,即ulimit -a 的进程允许最大值。
 
4、"进程允许打开文件句柄数"最大值修改办法
4.1)修改系统当前允许值,修改值应能满足业务要求。
[root@dwd~]#ulimit -n 10240
4.2)检查确认
[root@dwd~]#ulimit -n
 
10240
 
4.3)修改系统配置参数,以便重启后系统参数自动生效
/etc/security/limits.conf
* soft nofile 10240
* hard nofile 65536
 
4.4)修改系统当前值后,在合适的时间需重新启动JBOSS等应用服务器,应用方能生效
 
 
 
 
 
 
 
阅读(1012) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~