GBase 8a 集群排查相关的几个命令

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.