服务器CPU如何做好监控

【TiDB 使用环境】生产环境

生产环境的集群,经常收到CPU使用率的告警,超过了阈值70%。

如何做好cpu使用率的监控呢,需要分析告警时cpu的具体情况。

我们一般是看dashboar的top sql来监控

建议使用Oracle的osw来做这个记录嘛

必备工具(告警时快速诊断)

  1. TiDB Dashboard:一站式查看组件 CPU、Top SQL、会话状态;
  2. top/htop:查看物理机 CPU 和进程 CPU;
  3. tidb-ctl:查询 TiDB 内部状态(如tidb-ctl session查看会话 CPU);
  4. tikv-ctl:分析 TiKV 线程池(如tikv-ctl thread list);
  5. pprof:抓取 TiDB/TiKV 的 CPU 火焰图(定位函数级 CPU 消耗):
1 个赞

CPU 消耗涉及 **TiDB 节点(SQL 层)、TiKV 节点(存储层)、PD 节点(元数据管理),及底层操作系统,监控需覆盖 “节点 - 进程 - 语句 - 内核” 全链路

这个要详细好多

可以使用工具Prometheus+Grafana(官方推荐) + 系统级工具(top/pidstat/perf),监控数据需留存足够周期(建议≥7 天)用于追溯

通过慢查询、审计日志、线程栈分析根因,针对性优化(如 SQL 调优、TiKV Compaction 配置、扩容等)

crontab 里面top输出到文本

输入时候要写时间戳,用date函数

普罗米修斯?

用zabbix 或使用top命令

一般都有监控系统吧。再加上tidb自带的基本够用了

遇到的情况是节点CPU告警,想确认下具体是那个组件对CPU使用率较高, 节点上部署了组件较多, pd、cdc、tidb等做的混合部署。

可以用Grafana + Prometheus来监控。

1 个赞

使用Prometheus单独部署监控试试

可以使用工具Prometheus+Grafana(官方推荐) + 系统级工具(top/pidstat/perf),监控数据需留存足够周期(建议≥7 天)用于追溯,一般是这的,也有第三方或自己的监控平台

1 个赞
  1. 是哪个组件(TiDB/TiKV/TiFlash)CPU 高?
  2. 是单节点还是集群普遍高?
  3. 是否伴随 QPS/RT 异常?
  4. 抓取 CPU Profiling 定位热点函数
  5. 检查是否有新上线的复杂 SQL 或批处理任务
  6. 是否 Region 不均衡或 Compaction 压力大?
1 个赞
  • TiDB CPU 高:优化慢 SQL(加索引、拆分大事务)、扩容 TiDB 节点分担计算压力;
  • TiKV CPU 高:限制批量写入速率、减少 Region 调度(调整 PD 调度参数)、扩容 TiKV 节点;
  • PD CPU 高:减少不必要的元数据查询、避免频繁的 DDL 操作(如加索引)。
1 个赞

zabbix监控资源运行情况哦

1 个赞