装mysql没有反应慢_MySQL反应慢的排查思路(老叶)

本文介绍了当MySQL反应慢时的排查思路,包括系统层面的负载检查,如top、free、vmstat/sar命令的使用,以及MySQL自身的状态分析,如show processlist、show engine innodb status,最后提供了优化SQL的方法,如explain、profiling和pt-query-digest工具。通过这些工具和方法,可以帮助找出MySQL性能问题的原因并进行优化。
摘要由CSDN通过智能技术生成

一、导致MySQL慢可能的因素有

1、计算资源不足

2、系统层面未进行基本的优化,或不同进程间资源抢占

3、MySQL配置不科学(附神器:http://imysql.com/my-cnf-wizard.html)

4、垃圾SQL满天飞

二、查看系统层面负载手段

1、top查看整体负载情况,快速确认哪个进程系负载高

c75e35e8b2a93985072d9ecf7f419732.png

VIRT:virtualmemory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存1、进程当前使用的内存大小,但不包括swap out

2、包含其他进程的共享3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存1、除了自身进程的共享内存,也包括其他进程的共享内存2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小3、计算某个进程所占的物理内存大小公式:RES – SHR4、swap out后,它将会降下来

2、free查看内存情况,是否有内存泄露和用了swap等风险

3、vmstat/sar查看当前系统瓶颈到底在哪,如CPU、IO、网络等

# sudo vmstat 1procs-----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo incs us sy id wa st2 0 0 95740 136752 729052 0 0 0 4 8 4 0 0 100 0 0

0 0 0 95740 136752 729088 0 0 0 0 353 1038 1 0 99 0 0

0 0 0 95740 136752 729088 0 0 0 0 332 1016 1 1 98 0 0

0 0 0 95740 136752 729088 0 0 0 0 329 993 0 0 100 0 0

0 0 0 95616 136752 729088 0 0 0 0 345 1036 1 0 99 0 0

3 0 0 95616 136752 729088 0 0 0 68 340 1012 0 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值