1、常见瓶颈
(1)SQL效率低
(2)选项配置不当
(3)访问题飙升
(4)硬件性能低
(5)其他进程抢资源
2、怎样确认是MySQL存在瓶颈
top/free/vmstat/sar/mpstat确认
—确认mysqld进程的CPU消耗占比
—确认mysqld进程的CPU消耗是%user,还是%sys高
—确认是否物理内存不够用了
—确认是否有swap产生
—确认CPU上是否有大量中断(或中断不均)
2.1、查看CPU—top

2.2、查看内存—free
free -m

free相关命令

2.3、查看IO、CPU、内存、交换分区、中断—vmstat
vmstat -S m 1

从上面可以看出,CPU和I/O的压力都不算小
输出结果说明:
对vmstat 命令的解释:
1)procs
r这一列显示了多少进程正在等待CPU
b列显示了多少进程正在不可中断地休眠(通常意味着它们在等待I/O,例如磁盘、网络、用户输入、等等)。
2)memory
swpd 虚拟内存已使用的大小(显示多少块被换出到了磁盘(页面交换)),如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free 空闲的物理内存的大小
buff 多少块正在被用作缓冲
cache 多少正在被用作操作系统的缓存
3)swap显示页面交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0
本文总结了MySQL数据库慢查询的常见瓶颈,包括SQL效率低、配置不当、访问量飙升、硬件性能不足等问题。通过top、free、vmstat、sar等工具确认CPU、内存、IO的使用情况,分析了如何识别和解决MySQL存在的资源消耗问题,如等待IO、CPU上下文切换过多、内存不足等。同时,提供了查看MySQL线程状态、锁等待和慢日志的方法,以及预防性能问题的建议,如优化SQL、提升硬件性能、选择合适的文件系统和调度算法。
最低0.47元/天 解锁文章
477

被折叠的 条评论
为什么被折叠?



