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