常规的系统维护是为了我们的Greenplum数据库具有更高的稳定性和更优化的性能体现
- 使用 ANALYZE 更新系统的统计信息
- 数据库的数据膨胀管理 (需要仔细点延伸下去)
- 监控Greenplum的日志文件
Monitoring (监控)
Greenplum 数据库系统提供了非常使用的监控工具。
gp_toolkit 模式包含多种视图,可以通过SQL命令去查询Greenplum数据库系统的 system catalogs , log files 和 对当前操作环境下系统的状态信息。
对于更多的 gpstate 和 gpcheckperf 涉及在 《Greenplum Database Utility Guide》中。对于 gp_toolkit 的信息, 可以参考 《Greenplum Database Reference Guide》
gpstate
使用 gpstate 实用程序是用来查看Greenplum 整个系统状态的。 通常,我们执行 gpstate 命令会获得如下信息,这些信息包裹当前有多少个段数据库在运行,多少个段数据挂掉了,如果存在数据库挂掉了,这就需要我们注意解决问题了,因为挂点的点很容易引起计算倾斜等问题。
执行 gpstate -Q 可以获取在 master 节点的 system catalog 中有多少个段数据库 DOWN (宕机了)。
如果想获得更详细的信息需要执行的命令为 gpstate -s
gpcheckperf
gpcheckperf 时用用来检测硬件的性能的,所有的节点。可以用来确定硬件故障,它的性能检查涉及到如下几条:
- 磁盘 I/O检测 -- 使用的是 linux 系统命令 dd 读写大的日志文件,来获得磁盘的性能。 他返回结果为 读写 MB/sec
-
内存带宽测试 -- 是使用的是 STREAM benchmark 来测试,其单位为 MB/sec
计算公式为 带宽=内存核心频率×内存总线位数×倍增系数
- 网络性能测试 -- 运行的是 gpnetbench 网络测试的 benchmark (可以选择为 netperf) 来测试集群的网络性能。 这个benchmark 运行在三种模式下,分别是 并行对测试 (-r N), 串口对测试 ( -r n), 全矩阵测试 ( -r M)。这里会获得 最小 最大 平均 和 中值 的转换率 单位是 MB/sec
为了使用 gpcheckperf 获得有用的数据, 数据库系统必须 停机 才可以。如果不停机的话,很多获得数据根本不可靠。
使用 gpcheckperf 要求在测试的主机之间建立可靠的主机设置机制。他将会调用 gpssh 和 gpscp 命令, 所以必须确保这些命令完全在你的系统 PATH 中。 可以使用如下命令检查是否可以使用 ( -h host1 -h host2) 等。或者使用 (-f host_file) 这是一个 text 文件。里面的内容就是各个主机名。
通常情况下, gpcheckperf 运行的测试为 I/O 测试, 内存测试, 串口测试 网络测试。 在磁盘 I/O 测试的时候,我们需要的是 使用 -d 参数来选择具体的系统上的文件路径。 如下例子
$gpcheckperf -f subnet_1_hosts -d /data1 -d /data2 -r ds
其中这上面的 -r 参数是用来选择运行在 : 磁盘I/O (d), 内存带宽 (s) , 网络并行对 (N), 网络串行对 (n), 网络全矩阵测试 (M).
这有网络测试模式可以选择执不执行 . 具体参见 ‘《Greenplum Database Reference Guide》
## 监控操作系统
通常使用如下命令来监控操作系统
- iostat 允许可以监控每个段节点磁盘的使用情况
- top 动态视图的形式显示操作系统的进程情况
- vmstate 展示内存使用情况
通常是使用 gpssh 切换到不同的节点上去查看检测信息
最佳实践
- 参看 《Greenplum Database Administrator Guide》 完成监控任务的部署和实现。
- 在安装Greenplum 数据库之前先执行一次 gpfcheckperf , 保存输出结果,此后不定期的执行测试
- 使用你能找到的所有工具来了解在不同负载的情况下,系统的状态
- 检查任何异常事件以确保原因
- 通过定期运行 explain 命令来获得查询的解释计划, 监控系统上的查询活动, 以确保运行最佳。
- 审视执行计划,以确保是否使用了索引,并按照预期完成分区的选择
附加信息
gpcheckperf 参看手册 《Greenplum Database Utility Guide》
维护系统的搭建 参考手册 《Greenplum Database Administrator Guide》
Sustainable Memory Bandwidth in Current High Performance Computers. John D. McCalpin. Oct 12, 1995.http://www.cs.virginia.edu/~mccalpin/papers/bandwidth/bandwidth.html
www.netperf.org to use netperf, netperf must be installed on each host you test. See gpcheckperf reference for more information.