linux查看文件句柄阀值,GaussDB for DWS 文件句柄使用率超过阈值或连接数达到最大导致业务报错...

目录

1、集群FI界面显示以下告警:文件句柄使用率超过阈值、TCP临时端口使用率超过阈值等;

c5c29b7b4df95b1127973c57869bb4c9.png

2、业务无法正常执行,连接DataNode5以外节点cn_5001执行作业报dn_6001_6002达到最大连接数;

a51a32d1a3ec38e27bd13d835b8dd79d.png

3、连接DataNode5上cn_5005执行作业报临时资源不可用。

1、TCP临时端口使用率超过阈值

GaussDB A支持随机端口复用,临时端口使用超过65535不会影响业务,因此此告警不会导致问题。

2、文件句柄使用率超过阈值

1)查看DataNode5机器的os系统日志,搜kernel关键字,如下:

localhost:~ # grep kernel /var/log/messages

Jul 12 16:05:01 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:12 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:12 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:12 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:13 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:13 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:13 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:14 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 12 16:05:14 DataNode5 kernel: VFS: file-max limit 640000 reached

Jul 13 09:51:46 DataNode5 kernel: VFS: file-max limit 640000 reached

omm@localhost:~ #

2)查操作系统配置的最大文件句柄数

localhost:~ # sysctl -p|grep file-max

fs.file-max = 640000

3)统计进程使用句柄数情况

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

由于文件句柄较多,统计较慢

4)统计gaussdb各进程使用的文件句柄

# 查找gaussdb进程

ps ux

# 查看某个进程使用的文件句柄数

ls /proc/pid/fd | wc -l

769acc17657841569e50d3b610b42f1c.png

#结果排查,发现cn(此cn为cn_5005)进程所占的文件句柄数最多,如下图,达到57万,略有异常,继续分析。

5) 排查cn_5005日志,重点关注7月12号下午16:05的日志信息,如下,“remaining connection slots are reserved for non-replication system admin connections”和“dn_6037_6038: sorry, too many clients already, active/non-active: 5/2995.”均表明当前系统连接数已经达到设置的最大max_connections,不能在建连。

8006d9a1495376057d638318e3419f3e.png

2af474d58093ac82d5cab299e2fb59fc.png

继续确认进程启动时间并与客户确认,上一次重启时间为19年12月,8.0之前的版本,客户持续运行7个月以上,连接数可能会一直增大,这时需要用户手动执行clean connection to all for database dbtest;去清理空闲连接,否则继续建连会出现上述报错提示,且也会由于连接数太多占用内存导致执行时报临时资源不可用。

043ac34142c591758010ba768b3907c6.png

疑问:

客户集群共部署4个CN节点,且采用LVS负载均衡,正常情况下,LVS会将作业均衡的分发给每个CN节点,但目前只有datanode5节点报文件句柄数达到最大??

6)继续排查其它机器所占用的文件句柄数,如下图只有12万+,怀疑可能是LVS异常。

a90d4a28d0a9a3a90bf1d7bc6f433ba7.png

7)与客户对齐发现,客户在使用LVS过程中,跑大量insert语句,刚开始运行时,观察每个cn上都会运行insert语句,运行到10小时之后(20小时才能跑完),LVS只往某两个cn上下发作业,这会导致上述cn_5005连接数远远大于其他节点。

连接数太多导致系统业务报错

客户反馈近期会升级到8.0版本,8.0版本已加入自动清理空闲连接操作,不会再出现此类报错。

法一:清理空闲连接:clean connection to all for database dbtest;

法二:集群重启后恢复

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值