操作系统的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长时间不结束有关的硬件维修或操作系统维修,
如维修时间预计较长,可以考虑将该节点临时下线,维修完成后再恢复上线。