GBase 8a 稳定运行中偶发问题时,大部分是原因导致。本文介绍最常见的几个排查命令,确定故障的位置。
如下提到的OS命令,是指在linux的命令行下执行;SQL指在gbase的客户端gccli里执行。
目录导航
集群状态
在OS下执行gcadmin命令,查看集群节点和服务状态。 重点是CLOSE, OFFLINE等

集群层运行之间最长的SQL
重点查看运行时间(time列),如果存在明显超过日常时间的,比如平时1分钟,现在1小时,则可以执行后面的步骤。
select COORDINATOR_NAME, ID, user, host, command, start_time, time, state, substring(info,0,100) info from information_schema.COORDINATORS_TASK_INFORMATION where command='query' and time >=0 order by time desc limit 10;
查看哪个节点执行耗时最长的SQL
同样根据运行时间(time 列)查看是否存在执行时间超长的情况,一般和上一个的执行时间匹配。 比如集群层执行了3600秒,这里执行了2900秒,那基本就能对上。
select NODE_NAME, ID, user, host, command, start_time, time, state, substring(info,0,100) info from information_schema.GNODES_TASK_INFORMATION where command='query' and info is not null and info not like '%information_schema.processlist%' order by time desc limit 10;
执行输出的第一个列node_name对应节点的编号,比如node2。这个编号对应这gcadmin showcluster 的输出的Nodename. 比如

查看该节点的情况
ssh登录该节点,查看如下几方面内容
是否有OS环境报错
执行如下os命令
dmesg -T | grep -i error
根据输出,判断是否有硬件,文件系统等方面的故障。
查看是否OS资源繁忙
执行如下OS命令
iostat -xdc 1
重点观察最后的%util列是否有持续100%的情况。以及靠后的await列是否超过200。

查看是否使用了SWAP
建议用os的top命令, 可以顺便看进程CPU和内存。

如果swap使用量高,内存不足,则会导致性能下降。
其它排查
加载速度
select tb_name,IP,state,ELAPSED_TIME,avg_speed,progress,total_size,loaded_size from information_schema.load_status order by avg_speed;
一般sftp的平均速度要>=8MB/s, ftp一般在40-100MB/s.