TCP的backlog导致的HBase超时问题排查

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: TCP的backlog导致的超时问题排查

客户问题场景

tcpbacklog_jpeg

如上图所示,用户业务服务器(ApplicationServer)上面发起HTTP GET/PUT请求,经过SLB到达后端服务器(HBase-Rest-Server), 一般请求链路耗时大概100ms左右,但是会有一定的概率出现耗时很长(超过3s)。

问题排查

1. 抓包分析

通过在HBase-REST-Server上面抓包,发现有SYN重传,引起SYN重传的原因是上图所示的Queue满了,导致新请求的SYN包丢弃。

Linux的SYN重传通过net.ipv4.tcp_syn_retries参数控制重传次数,每次重传的时间间隔为(第一次3s,第二次6s,第三次12s,每增加一次时间间隔翻倍),所以当SYN包被丢弃后,第一次会经过3s后进行重传,这个3s也跟上述的超时3s比较吻合。

2. 参数调整

从上面可以看出Queue满导致重传,所以适当增加Queue的大小可以解决重传,Queue的大小受一些参数来控制:

  • http server启动设置的backlog大小
  • net.core.somaxconn
  • tcp_max_syn_backlog

最终通过增加上述参数,问题解决。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
DataWorks 数据管理 大数据
DataWorks操作报错合集之在连接HBase时出现超时问题,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
监控 分布式数据库 Hbase
《HBase in Practise 性能、监控和问题排查》电子版地址
HBase in Practise: 性能、监控和问题排查
123 0
《HBase in Practise 性能、监控和问题排查》电子版地址
|
缓存 网络协议 算法
计算机网络学习26:TCP/UDP对比区别、TCP流量控制、拥塞控制、超时重传时间的选择、可靠传输的实现
UDP: User Datagram Protocol 用户数据报协议 TCP: Transmission Control Protocol 传输控制协议 同时这里指的连接是指逻辑连接,而不是物理连接。
计算机网络学习26:TCP/UDP对比区别、TCP流量控制、拥塞控制、超时重传时间的选择、可靠传输的实现
|
网络协议 Java
【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )
【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )
274 0
【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )
|
存储 缓存 监控
一次HBase读超时的调优
现象:因为系统实时性要求比较高,HBase超时时间设置为2秒。偶尔会出现(几个小时)出现一波超时的情况,看了监控IO、CPU等并没有出现明显大波动。不过集群是高读写的,每秒几万的请求。就开始参与协助帮忙集群的排查、调优工作。 汗,最关键的是集群都用上了SSD,这是开大的节奏。 先来看看HBase主要的几个参数: 1、major compaction(大合并操作,几天执行一次,或者手动执行。对IO影响很大,对性能影响也很大) 2、memstore:regions数量、列簇数量有影响 ,一个列簇就需要一个memstore ,会占用region server的内存。 3、负载均衡:是不是某
216 0
|
算法 网络协议 缓存
TCP/IP详解 卷1 第二十一章 TCP的超时与重传
21.1 引言 可靠性的保证之一就是超时重传 前面两个超时重传的例子 1)  ICMP端口不能到达时,TFTP客户使用UDP实现了一个简单的超时和重传机制,假定5s是一个适当是时间间隔,并每隔5s进行重传 2)  在向一个不存在的主机发送ARP的 例子中,可看到当TCP试图建立连接的时候,在每个重传之间使用一个较长的时延来重传SYN   对于每个连接,TCP管理4个不同的定时器: 1)  重传定时器使用于当希望收到另一端的确认 2)  坚持(persist)定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。
1078 0
|
网络协议 Linux
《Linux高性能服务器编程》——3.9 TCP超时重传
本节书摘来自华章计算机《Linux高性能服务器编程》一书中的第3章,第3.9节,作者 游双,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2028 0