GBase 8a加载过程中,可能受到数据源,网络,数据库节点资源等影响,导致加载性能变慢。包括持续变慢和偶发变慢两种情况。本文从项目经验中总结汇总已经遇到并解决的变慢原因。
目录导航
参考
现象
变慢周期
既然是变慢,说明一开始速度是满足要求的,是某些环节出现了变动导致变慢。变慢会导致数据挤压,查询数据的时效性变差,对现场来说始于紧急事件。
对于集群一上线就慢的,本文也有参考价值,但一般没有那么紧急。
变慢程度
变慢10-50%的,一般在可接受范围。大概率和系统负载有关。一般是逐步变慢,比如用了1年了,感觉慢了一点点,变慢的程度也不是很高。
变慢几倍到几十倍的,大概率和环境发生较大变化有关。基本是突然变慢,比如昨天还正常,今天大范围积压。
缓慢变慢的原因
磁盘占用率高
包括机械盘和SSD盘。
其中机械盘,其外圈的速度是内圈的2倍(ZDR技术),所以磁盘空间越满,性能越差。细节请参考 GBase 8a运维案例分析:在机械磁盘空间快满时性能有明显下降
对于SSD磁盘,虽然没有内外圈差异,但由于其无法覆盖写,必须先擦除,且是成片的,所以一旦磁盘空间不足,SSD固态硬盘需要不断地在各个块之间进行写入-转移-清空操作,用久了需要擦除的区块就会越多,性能自然也会变慢。
所以磁盘不要太满,建议60-70%就要考虑扩容,或者减少历史数据的保存周期。
数据量变多
用户业务不断扩展,需要处理的数据缓慢的增加了,此时一般都对应这扩容等操作。
设备老化
设备使用时间过长,比如3-5年以上。包括网线,交换机,服务器自身等等。
突然变慢的原因
如下根据加载整个数据流程,逐个分析遇到过的导致加载速度变慢的原因。
加载大致流程如下
- 集群库连接数据源,获取数据文件数量和大小,拆分任务给几个数据分发节点
- 每个数据分发节点连接数据源,读取自己负责的文件
- 每个数据分发节点,根据规则,将数据发送到整个集群数据节点
如下从OS环境类故障和数据类故障两大类分别分析。
OS环境类原因
指操作系统出现了变动导致。
- 磁盘问题
- 负载高,长时间100%繁忙。比如部署或运行了其它程序,导致系统负载高。这其中也包括OS自带的,比如 GBase 8a集群由于文件系统磁盘检查工具AIDE导致的加载缓慢问题。如果用户近期系统有过升级,或者配置变动,都有可能导致这个情况。 通过iostat可以观察系统负载,是否存在磁盘长时间100%繁忙的情况
- 磁盘性能差。通过iostat可以看到await超高,一般伴随着持续100%繁忙。
- 磁盘故障。从操作系统日志/var/log/messages能看到某些数据的读取出现超时或者Input/Output Error,等文件系统报错信息。
- CPU降频。从/proc/cpuinfo|grep MHz,可以看到其频率不是满功率,或者在持续变动。可能是开启了节能模式,或者散热不好导致。
- 网络问题。用wget/curl获取文件,性能远低于其它机器。比如只有几百KB,几MB,而其它的是几十或几百MB。
- 网卡降速。ethtool可以看到从万兆降到百兆。一般是网线不好,或者被触碰过导致接触问题,小概率是交换机出现问题。
- 网卡丢包高。通过ifconfig能看到丢包情况。原因同前。
- 网卡延迟高。用ping能看到延迟。电信级一般建议10ms以内。原因同前。
数据类原因
原始数据文件大小出现变动。
个别数据文件过大:一些数据文件是其它节点的8倍,且是不可拆分的压缩文件,导致部分分发节点加载时间比其它的长,成为瓶颈,导致整体时间变长。
数据文件变小:大量的小文件,占用更多的IO,包括网络和磁盘,非常不利与大数据加载。一般是采集端做了参数调整,或者新接入的数据源,忘了更改配置导致。
分发节点变少
分发节点数量由cluster_loader_max_data_processors参数指定。有现场没有将参数写入配置文件中。当部分管理节点重启后,出现了加载速度变慢的情况。
排查过程
查看速度变化规律
确认是持续变慢,还是偶发变慢。
查看变慢程度
是否有规律,比如和某个时间段有关,比如凌晨有背景任务。
确认是略有变慢,还是几倍几十倍的变慢。
查看加载过程
看是否每次最后完成的节点,是否都是来自某些分发节点,或者数据来自某些数据源节点。
查看节点资源,包括数据源
重点是排查上一步怀疑的节点。如果没有重点,就所有节点都查看,是否部分节点有性能瓶颈。
iostat等查看磁盘,cpu是否繁忙,wait是否过高,磁盘是否有报错。
top等查看是否用了SWAP导致。
查看cpu是否降频
查看网卡是否降速
测试节点间网络速度
用wget,curl测试不同节点间,特别是数据库和数据源之间的速度。
比如用scp复制文件,建议别太小,比如超过200M。
查看数据据引擎状态
查看gnode的show engine express status状态,发给GBase 8a售后人员协助分析。
跟踪加载流程日志
开启日志,手工进行一次加载,复现问题。
总结
加载突然变慢,一般和环境变化有关。
加速缓慢变慢,一般和使用时间长,特别是磁盘空间不充足有关。