【ERROR】Linux su用户报 su: /bin/bash: Too many open files in system

一、问题描述
     今天准备对weblogic主机进行操作更新时发现,无法使用su - weblogic命令了,报错:【su: /bin/bash: Too many open files in system】,这是什么原因导致的,通过字面意思,我理解是在操作系统打开太多的文件,于是我感觉应该是系统级参数,上网找了些文件,发现linux是个有file-max限制,下面我就将这个案例回放一下。

二、故障处理
1.登录weblogic用户失败,报错
[root@hcrapp2 ~]# su - weblogic
su: /bin/bash: Too many open files in system

2.检查file-max参数值
[root@hcrapp2 ~]#  cat /proc/sys/fs/file-max
4096

3.修改加大系统级别的file-max值
[root@hcrapp2 ~]# vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

fs.file-max = 4096  替换为  6553600
"/etc/sysctl.conf" 42L, 1173C written

4.使修改的file-max值生效
[root@hcrapp2 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.file-max = 6553600

5.检查修改后是否成功生效
[root@hcrapp2 ~]# cat /proc/sys/fs/file-max
6553600

6.登录weblogic用户成功
[root@hcrapp2 ~]# su - weblogic
[weblogic@hcrapp2 ~]$


三、总结
     这个系统参数的修改,是很容易被忽略掉的,因为系统安装人员,未必就是使用运维人员,所以这也就对SA的运维经验是个衡量,不管是SA,DBA都应该有自己的文档、脚本库,以便提早的发现参数的限制不合理,像这样的参数应该在上线前就排除掉。当然出现问题也不是什么可怕的事情,哪有一生下来就什么都会的,慢慢的经验就丰富起来了。加油吧,向新的高度前进。
It’s never too late to be what you might have been.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26148431/viewspace-1994334/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26148431/viewspace-1994334/

你可能感兴趣的:(【ERROR】Linux su用户报 su: /bin/bash: Too many open files in system)