CentOS 上 DolphinDB 性能监控方法
一 内置监控与 Web 界面
- 启用与查看:在节点配置文件 dolphindb.cfg 中开启性能监控 perfMonitoring=true(单独启动时默认关闭;若由控制器启动集群,默认开启)。通过 http://<服务器IP>:8848 访问 Web 界面,可查看节点内存(如 memUsed、memAlloc)、查询时延(如 medLast10QueryTime、maxLast10QueryTime、medLast100QueryTime、maxLast100QueryTime、maxRunningQueryTime)等关键指标。
- 运维函数:在节点执行 getPerf() 获取本地节点性能度量;在控制器执行 getClusterPerf() 获取全集群度量;使用 getJobStat() 查看作业与任务队列(如 runningJobs、queuedJobs、jobLoad 等)。
- 日志定位:工作日志默认位于 log 目录,文件名为 nodeAlias_job.log,可在配置中通过 jobLog 调整路径与名称,用于查询级耗时与错误定位。
二 系统层监控
- 进程与资源快照:使用 top/htop 定位 DolphinDB 进程的 CPU、内存 占用;用 free -h 查看内存与 Swap;用 df -h 检查磁盘空间;用 ip 与 netstat 观察网卡与连接状态。
- 持续观测:用 vmstat 1 观察 CPU、内存、I/O 的系统级瓶颈;用 iostat -x 1 深入分析 磁盘 I/O(如 await、svctm、util);用 iftop 排查网络带宽占用。
三 Prometheus Grafana 可视化与告警
- 服务器资源:部署 Node Exporter 采集 CPU、内存、磁盘、网络 等指标,Prometheus 定时抓取,Grafana 可视化展示。示例 PromQL(CPU 使用率):
(1-sum(rate(node_cpu_seconds_total{mode=“idle”}[1m])) by (job) / sum(rate(node_cpu_seconds_total[1m])) by (job)) * 100。
- DolphinDB 指标:在 DolphinDB 中调用内置运维函数(如 getPerf/getClusterPerf)输出指标,由 Prometheus 抓取并在 Grafana 展示,实现节点级与集群级性能面板。
- 集群状态直连:安装 dolphindb-datasource 插件,使 Grafana 通过 WebSocket 直连 DolphinDB,在面板中编写脚本查询节点状态、流表与订阅等,适合实时诊断与临时探查。
四 快速排查路径与常用指标
- 从慢查询入手:在 Web 界面或 getPerf() 输出中查看 medLast10QueryTime、maxLast10QueryTime、medLast100QueryTime、maxLast100QueryTime、maxRunningQueryTime,定位异常查询与峰值时段。
- 资源瓶颈定位:结合 top/htop(进程 CPU/内存)、vmstat 1(系统瓶颈)、iostat -x 1(磁盘)、iftop(网络)与 free -h/df -h(容量),快速判断是 CPU、内存、I/O 还是网络 成为主要瓶颈。
- 作业与队列:用 getJobStat() 检查 runningJobs、queuedJobs、jobLoad,识别并发与排队问题。
- 日志取证:打开 log/nodeAlias_job.log,检索失败/慢查询的详细堆栈与上下文。
五 监控落地与优化建议
- 基线先行:在非高峰时段采集 CPU、内存、磁盘 I/O、网络、查询时延 的基线,为告警阈值与容量规划提供依据。
- 分层监控:同时覆盖 系统层(Node Exporter) 与 数据库层(DolphinDB 内置函数),避免只看其一导致误判。
- 告警分级:对 查询时延突增、作业堆积、磁盘 util 持续高、节点宕机/失联 设置不同级别与升级策略。
- 容量与参数:结合 内存与磁盘 增长趋势,评估 缓存/内存池 与 存储 扩容;必要时优化 I/O 调度器 与系统参数,减少抖动与长尾。
- 变更留痕:任何配置(如 perfMonitoring、日志路径、资源限制)变更需记录并回滚预案,保障稳定性。