GBase 8a集群由于文件系统磁盘检查工具AIDE导致的加载缓慢问题

操作系统的aide工具用于检查磁盘的完整性,如果其检查时间耗费太多的磁盘读取资源,将会影响GBase 8a数据库的性能,典型的影响就是入库速度变慢。

现象

客户反馈加载1个小压缩文件(200MB,解压后1G),需要耗时10-20秒,对于一个50节点的集群,这性能比之前的5秒以内下降1倍以上。

排查

查看集群SQL进程,发现有1个节点,明显比其它的节点耗时长。 其它节点早就结束了,就这个节点一直持续到17秒。

登录该节点,查看 iostat 发现持续100%

该机器没有安装iotop, 使用pidstat -d 查看磁盘使用情况,发现crond进程占用了130MB的磁盘读取,gbased数据库进程只有700KB。

使用pidstat -d 1 查看,发现有多个aide进程在大量(100MB+)的读取磁盘。gbased进程读取很少(3M)且耗时很短。

查看进程,发现有4个aide, 且最长的运行时间在3天了

通过cron -l 查看定时任务,发现每天凌晨5时启动了aide检查进程。

故障原因

系统配置了定时任务运行aide来检查磁盘完整性,但从5月21日开始,发起的4次检查都没有完成。该进程争抢消耗了最多的磁盘资源导致其它进程性能变差,最终导致整个GBase 8a集群入库缓慢。

aide没有完成的原因尚需要操作系统厂商分析,怀疑磁盘出现了硬件故障。

处理方案

与aide长时间不结束有关的硬件维修或操作系统维修,

如维修时间预计较长,可以考虑将该节点临时下线,维修完成后再恢复上线。