| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Greenplum UDP连接问题排查与解决 -> 正文阅读 |
|
[网络协议]Greenplum UDP连接问题排查与解决 |
近日遇到Greenplum数据库执行部份SQL会卡住,最终报向某个节点发包失败的错误,此处记录一下排查过程和解决方法。 1. 故障现象数据库状态正常,使用gpstate命令查看状态没有任何异常,可以正常进入数据库并查询任意表的数据,但是业务端反馈查询时一直卡住,没有数据。数据库错误如下: 2. SQL分析获取实际执行的SQL后进行分解 ,最终定位到在在执行group by操作时会执行失败,取消group by则可以执行成功。对这两个SQL进行explain,分析查询计划,发现二者最大的区别在于加入了group by的SQL会有redistribution,而没有group by的SQL不存在redistribution。 包含group: 3. 故障定位数据库传输协议 Greenplum为保证效率,segment之间默认使用UDP连接。为确认相关信息,查看数据库参数gp_interconnect_type,该参数解释如下:
修改为TCP连接后,再次执行业务SQL,可以执行成功,至此可以定位为UDP连接问题。 4. 问题解决将数据库segment之间的UDP连接改为TCP连接可以修复查询失败的问题,但是理论上TCP连接的速度会低于UDP,为了保证数据库查询效率,需要修复在UDP连接下查询失败的问题。 关于UDP连接丢包的问题,可以参考这篇博文: https://blog.csdn.net/wuyan6293/article/details/82191675 该文章中有较为详细的介绍,本文仅总结一下排查过程与解决方法。 1.确认UDP丢包信息 查询失败的报错信息中反复出现其他segment向172.28.0.148发包失败的信息,怀疑UDP发包到172.28.0.148节点后,该节点组包失败。可以在该节点使用netstat -s (statistic)命令查看各个协议的统计信息,该命令展示的信息较多,我们仅需关注Ip分类下的。
其中重点关注两个信息:
如果
修改完该参数后可以尝试运行之前不能运行的SQL,如果还是失败,则继续修改下面的参数。 2.packet reassembles failed场景一
需要增大这两个参数值来保证fragment在重组前不被丢弃,具体操作如下:
修改完该参数后可以尝试运行之前不能运行的SQL,如果还是失败,则继续修改下面的参数。 3.packet reassembles failed场景二
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 12:28:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |