linux内核打开文件句柄数量以及日志报错Nov 29 00:51:02 localhost kernel: VFS: file-max limit 65535 reached解决办法...


出现这个报错,意思是指当前系统的文件句柄数量已经超出了系统级文件句柄数量file-max设置,目前解决办法是调整这个系统级文件句柄数量的参数,或者排查异常进程处理。

1,查看linux内核下打开进程级文件句柄数量参数以及更改参数:
[root@21yunwei ~]$ulimit -n
1024
这个值明显是过小,系统部署的某个服务如打开文件数量稍大,那么就非常容易报错。内核更改办法如下:
临时解决办法:
ulimit -n 65535

永久解决办法:
vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

* soft memlock unlimited
* hard memlock unlimited

* soft nproc 2048

当然这个值也可以设置更大。同时也要注意修改 /etc/security/limits.d/90-nproc.conf设置的参数

2,查看系统级级文件句柄数量file-max。
这个文件是要设置/etc/sysctl.conf 配置文件,参数一般如下:
fs.file-max = 65535
已经设置65535,系统也有可能报错。这个就要查具体报错了。

我们可以通过如下命令观察文件句柄数量打开情况:
watch -n 1 cat /proc/sys/fs/file-nr
正常情况:
linux内核打开文件句柄数量以及日志报错Nov 29 00:51:02 localhost kernel: VFS: file-max limit 65535 reached解决办法 idc资讯 第1张

不正常情况:
linux内核打开文件句柄数量以及日志报错Nov 29 00:51:02 localhost kernel: VFS: file-max limit 65535 reached解决办法 idc资讯 第2张

出现上述不正常情况,基本服务器的各个服务器都挂了或者不能正常使用,肯定是某个服务把他打开完毕了。 我们可以通过如下命令查看大体情况:

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

结果如下:

[root@21yunwei ~]#  lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
    489 25234
    180 1270
    168 1284
    168 1283
    168 1282
    168 1278
    168 1277
    113 1291
    109 1417

说明:第一列是打开文件句柄数,第二列是PID
可以根据pid查看相似的进程大概是哪些,pid值都相近的。然后找到其中一个pid,cd /proc/pid查看是打开的哪个应用,这样就方便我们定位问题了 。
比如我这里就是的问题是之前ssh隧道映射导致大量的sshd进程影响的,处理办法就是如下:
到内网映射机器执行如下操作:

ps aux | grep sshtunel.sh | awk '{print $2}' |xargs kill

将其杀掉以后。重启线上服务器恢复。

转载请注明:云速博客www.ysidc.top» linux内核打开文件句柄数量以及日志报错Nov 29 00:51:02 localhost kernel: VFS: file-max limit 65535 reached解决办法

https://www.ysidc.top 云速博客,数据库,云速,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

博客
32132
07-14 363
07-12 296
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值