CentOS 上 DolphinDB 性能监控方法
一 内置监控与 Web 界面
- 启用与查看:在节点配置文件 dolphindb.cfg 中开启性能监控 perfMonitoring=true(单独启动节点默认关闭;若由控制器启动集群,默认开启)。通过 http://<节点IP>:<端口> 访问 Web 界面,可查看关键指标:memUsed、memAlloc、cpuUsage、connectionNum、diskFreeSpaceRatio、diskReadRate/WriteRate、networkSendRate/RecvRate,以及查询时延如 medLast10QueryTime、maxLast10QueryTime、medLast100QueryTime、maxLast100QueryTime、maxRunningQueryTime。这些指标覆盖节点资源、磁盘与网络吞吐、连接数与查询性能,适合快速巡检与定位异常。
- 运维函数:在 GUI/脚本中调用内置函数获取更细粒度数据:
- getPerf():返回本地节点性能度量(如 runningJobs、queuedJobs、jobLoad、avgLoad、cpuUsage、memoryUsed/Alloc、networkSend/RecvRate、diskRead/WriteRate、diskFreeSpaceRatio、lastMinuteNetworkSend/Recv、lastMinuteRead/WriteVolume、connectionNum 等)。
- getClusterPerf():在控制器上返回全集群节点性能数据,便于统一观测。
- getJobStat():查看正在执行与队列中作业/任务数量,辅助判断负载与排队情况。
提示:这些函数返回的数值单位以字节/字节每秒为主,便于做速率与容量对比分析。
二 Prometheus Grafana 体系
- 架构与组件:
- Node Exporter 采集主机层指标(CPU、内存、磁盘、网络)。
- DolphinDB 内置指标 结合 Prometheus 抓取,再由 Grafana 可视化。
- 使用 dolphindb-datasource 插件可在 Grafana 中通过 WebSocket 直连 DolphinDB,执行脚本展示节点状态、流表与订阅等实时信息。
- 快速落地步骤:
- 部署 Node Exporter(默认端口 9100),确认 http://:9100/metrics 可访问。
- 配置 prometheus.yml 的 scrape_configs,添加各节点的 Node Exporter 与 DolphinDB 目标,例如:
- job_name: “node”
static_configs: [{ targets: [“10.0.0.11:9100”,“10.0.0.12:9100”] }]
- job_name: “dolphindb_ctl1”
static_configs: [{ targets: [“10.0.0.21:8848”] }]
- job_name: “dolphindb_data1”
static_configs: [{ targets: [“10.0.0.31:8848”] }]
- 启动 Prometheus,在 http://:9090 用 PromQL 验证抓取。
- Grafana 添加 Prometheus 数据源,导入或构建面板:主机层用 Node Exporter 指标,数据库层用 DolphinDB 指标,或用 dolphindb-datasource 直连展示集群与流处理状态。
该方案适合多节点/高可用集群的持续观测与告警联动。
三 系统层监控命令与要点
- 常用命令与用途:
- top/htop:实时查看 CPU、内存 占用,定位高消耗线程/进程。
- vmstat 1:观察 CPU、内存、I/O、系统上下文切换 等整体负载。
- iostat -x 1:查看 磁盘 I/O 利用率、队列、读写速率,定位存储瓶颈。
- df -h:检查 磁盘空间 与 可用空间占比。
- free -h:查看 内存与 Swap 使用情况。
- ip a / ss -s / netstat:查看 网卡、连接数、端口与协议统计,辅助网络瓶颈排查。
这些命令与 DolphinDB 的 CPU/内存/磁盘/网络 指标相互印证,有助于区分是数据库层还是系统层瓶颈。
四 告警阈值与巡检清单
- 建议阈值与动作(需结合业务基线调优):
- CPU 使用率 > 80% 持续 5 分钟:检查慢查询、并发与负载均衡;必要时扩容或限流。
- 内存使用率 > 80% 或 page in/out 增长:关注 memoryAlloc/memoryUsed 与查询/作业堆积,优化内存配置与作业调度。
- 磁盘使用率 > 80% 或 diskFreeSpaceRatio 低:清理日志/数据、扩容磁盘或调整数据保留策略。
- 磁盘 I/O 利用率 > 80%:优化查询(减少全表扫描/大排序)、考虑更快存储或 I/O 调度优化。
- 网络吞吐接近上限或丢包:核查 networkSend/RecvRate、连接数、带宽上限与网络质量。
- 查询时延异常:关注 medLast10/100QueryTime、maxRunningQueryTime,结合 getJobStat() 与日志定位慢查询/排队。
- 连接数突增:结合业务峰值与连接池配置,排查异常客户端或连接泄漏。
巡检建议:每日巡检 Web 指标 + 关键 PromQL,每周复盘 慢查询/作业 与 资源趋势,并建立基线与容量规划。