1、介绍
对于SequoiaDB,有几种方式收集系统信息诊断数据库的性能问题,最常见的方式是使用快照。快照用于获取数据库某个时间点的系统信息,但并不能反映多个时间点系统信息变化的数据。 SequoiaDB自带sdbtop工具,该工具是 SequoiaDB 数据库的性能监控工具,在命令行模式下提供了一个图形用户界面,可用来实时监控和查看集群中各个节点的监视信息,本文主要介绍了sdbtop的使用及如何利用sdbtop在日常运维中监控SequoiaDB和故障排除。
2、sdbtop使用
2.1、sdbtop语法
在SequoiaDB安装目录bin中执行:./sdbtop –h显示参数信息。
执行下面的命令进入到sdbtop命令行模式下的图形化用户界面主窗口:
1
2
|
./sdbtop
–i localhost –s 11810
|
这条命令中,sdbtop 使用配置文件为安装目录中conf/sample/sdbtop.xml,监控主机为当前主机,端口服务名为11810,用户名和密码为空。
2.2、sdbtop组成部分
进入到sdbtop主窗口后,主要有三部分组成,头部区域、中间区域、底部区域。
头部区域主要包括版本信息、刷新频率(refresh)、数据计算模式(displayMode)、快照模式(snapshotMode)、打印模式(snapshotMode)、快照获取模式(snapshotModeInput)、监控主机名(hostname)、监控端口服务名(servicename)、排序方式(sortingWay)、排序字段(sortingWay)、过滤行号(filtering Number)、登录用户名(usrName)。
中间区域主要显示监控信息。具体快捷键如下:
主窗口选择快捷键说明:
进入主窗口后快捷操作键说明:
例如:进入主窗口后按‘d’键,列出数据库节点的数据库监视信息。
按‘Tab’键,可以看到屏幕左上方的‘displayMode’的值会发生切换:绝对值(ABSOLUTE),平均值(AVERAGE),差值(DELTA)三个模式。
按‘r’键,可以看到屏幕下方的‘please input the refresh interval(eg: 5) :’,输入数字改变屏幕刷新频率。
2.3、sdbtop监控内容
sdbtop提供了对数据库节点会话、集合空间、系统资源使用情况、数据库的监控单元。通过这些信息,用户可以了解当前数据库的连接信息以及连接的活动情况,数据库集合空间的分布以及使用情况,数据库集群的资源使用情况,以及数据库集群的读写、更新、删除、复制、索引读写等性能情况。
<FieldStruct>
<deltaName>NetIn</deltaName>
<absoluteName>NetIn</absoluteName>
<averageName>NetIn</averageName>
<sourceField>svcNetIn</sourceField>
<contentLength>30</contentLength>
<alignment>RIGHT</alignment>
<canSwitch>1</canSwitch>
<deltaColour>
<foreGroundColor>6</foreGroundColor>
<backGroundColor>0</backGroundColor>
</deltaColour>
<absoluteColour>
<foreGroundColor>3</foreGroundColor>
<backGroundColor>0</backGroundColor>
</absoluteColour>
<averageColour>
<foreGroundColor>5</foreGroundColor>
<backGroundColor>0</backGroundColor>
</averageColour>
</FieldStruct>
1、数据库会话监控
进入主窗口,按‘s’键,列出数据库节点的所有会话信息
按‘Tab’键,可以看到屏幕左上方的‘displayMode’的值会发生切换
按‘r’键,在屏幕最下方输入‘2’,回车,设置刷新间隔时间,可以看到屏幕左上方的‘refresh’的值变为 2
按‘A’键,并输入‘TID’,列表结果按照 TID 进行顺序排序
按‘N’键,并输入1,列表中将原来行号为1的记录过滤不显示
按‘W’键,返回没有按行号进行过滤前的列表信息
按‘C’键,并输入‘TID:39895”进行筛选,则只显示 TID 值为39895的记录
按‘Q’键,返回没有按照筛选条件前的列表信息
按‘<’或者‘>’键,可以查看隐藏在左边或者右边的列
数据库节点的所有会话监控信息可以从数据库SDB_SNAP_SESSIONS快照中获取,在上述窗口中,各监控字段说明如下:
字段名 | 类型 | 描述 |
SessionID | 字符串 | 会话 ID(主机名:端口号:ID) |
TID | 整型 | 该会话所对应的系统线程 ID |
Type | 字符串 | |
Name | 字符串 | EDU 名,一般系统 EDU 名为空 |
QueueSize | 整型 | 等待处理请求的队列长度 |
ProcessEventCount | 长整型 | 已经处理请求的数量 |
Contexts | 长整型数组 | 上下文 ID 数组,为该会话所包含的所有上下文列表 |
DataRead | 长整型 | 数据记录读 |
IndexRead | 长整型 | 索引读 |
DataWrite | 长整型 | 数据记录写 |
IndexWrite | 长整型 | 索引写 |
DataUpdate | 长整型 | 总更新记录数量 |
DataDelete | 长整型 | 总删除记录数量 |
DataInsert | 长整型 | 总插入记录数量 |
DataSelect | 长整型 | 总选取记录数量 |
DataRead | 长整型 | 总数据读 |
DataReadTime | 长整型 | 总数据读时间(毫秒) |
DataWriteTime | 长整型 | 总数据写时间(毫秒) |
ConnectTimestamp | 时间戳 | 连接发起时间 |
LastOpType | 字符串 | 最后一次操作的类型,如:insert,update |
LastOpBegin | 字符串 | 最后一次操作的起始时间 |
LastOpEnd | 字符串 | 最后一次操作的结束时间 |
LastOpInfo | 字符串 | 最后一次操作的详细信息 |
UserCPU | 浮点数 | 用户 CPU(秒) |
SysCPU | 浮点数 | 系统 CPU(秒) |
2、数据库集合空间监控
进入主窗口,按‘c’键,列出数据库节点上的所有集合空间
快捷键功能可参考数据库会话监控。
数据库节点上的所有集合空间可以从数据库SDB_SNAP_COLLECTIONSPACES快照中获取,在上述窗口中,各监控字段说明如下:
字段名 | 类型 | 描述 |
Name | 字符串 | 集合空间名 |
PageSize | 整型 | 集合空间数据页大小 |
Collection | 字符串数组 | 集合空间中所包含的所有集合 |
Group.GroupName | 字符串 | 该集合空间所在的分区组名列表 |
3、 数据库系统资源使用情况监控
进入主窗口,按‘t’键,列出数据库节点上的所有集合空间
快捷键功能可参考数据库会话监控。
数据库系统资源使用情况可以从数据库SDB_SNAP_SYSTEM快照中获取,在上述窗口中,各监控字段说明如下:
字段名 | 类型 | 描述 |
UserCPU | 浮点数 | 操作系统启动后所消耗的总用户 CPU(秒) |
SysCPU | 浮点数 | 操作系统启动后所消耗的总系统 CPU(秒) |
IdleCPU | 浮点数 | 操作系统启动后所消耗的总空闲 CPU(秒) |
OtherCPU | 浮点数 | 操作系统启动后所消耗的总其它 CPU(秒) |
RAM | 长整型 | 当前操作系统的总内存空间(字节) |
FreeRAM | 长整型 | 当前操作系统的空闲内存空间(字节) |
MemorySwap | 长整型 | 当前操作系统的总交换空间(字节) |
FreeSwap | 长整型 | 当前操作系统的空闲交换空间(字节) |
VirtualMemory | 长整型 | 当前操作系统的总虚拟空间(字节) |
FreeVirtual | 长整型 | 当前操作系统的空闲虚拟空间(字节) |
DiskSpace | 长整型 | 数据库路径总空间(字节) |
FreeDiskSpace | 长整型 | 数据库路径空闲空间(字节) |
4、 数据库集群监控
5、 进入主窗口,按‘d’键,列出数据库集群监控信息
快捷键功能可参考数据库会话监控。
数据库集群监控信息可以从数据库SDB_SNAP_DATABASE快照中获取,在上述窗口中,各监控字段说明如下:
字段名 | 类型 | 描述 |
NumConnects | 整型 | 数据库连接请求数量 |
DataRead | 长整型 | 总数据读请求 |
IndexRead | 长整型 | 总索引读请求 |
DataWrite | 长整型 | 总数据写请求 |
IndexWrite | 长整型 | 总索引写请求 |
Update | 长整型 | 总更新记录数量 |
Delete | 长整型 | 总删除记录数量 |
Insert | 长整型 | 总插入记录数量 |
ReplUpdate | 长整型 | 复制更新记录数量 |
ReplDelete | 长整型 | 复制删除记录数量 |
ReplInsert | 长整型 | 复制插入记录数量 |
Select | 长整型 | 总选择记录数量 |
Read | 长整型 | 总读取记录数量 |
ReadTime | 长整型 | 总读取时间(毫秒) |
WriteTime | 长整型 | 总写入时间(毫秒) |
2.4 sdbtop配置文件定制
sdbtop监控支持SDB_SNAP_CONTEXTS,SDB_SNAP_CONTEXTS_CURRENT、SDB_SNAP_SESSIONS、SDB_SNAP_SESSIONS_CURRENT、SDB_SNAP_COLLECTIONS、SDB_SNAP_COLLECTIONSPACES、SDB_SNAP_DATABASE、SDB_SNAP_SYSTEM、SDB_SNAP_CATALOG,可通过配置文件对监控信息进行配置。如上述监控中在显示数据库集群监控信息时可通过配置实现本地网络端口接受、发送流量,数据同步接受、发送流量,异常节点的监控。具体步骤如下:
编辑SequoiaDB安装目录下conf中samples/sdbtop.xml文件,找到labelName为Database的监控节点,添加NetIn、NetOut、ReplNetIn、ReplNetIn、ErrNodes字段监控,配置方式如下:
配置成功后截图:
2.5 sdbtop使用案例
1、在使用sdbimprt工具导入数据时,查看sdb集群的平均写入速度;
进入sdbtop主窗口,按‘d’键,列出数据库集群监控信息,按tab键调整输出模式,为AVERAGE时观察集群的写入,读取平均速度。Sdbtop默认刷新频率为3s,可以按r键输入数字调整刷新频率。
从图中可以看出,数据读为0,数据写为每秒272729条记录,索引读和写为0,更新、删除为0。ReplInsert为复制插入记录数量图中为0。
2、查看集群内存,硬盘系统资源使用情况;
进入sdbtop主窗口,按‘t’键,列出数据库集群资源使用情况,按tab键调整输出模式,为AVERAGE时观察集群的写入,读取平均速度。Sdbtop默认刷新频率为3s,可以按r键输入数字调整刷新频率。
集群中有两台机器,每台机器一个数据节点。从图中可以看出集群总内存RAM为:2G,集群总空闲内存FreeRAM:150M,集群硬盘总存储大小DiskSpace为:36G,总存储剩余大小FreeDiskSpace为:10G。当集群规模较大时,sdbtop工具可以直观的展现整个集群的内存,CPU,硬盘使用情况,尤其是内存和硬盘,无需登录到每台服务器上去查看。
3、查询系统会话情况
进入sdbtop主窗口,按‘s’键,列出数据库集群会话情况,按tab键调整输出模式,为AVERAGE时观察集群的写入,读取平均速度。Sdbtop默认刷新频率为3s,可以按r键输入数字调整刷新频率。
按“shift+c”键根据条件进行过滤。如查看复制会话读写信息:输入Type:”ReplAgent”,按左右键查看复制读写信息。
输入Type:”ShardAgent”,查看外部连接读写信息以及操作的具体集合空间、集合。按左右键可以查看会话的性能情况。
Type为EDU可以分为用户 EDU 与系统 EDU,分别代表执行用户任务的线程,与执行系统任务的线程。
具体类型如下:
用户EDU
系统 EDU
3、总结
sdbtop利用数据库的快照信息实现了对数据库集合空间、会话、系统使用自有、数据库整体信息的监控,并通过配置文件对具体的监控选项进行配置方便数据库使用人员定制自己所需的监控信息。