淘宝tair可能会超时的原因总结

最近在看tair的架构,由于实际项目中存在大量的超时,很想探究一下其内部的原因

先看一下tair的架构

 tair内部架构

​由三部分组成

Config Server:​通过heart beat 来维护集群中的可用节点,并根据可用节点,构建数据在集群中的分布信息(对照信息表)

Data Server:用来存储数据信息,并按照Config Server来完成复制和迁移工作

Client:客户端,在初始化的时候在Config Server中获得数据分布信息,然后根据分布信息和Data Server进行交互,获取对应数据

Config Server中数据分布表(对照信息表):

0  192.168.10.1

1  192.168.10.2

2  192.168.10.1

3  192.168.10.2

4  192.168.10.1

5  192.168.10.2

下面是在工作中的碰到的几点超时原因的总结

1.key的热点问题

某些key存在大量的冲突,导致分布不均匀,在这样的情况下,如果并发量高的话,可能会导致请求都打到某一台dataServer上了,引起大量的超时

2.​dataServer服务器数量不足以支撑当前的并发量

3.​dataServer服务器资源抢占

4.磁盘写入抖动

5.mdb分配大小不合理

某些存储型的业务,没有明显热点数据,但mdb配置的非常大,导致page cache太少,大量磁盘io​

6.客户端问题

客户端服务器资源紧张(如cpu使用高,java fullgc等),导致tair线程得不到调度,进而超时

 

posted @ 2017-11-23 13:54  HE_PX  阅读(601)  评论(0编辑  收藏  举报