【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.1.7
【遇到的问题:问题现象及影响】 TIDB是存储计算分离的架构,网络延迟和丢包这块对整个集群的性能影响,如果能有一些建议值和经验值最好了,例如:三个模块的物理机器ping延迟需要保证在x ms以内,丢包个数小于x个等等
经验值可做参考:
一个DC内部延迟小于0.5ms,同城两DC之间小于2ms,异地小于5ms,丢包越少越好
能控制到1ms最好
建议1ms
还丢包… W兆网络丢包就要洗洗睡了…
整体1MS以内能保证,但是考虑TIDB是分布式的架构,特别是PD,TIKV是RAFT实现的,担心万一一台机器网络异常导致整个集群性能受影响
看来网络这块的监控得通过各个物理机器定时相互PING来尝试延迟来决定是否有异常了
1、集群尽量不要跨中心部署,如果跨机房做同城多中心尽量在50公里以内,建议同城多中心还是用cdc同步多个集群方式,做集群跨中心部署强烈建议用企业服务,毕竟都多个中心了应该不差这点钱,不然自己搞问题可能多多。
2、单机房内网络基本都是在1ms以下(实际上通常平均是50微妙-200微妙),只要不过防火墙、网络带宽万兆网,就不需要考虑这块问题,基本都能满足。
3、存算分离在数据交互上网络是一方面问题,数据库本身RPC处理能力是一方面问题,网络带宽足够的情况下也有可能发生处理慢的情况这是RPC处理机制问题,对于数据无法下推到tikv过滤的的频繁数据请求(比如全表扫描,大量hashjoin等需要将数据搬运到计算节点处理的请求)强烈建议单独部署tidb-server,避免对联机交易进行干扰。
主要是你们不用grafana,不然这图本来就有。
grafana里面有个
Blackbox_exporter。
这个里面有任意服务器和集群内其他服务器的延迟。
大佬最佳实践经验
这个是服务器ping其它还是其它服务器ping这个的延迟?
通常在几毫秒以内,网络丢包可以提高网络带宽,采用万兆网络,尽量减少
同机房延迟小于0.5ms,同城多机房延迟小于2ms,异地机房小于5ms,仅供参考
这个回复很专业
都有。
在上面可以选从那个主机出发的ping。
图表就是到集群内每个机器的延迟。
所以说是网状且双向的。可以观察到任何一个主机到集群内其他机器的ping值。
我的tiflash和tikv不在一个子网。可以看到有一定的延迟。
这是在哪个监控项指标里呢,v6.1.7版本有么
找到了,有了这个监控就能确定网络延迟的问题了
要结合网络流量来看吧。网络延迟用ping只能初步来定位个大概, ping的优先级比较低,不一定很准。最好的是db.ping走的是tcp协议优先级高,更准确一些,只是监控面板没有。在网络流量高的时候ping延迟可能会比较高,实际不一定延迟那么多,得综合分析。