Mariadb cpu 93% 问题

最近项目遇到cpu平均使用率93%

一、登录数据库服务查看具体情况

可以看到服务器负载很高,,mariadb CPU使用已达到接近380.4% (因为是8核,所以会有超过100%的情况)。如下图:

二、排查是否有耗时较长sql

在服务器上执行mysql -u root -p之后,输入show full processlist; 可以看到正在执行的语句

或

登录数据库,我这里用的是dbeaver,执行show full processlist;

发现确实有条慢sql:select *from pump_event_his where msg_id='';

分析:这张表有500万+数据,且走全表扫描,要3.84s

通过EXPLAIN分析SQL语句

explain

select *from pump_event_his where msg_id='';

解决方法:给msg_id加个索引,再次查询后16ms

验证效果:

a.查询时间大幅度缩短(再次执行查询语句)

b.CPU负载很轻(执行top脚本)

三、如果排查不出问题,再看看下面的情况

1.查看磁盘空间

df -h

2.查看linux服务器查看CPU逻辑个数(查出来是8)

cat /proc/cpuinfo

或

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

或

cat /proc/cpuinfo |grep "processor"|wc -l

2.1查看每个CPU核心数

cat /proc/cpuinfo |grep "cores"

3.查看cpu使用率,按照CPU使用率倒序

top

4.查看该进程下所有线程,按大写P按cpu排序

top -Hp 337499

5.具体到某个线/进程的stack信息

pstack 337499

6.跟踪某个pid的starce信息

strace -o output.txt -T -tt -e trace=all -p 337499

相关推荐
夜之眷属43 分钟前
记一次战斗服务器 CPU 打满 100% 且“无法恢复“的排查
java·linux·运维·服务器·后端·性能优化
余槐i2 小时前
WAL 下写并发仍是 1:SQLite 单写者模型实测与绕开方案
数据库·python·性能优化·sqlite·wal
晚安日记wanna17 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
晚安日记wanna17 小时前
索引建了却不走?7 个失效原因逐层排查
数据库·mysql·性能优化
工作10年+,存储芯片行业17 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
Wang's Blog20 小时前
Java框架 SpringCloud 快速入门: Feign 的性能优化
java·spring cloud·性能优化
打工仔折腾 AI20 小时前
从零写一个CAD 05:以鼠标为中心的滚轮缩放,招法能复用但顺序不能反
开发语言·后端·python·性能优化·计算机外设·swift·ai agent 实战
无名猿1 天前
手写一个线程池:任务队列、工作线程与停止顺序的三个设计点
c++·性能优化·并发编程·现代c++
常州晟凯电子科技1 天前
sigmaStar SSC305DE/SSC308开发笔记之开发环境搭建和SDK编译
人工智能·笔记·嵌入式硬件·物联网·性能优化·视频编解码
打工仔折腾 AI1 天前
从零写一个CAD 05:以鼠标为中心的滚轮缩放矩阵顺序不能反
后端·python·线性代数·性能优化·矩阵·计算机外设·ai agent 实战