sdbtop 工具

sdbtop 是 SequoiaDB 巨杉数据库的性能监控工具。用户可以使用 sdbtop 监控节点的操作系统资源,还可以监控节点或者集群的读写性能、会话信息以及集合空间信息。本文将介绍该工具的相关信息和使用方法。

Note:

  • sdbtop 默认每3秒刷新一次监控数据
  • 用户应从操作系统命令行运行 sdbtop,而不是使用 shell 命令行运行

语法规则

  1. sdbtop [--hostname | -i arg] [--servicename | -s arg] [--usrname | -u arg] [--password | -p arg] [--confpath | -c arg]
  2. sdbtop --ssl arg [--usrname | -u arg] [--password | -p arg] [--confpath | -c arg]
  3. sdbtop --help | -h
  4. sdbtop --version | -v

参数说明

参数缩写描述
—help-h返回基本帮助和用法文本
—version-v返回工具版本信息
—confpath-c指定 sdbtop 的配置文件路径,sdbtop 界面形态以及输出字段都依赖该文件,默认路径为 conf/samples/sdbtop.xml
—hostname-i指定需要监控的主机名,默认值为 localhost
—servicename-s指定监控节点的服务名或端口,默认值为 11810,如果节点为协调节点,则监控的是整个集群的信息,如果为其它节点,则只是监控其本节点信息
—usrname-u指定数据库用户名,默认值为””
—password-p指定数据库用户密码,如果不使用该参数指定密码,工具会通过交互式界面提示用户输入密码
—cipher是否使用密文模式输入密码,默认为 false,不使用密文模式输入密码,关于密文模式的介绍可参考密码管理
—token指定加密令牌
—cipherfile指定密文文件路径,默认为 ~/sequoiadb/passwd
—ssl是否使用 SSL 连接,默认为 false,不使用 SSL 连接

Note:

  • 用户通过 -i 和 -s 的参数组合可以监控本机节点、远程节点以及整个集群的信息。
  • 当数据库集群开启了用户密码鉴权,必须指定 -u 和 -p 参数

启动说明

  • 对于 Ubuntu 等系统,需要安装 Ncurses 库,否则启动 sdbtop 将会提示“Error opening terminal: TERM”

    • 方式一: 联网安装

      1. $ sudo apt-get install libncurses5-dev
    • 方式二: 源码安装

      1. 解压源码包:

        1. $ tar -xvzf ncurses-5.5.tar.gz
      2. 进入 ncurses-5.5 目录

        1. $ ./configure
        2. $ sudo make && make install
  • 若 Ncurses 库安装完成后仍提示“Error opening terminal: TERM”,则尝试以下解决方案:

    • 创建软连接

      1. $ sudo mkdir -p /usr/share/terminfo/x
      2. $ cd /usr/share/terminfo/x
      3. $ sudo ln -s /lib/terminfo/x/xterm xterm

使用

sdbtop 启动后进入主窗口,主窗口中展示两种信息:界面信息导航和功能操作导航。在主窗口下通过按键 sctd 可以进入不同的监控窗口。

  1. $ sdbtop -i sdbserver1 -s svcname1 -u sdbuser1 -p sdbpassword1
  2. refresh= 3 secs version 5.0 snapshotMode: GLOBAL
  3. displayMode: ABSOLUTE Main Window snapshotModeInput: NULL
  4. hostname: sdbserver1 filtering Number: 0
  5. servicename: svcname1 sortingWay: NULL sortingField: NULL
  6. usrName: sdbuser1 Refresh: F5, Quit: q, Help: h
  7. #### #### #### ##### ### #### For help type h or ...
  8. # # # # # # # # # # sdbtop -h: usage
  9. ### # # #### # # # ####
  10. # # # # # # # # #
  11. #### #### #### # ### #
  12. SDB Interactive Snapshot Monitor V2.0
  13. Use these keys to ENTER:
  14. window options(choose to enter window):
  15. m : return to main window s : show sessions of SequoiaDB
  16. c : show collection spaces t : show system resources
  17. d : show database state h : help
  18. options(use under window above):
  19. G : show options only g : filter by specified group
  20. n : filter by specified node r : set interval of refresh(second)
  21. A : sort column by ascending order D : sort column by descending order
  22. C : specify filter condition Q : cancel filter condition
  23. N : skip specified lines ahead W : show all lines
  24. Tab : switch display Model <- : move left
  25. -> : move right Enter: to last view, used under help window
  26. ESC : cancel current operation F5 : refresh immediately
  27. q : quit
  28. Licensed Materials - Property of SequoiaDB
  29. Copyright SequoiaDB Corp. 2013-2015 All Rights Reserved.

界面信息导航

界面信息导航主要展示工具版本号、窗口刷新时间、显示模式、监控节点的机器名、监控节点的服务名或端口、数据库用户名、快照模式、排序方式以及排序字段等信息。

导航字段描述
refresh窗口刷新时间,默认每3秒刷新一次,在监控窗口下通过按键 r 进行更改
displayMode显示模式,包含绝对值、差值和平均值三种模式,在监控窗口下通过按键 Tab 进行切换
hostname监控节点的机器名
servicename监控节点的服务名或端口
usrName数据库用户名
snapshotMode快照模式,包含全局、数据节点组和节点三种模式,在监控窗口下根据按键 G, g 和 n 的输入改变
snapshotModeInput快照模式输入,在监控窗口下通过按键 G, g 和 n 输入
filtering Number跳过 N 行显示,在监控窗口下通过按键 N 输入跳过的行数
sortingWay排序方式,包含升序和降序两种方式,在监控窗口下通过按键 A 和 D 输入
sortingField排序字段,在监控窗口下通过按键 A 和 D 输入
Refresh立即刷新,按键 F5
Quit退出程序,按键 q
Help查看使用帮助,按键 h

功能操作导航

功能操作导航分为窗口切换按键说明和监控功能按键说明两部分。通过窗口切换按键,可以进入不同的监控窗口。监控功能按键在监控窗口下使用。

窗口切换按键说明如下:

窗口切换按键描述
m返回主窗口
s列出数据库节点上的所有会话
c列出数据库节点上的所有集合空间
t列出数据库节点上的系统资源使用情况
d列出数据库节点的数据库读写性能
h查看使用帮助

监控功能按键说明如下:

监控功能按键描述
G全局快照
g按某个数据节点组展示快照
n按某个数据节点展示快照
r设置窗口刷新的时间间隔,单位:秒
A将监控信息按照某列进行升序排序
D将监控信息按照某列进行逆序排序
C将监控信息按照某个条件进行筛选
Q返回没有使用条件进行筛选前的监控信息
N跳过多少行显示
W返回没有使用行号进行过滤前的监控信息
Tab切换数据计算的模式,支持绝对值、差值和平均值三个模式
<向左移动,以查看隐藏的左边列的监控信息
>向右移动,以查看隐藏的右边列的监控信息
Enter返回上一次监控界面,在已进入 help 帮助输出中有效
Esc取消当前的操作,比如按了升序按键 A,可以通过Esc键取消继续输入
F5立即刷新
q退出程序

示例

  • 进入主窗口后,按 s 键,列出数据库节点的所有会话信息

    1. refresh= 3 secs version 5.0 snapshotMode: GLOBAL
    2. displayMode: ABSOLUTE Main Window snapshotModeInput: NULL
    3. hostname: sdbserver1 filtering Number: 0
    4. servicename: svcname1 sortingWay: NULL sortingField: NULL
    5. usrName: sdbuser1 Refresh: F5, Quit: q, Help: h
    6. SessionID TID Type Name QueueSize ProcessEventCount
    7. ------------------------------ -------- ------------------ ------------------------------ ---------- ------------------
    8. 1 1 2869 Task DATASYNC-JOB-D 0 1
    9. 2 2 2870 Task OptPlanClear 0 1
    10. 3 3 2871 LogWriter "" 0 1
    11. 4 4 2872 DpsRollback "" 0 2
    12. 5 5 2873 Task PAGEMAPPING-JOB-D 0 2551
    13. 6 6 2874 SyncClockWorker "" 0 1
    14. 7 7 2875 DBMonitor "" 0 1
    15. 8 8 2876 TCPListener "" 0 7
    16. 9 9 2877 RestListener "" 0 1
    17. 10 11 2879 Task DictionaryCreator 0 1
    18. 11 12 2880 PipeListener "" 0 1
    19. 12 13 2886 Agent 127.0.0.1:59870 0 749
    20. 13 15 2888 Unknow "" 0 0
    21. 14 21 2894 Unknow "" 0 0
    22. 15 23 2896 Unknow "" 0 0
    23. 16 24 2897 Unknow "" 0 0
    24. 17 25 4182 Unknow "" 0 0
    25. 18 30 7412 Unknow "" 0 0
    26. 19 31 7413 Unknow "" 0 0
    27. 20 32 7415 Unknow "" 0 0
    28. 21 33 7416 Unknow "" 0 0
  • Tab 键,屏幕左上方的 displayMode 的值会发生切换

  • r 键,在屏幕最下方输入 2,回车,设置刷新间隔时间,屏幕左上方的 refresh 的值变为 2

    1. refresh= 2 secs version 5.0 snapshotMode: GLOBAL
    2. displayMode: AVERAGE Sessions snapshotModeInput: NULL
    3. hostname: sdbserver1 filtering Number: 0
    4. servicename: svcname1 sortingWay: NULL sortingField: NULL
    5. usrName: sdbuser1 Refresh: F5, Quit: q, Help: h
    6. SessionID TID Type Name QueueSize ProcessEventCount
    7. ------------------------------ -------- ------------------ ------------------------------ ---------- ------------------
    8. 1 1 2869 Task DATASYNC-JOB-D 0 1
    9. 2 2 2870 Task OptPlanClear 0 1
    10. 3 3 2871 LogWriter "" 0 1
    11. 4 4 2872 DpsRollback "" 0 2
    12. 5 5 2873 Task PAGEMAPPING-JOB-D 0 2572
    13. 6 6 2874 SyncClockWorker "" 0 1
    14. 7 7 2875 DBMonitor "" 0 1
    15. 8 8 2876 TCPListener "" 0 8
    16. 9 9 2877 RestListener "" 0 1
    17. 10 11 2879 Task DictionaryCreator 0 1
    18. 11 12 2880 PipeListener "" 0 1
    19. 12 13 2886 Agent 127.0.0.1:33634 0 24
    20. 13 15 2888 Unknow "" 0 0
    21. 14 21 2894 Unknow "" 0 0
    22. 15 23 2896 Unknow "" 0 0
    23. 16 24 2897 Unknow "" 0 0
    24. 17 30 7412 Unknow "" 0 0
    25. 18 31 7413 Unknow "" 0 0
    26. 19 33 7416 Unknow "" 0 0
    27. 20 34 9895 Unknow "" 0 0
    28. 21 35 9896 Unknow "" 0 0
  • A 键,并输入 TID,列表结果按照 TID 进行升序排序,可以看到屏幕右上方的 sortingWay 的值变为 11 表示升序,-1 表示降序),sortingField 的值变为 TID

    1. refresh= 2 secs version 5.0 snapshotMode: GLOBAL
    2. displayMode: AVERAGE Sessions snapshotModeInput: NULL
    3. hostname: sdbserver1 filtering Number: 0
    4. servicename: svcname1 sortingWay: 1 sortingField: TID
    5. usrName: sdbuser1 Refresh: F5, Quit: q, Help: h
    6. SessionID TID Type Name QueueSize ProcessEventCount
    7. ------------------------------ -------- ------------------ ------------------------------ ---------- ------------------
    8. 1 1 2869 Task DATASYNC-JOB-D 0 1
    9. 2 2 2870 Task OptPlanClear 0 1
    10. 3 3 2871 LogWriter "" 0 1
    11. 4 4 2872 DpsRollback "" 0 2
    12. 5 5 2873 Task PAGEMAPPING-JOB-D 0 2594
    13. 6 6 2874 SyncClockWorker "" 0 1
    14. 7 7 2875 DBMonitor "" 0 1
    15. 8 8 2876 TCPListener "" 0 8
    16. 9 9 2877 RestListener "" 0 1
    17. 10 11 2879 Task DictionaryCreator 0 1
    18. 11 12 2880 PipeListener "" 0 1
    19. 12 13 2886 Agent 127.0.0.1:33634 0 180
    20. 13 15 2888 Unknow "" 0 0
    21. 14 21 2894 Unknow "" 0 0
    22. 15 23 2896 Unknow "" 0 0
    23. 16 24 2897 Unknow "" 0 0
    24. 17 30 7412 Unknow "" 0 0
    25. 18 31 7413 Unknow "" 0 0
    26. 19 33 7416 Unknow "" 0 0
    27. 20 34 9895 Unknow "" 0 0
    28. 21 35 9896 Unknow "" 0 0
  • N 键,并输入 1,列表中将原来行号为 1 的记录过滤不显示

  • W 键,返回没有按行号进行过滤前的列表信息

  • C 键,并输入 TID:2869 进行筛选,则只显示 TID 值为 2869 的记录

    1. refresh= 2 secs version 5.0 snapshotMode: GLOBAL
    2. displayMode: AVERAGE Sessions snapshotModeInput: NULL
    3. hostname: sdbserver1 filtering Number: 0
    4. servicename: svcname1 sortingWay: 1 sortingField: TID
    5. usrName: sdbuser1 Refresh: F5, Quit: q, Help: h
    6. SessionID TID Type Name QueueSize ProcessEventCount
    7. ------------------------------ -------- ------------------ ------------------------------ ---------- ------------------
    8. 1 1 2869 Task DATASYNC-JOB-D 0 1
  • Q 键,返回没有按照筛选条件前的列表信息

  • < 或者 > 键,可以查看隐藏在左边或者右边的列