暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片
CPU占用又爆了?MySQL到底在干什么.pdf
152
6页
0次
2023-06-26
5墨值下载
CPU占用又爆了?MySQL到底在干什么
| 作者 王文安,腾讯CSIG数据库专项的数据库工程师,主要负责腾讯云数据库 MySQL 的相关的工作,热爱技
术,欢迎留言进行交流。文章首发于腾讯云+社区的腾讯云数据库专家服务专栏。
在日常工作中,发现 MySQL 的状态不太对劲的时候,一般都会看看监控指标,很多时候会看到熟悉的一幕:
CPU 使用率又爆了。本文将给大家介绍 MySQL 和 CPU 之间的关系,对此有一定的了解之后可以更准确的判断
出问题的原因,也能够提前发现一些引发 CPU 问题的隐患。
怎么看懂CPU使用率
以 Linux 的 top 命令为例,效果如下:
Top 命令
在 %CPU 这一列就展示了 CPU 的使用情况,百分比指代的是总体上占用的时间百分比:
%us:表示用户进程的 CPU 使用时间(没有通过 nice 调度)
%sy:表示系统进程的 CPU 使用时间,主要是内核使用。
%ni:表示用户进程中,通过 CPU 调度(nice)过的使用时间。
%id:空闲的 CPU 时间
%wa:CPU 运行时在等待 IO 的时间
%hi:CPU 处理硬中断花费的时间
%si:CPU 处理软中断花费的时间
%st:被虚拟机偷走的 CPU 时间
通常情况下,我们讨论的 CPU 使用率过高,指的是 %us 这个指标,监控里面的 CPU 使用率通常也是这个值
(也有用其他的方法计算出来的,不过简单起见,不考虑其他的情况 )。其他几个指标过高也代表出 MySQL
的状态异常,简单起见,这里主要还是指 %us 过高的场景。
MySQL和线程
MySQL 是单进程多线程的结构,意味着独占的 MySQL 服务器里面,只能用 top 命令看到一行数据。
TOP 命令效果
这里能看到的是 MySQL 的进程 ID,如果要看到线程的情况,需要用top -H
TOP 命令效果
在这里能看到的是 MySQL 各个线程的 ID,可以看到 MySQL 在启动之后,会创建非常多的内部线程来工作。
这些内部线程包括 MySQL 自己用来刷脏,读写数据等操作的系统线程,也包括处理用户 SQL 的线程,姑且叫
做用户线程吧。用户线程有一个特殊的地方:程序端发送到 MySQL 端的 SQL,只会由一个用户线程来执行
(one-thread-per-connection),所以 MySQL 在处理复杂查询的时候,会出现“一核有难,多核围观”的
尴尬现象。
参考 %us 的定义,对于 Linux 系统来说,MySQL 进程和它启动的所有线程都不算内核进程,因此 MySQL 的
系统线程和用户线程在繁忙的时候,都会体现在 CPU 使用率的 %us 指标上。
什么时候CPU会100%
MySQL 干什么的时候,CPU 会 100%?从前文的分析来看,MySQL 主要是两类线程占用 CPU:系统线程和用
户线程。因此 MySQL 独占的服务器上,只需要留意一下这两类线程的情况,就能 Cover 住绝大部分的问题场
景。
系统线程
在实际的环境中,系统线程遇到问题的情况会比较少,一般来说,多个系统线程很少会同时跑满,只要服务器
的可用核心数大于等于 4 的话,一般也不会遇到 CPU 100%,当然有一些 bug 可能会有影响,比如这个:
MySQL BUG
虽然情况比较少,但是在面对问题的常规排查过程中,系统线程的问题也是需要关注的。
用户线程
提到用户线程繁忙,很多时候肯定会第一时间凭经验想到慢查询。确实 90% 以上的时候都是“慢查询”引起
的,不过作为方法论,还是要根据分析再去得出结论的~
参考 us% 的定义,是指用户线程占用 CPU 的时间多少,这代表着用户线程占用了大量的时间。
一方面是在进行长时间的计算,例如:order by,group by,临时表,join 等。这一类问题可能是查询效率不
高,导致单个 SQL 语句长时间占用 CPU 时间,也有可能是单纯的数据量比较多,导致计算量巨大。另一方面
是单纯的 QPS 压力高,所以 CPU 的时间被用满了,比如 4 核的服务器用来支撑 20k 到 30k 的点查询,每个
SQL 占用的 CPU 时间并不多,但是因为整体的 QPS 很高,所以 CPU 的时间被占满了。
问题的定位
分析完之后,就要开始实战了,这里根据前文的分析给出一些经典的 CPU 100% 场景,并给出简要的定位方法
作为参考。
of 6
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜