TCP的backlog导致的HBase超时问题排查
2023-09-11 14:19:09 时间
客户问题场景
一次HBase读超时的调优 现象:因为系统实时性要求比较高,HBase超时时间设置为2秒。偶尔会出现(几个小时)出现一波超时的情况,看了监控IO、CPU等并没有出现明显大波动。不过集群是高读写的,每秒几万的请求。就开始参与协助帮忙集群的排查、调优工作。 汗,最关键的是集群都用上了SSD,这是开大的节奏。 先来看看HBase主要的几个参数: 1、major compaction(大合并操作,几天执行一次,或者手动执行。对IO影响很大,对性能影响也很大) 2、memstore:regions数量、列簇数量有影响 ,一个列簇就需要一个memstore ,会占用region server的内存。 3、负载均衡:是不是某
TCP/IP详解 卷1 第二十一章 TCP的超时与重传 21.1 引言 可靠性的保证之一就是超时重传 前面两个超时重传的例子 1) ICMP端口不能到达时,TFTP客户使用UDP实现了一个简单的超时和重传机制,假定5s是一个适当是时间间隔,并每隔5s进行重传 2) 在向一个不存在的主机发送ARP的 例子中,可看到当TCP试图建立连接的时候,在每个重传之间使用一个较长的时延来重传SYN 对于每个连接,TCP管理4个不同的定时器: 1) 重传定时器使用于当希望收到另一端的确认 2) 坚持(persist)定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。
《Linux高性能服务器编程》——3.9 TCP超时重传 本节书摘来自华章计算机《Linux高性能服务器编程》一书中的第3章,第3.9节,作者 游双,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
[原创]TCP的backlog导致的HBase访问超时问题排查(续) 接前一篇文章 TCP的backlog导致的HBase超时问题 https://yq.aliyun.com/articles/117801?spm=5176.8091938.0.0.kypXIC ##问题场景 ![1.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/9fda470aa6727587b15909e9a0
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
如上图所示,用户业务服务器(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最终通过增加上述参数,问题解决。
一次HBase读超时的调优 现象:因为系统实时性要求比较高,HBase超时时间设置为2秒。偶尔会出现(几个小时)出现一波超时的情况,看了监控IO、CPU等并没有出现明显大波动。不过集群是高读写的,每秒几万的请求。就开始参与协助帮忙集群的排查、调优工作。 汗,最关键的是集群都用上了SSD,这是开大的节奏。 先来看看HBase主要的几个参数: 1、major compaction(大合并操作,几天执行一次,或者手动执行。对IO影响很大,对性能影响也很大) 2、memstore:regions数量、列簇数量有影响 ,一个列簇就需要一个memstore ,会占用region server的内存。 3、负载均衡:是不是某
TCP/IP详解 卷1 第二十一章 TCP的超时与重传 21.1 引言 可靠性的保证之一就是超时重传 前面两个超时重传的例子 1) ICMP端口不能到达时,TFTP客户使用UDP实现了一个简单的超时和重传机制,假定5s是一个适当是时间间隔,并每隔5s进行重传 2) 在向一个不存在的主机发送ARP的 例子中,可看到当TCP试图建立连接的时候,在每个重传之间使用一个较长的时延来重传SYN 对于每个连接,TCP管理4个不同的定时器: 1) 重传定时器使用于当希望收到另一端的确认 2) 坚持(persist)定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。
《Linux高性能服务器编程》——3.9 TCP超时重传 本节书摘来自华章计算机《Linux高性能服务器编程》一书中的第3章,第3.9节,作者 游双,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
[原创]TCP的backlog导致的HBase访问超时问题排查(续) 接前一篇文章 TCP的backlog导致的HBase超时问题 https://yq.aliyun.com/articles/117801?spm=5176.8091938.0.0.kypXIC ##问题场景 ![1.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/9fda470aa6727587b15909e9a0
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
相关文章
- HBase Thrift客户端Java API实践
- hbase和zookeeper的安装和部署
- 理解Hbase和BigTable(转)
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
- 【大数据-文摘笔记】京东HBase平台进化与演进
- Hbase 学习(四) hbase客户端设置缓存优化查询
- Hbase 学习(十) HBase Snapshots
- Hbase 学习(十一)使用hive往hbase当中导入数据
- HBase的列族式存储介绍
- 彻底搞懂 HBase Rowkey 设计和实现方式
- HBase无法连接ZooKeeper问题
- HBase中的备份和故障恢复方法
- TCP报文格式和三次握手——三次握手三个tcp包(header+data),此外,TCP 报文段中的数据部分是可选的,在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。
- hbase如何保证数据完整性,丢失数据该如何解决
- HBase(5):HBase进阶