TCP临时端口使用率超过阈值告警

1.  问题描述

版本:GaussDB 6.5.1.9

客户跑批业务时,CN所在服务器经常出现TCP端口使用阈值告警,总共配置端口数量为32000+,会使用26000+,占比82%。

2.  数据收集:

  1. 查看系统随机端口资源:cat /proc/sys/net/ipv4/ip_local_port_range,操作系统默认在(32768, 61000);
  2. 查询集群规模,统计集群共有多少台服务器,每台服务器部署多少主DN:cm_ctl query -Cv;
  3. 统计Gauss进程信息:ps ux | grep gauss
  4. 在任意一台TCP端口使用率过高的机器上连接CN进入数据库,查询并发数量:select count(*) from pg_stat_activity;
  5. 查询当前CN与所有节点的连接数:select count(*) from pg_pooler_status;
  6. 统计正常连接状态下的端口使用数量:netstat -npt | grep gauss | awk ‘{print $4}’ | sort -n | uniq -c | wc -l;
  7. 收集所有Gauss进程的TCP连接信息:netstat -anopt | grep gauss > result.log

3. 问题分析  :

  1. 根据集群规模以及并发数初步计算CN与DN之间的连接数量:436 * 270 = 117720;

    image.png

  2. 由于每一并发不一定需要与所有DN相连,实际CN、DN连接数量通过pg_pooler_status视图查询:62388;

    image.png

  3. 打开收集的Gauss进程的TCP连接信息,可根据对应的进程号,统计实际各个节点总的连接数量,例如:CN进程号为76649,搜索进程号,可看到实际有66371条连接;image.png

    image.png

  4. 同理,DN与DN之间也存在着连接,数量为:4 * DN数量,也可根据DN进程统计连接数量;
  5. 可以看出,Gauss连接数量远远大于可用端口数量,由于端口存在复用,实际使用数量为2.6中收集的:27922;

4. 规避措施  :

  1. GaussDB所有进程均支持端口复用,端口使用率高也不会出现问题,但是如果在同台服务器上有第三方进程不支持端口复用时,随机端口耗尽后可能会出现报错。可根据情况评估后,选择是否屏蔽此项告警;
  2. 降低并发数量,减少连接;

5. 几个减少连接数量的方法(修改前要评估) :

  1. 开启CN多流,GUC参数为comm_cn_dn_logic_conn;
  2. 清理空闲连接,clean connection to all;

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316552.html

(0)
上一篇 2025年10月29日 23:05
下一篇 2025年10月29日 23:07

相关推荐

发表回复

登录后才能评论