【 TiDB 使用环境】生产环境
【 TiDB 版本】8.1
某一台kv cpu暴涨,导致服务延迟过大,过一段时间又好了。如果排查这样的情况
top sql看下这个节点什么sql资源消耗多
2 个赞
1.使用Grafana监控面板查看CPU使用率、查询延迟等关键指标的历史数据。重点关注:
TiKV-Details面板中的Thread CPU/gRPC CPU Per Thread指标
TiKV-Details面板中的Thread CPU/raft store CPU和Async apply CPU指标
KV Cmd Duration指标
2.检查TiKV日志文件,查找可能的错误信息或异常。
3.使用Top SQL功能识别在CPU暴涨期间消耗资源最多的SQL语句。
grafana看看tikv cpu的详细监控
dashboard的top sql可以直接选这个TiKV看哪些SQL占用CPU高、
一般就是有资源消耗很大的sql在执行
cpu突然暴涨,过会自己恢复,一般是有大sql耗资源导致的,分析下这段时间的慢sql
看下对应时间段是否有慢sql
突然刺尖,可能是由慢查询导致
top sql 功能
1 个赞
登陆到tidbserver上可以看下slow日志
TOP sql 看对应的那个tikv的sql
1、top sql看看消耗高的sql,进行优化。
2、查看磁盘IO是否过高。
dashboard中的top sql可以看到消耗cpu最高的5个SQL,以及慢日志看下,正常是有消耗CPU大的慢SQL在执行导致的
- 查看监控指标:
- 检查TiDB集群的监控系统(如Prometheus和Grafana),观察CPU使用率、请求延迟、QPS等关键指标的变化趋势。
- 确定CPU使用率暴涨的具体时间点,并查看是否有其他相关的异常指标。
- 检查TiKV日志:
- 查看对应TiKV节点的日志文件,搜索错误日志或警告信息,可能会有导致CPU使用率上升的直接原因。
- 分析慢查询:
- 如果有慢查询日志,分析在CPU使用率高的时间段内是否有大量的慢查询发生。
- 检查资源使用情况:
- 使用
top
、htop
、vmstat
、iostat
等工具检查系统资源使用情况,包括CPU、内存、磁盘I/O等,以确定是否有资源瓶颈。
- 检查线程和进程:
- 使用
ps
、pstack
、gdb
等工具查看TiKV进程中的线程状态,分析是否有线程卡在某个操作上。
- 分析GC(垃圾回收)情况:
- 对于Go语言编写的TiKV,检查GC的频率和耗时,长时间或频繁的GC可能会影响性能。
- 检查配置参数:
- 检查TiKV的配置文件,确认是否有不当的配置可能导致性能问题。
- 检查集群负载:
- 分析集群的负载分布是否均衡,是否有热点问题导致单个节点负载过高。
- 检查网络状况:
- 使用
iftop
、tcpdump
等工具检查网络流量,确认是否有网络瓶颈或异常流量。
- 检查磁盘健康状态:
- 使用
smartctl
等工具检查磁盘的SMART状态,确认磁盘没有硬件问题。
- 分析Raft日志:
- 如果怀疑是Raft协议相关的问题,可以分析Raft日志来确定是否有异常的Raft操作。
- 重启服务:
- 如果确定没有更好的解决方案,并且问题不再频繁发生,可以考虑重启TiKV服务来恢复服务。
1 个赞
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。