日期:2014-05-16  浏览次数:20644 次

找出mysql慢的瓶颈 是什么限制了mysql的性能
1 检查系统的状态

主要察看 CPU问题 内存问题 磁盘IO问题 网络问题

命令 top 、vmstat 、sar、iostat等

1) 用vmstat察看关于内核进程,虚拟内存,磁盘,cpu的的活动状态
[root@ks01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0    208 811596 326016 2485004    0    0     0     1    0    0  0  0 100  0  0


其中:
kthr--内核进程的状态
--r 运行队列中的进程数,在一个稳定的工作量下,应该少于5
--b 等待队列中的进程数(等待I/O),通常情况下是接近0的.
memory--虚拟和真实内存的使用信息
--avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.
--fre 空闲列表的数量.一般不少于120,当fre少于120时,系统开始自动的kill进程去释放
      free list
page--页面活动的信息
--re 页面i/o的列表
--pi 从页面输入的页(一般不大于5)
--po 输出到页面的页
--fr 空闲的页面数(可替换的页面数)
--sr 通过页面置换算法搜索到的页面数
--cy 页面置换算法的时钟频率
faults--在取样间隔中的陷阱及中断数
--in 设备中断
--sy 系统调用中断
--cs 内核进程前后交换中断
cpu--cpu的使用率
--us 用户进程的时间
--sy 系统进程的时间
--id cpu空闲的时间
--wa 等待i/o的时间
一般us+sy 在单用户系统中不大于90,在多用

2 )sar来检查操作系统是否存在IO问题

sar可以显示CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据

[root@ks01 ~]# sar
Linux 2.6.18-194.el5 (ks01.oss.com)     05/03/2011

12:00:01 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM       all      0.00      0.00      0.00      0.03      0.00     99.96
12:20:01 AM       all      0.00      0.00      0.00      0.01      0.00     99.98
...
其中:



-CPU
CPU编号

--%user
在用户模式中运行进程所花的时间的百分比

--%nice
运行正常进程所花的时间的百分比

--%system
在内核模式(系统)中运行进程所花的时间的百分比

--%iowait
没有进程在该CPU上执行时,处理器等待I/O完成的时间的百分比   --这个值过高,表示硬盘存在I/O瓶颈

--%idle
CPU空闲时间百分比 ---如果这个值很高 但是系统响应慢 这时候应该加大内存 如果这个值持续太低 说明系统缺少cpu资源

附:sar 命令行的常用格式:
sar -u 是sar的缺省输出 (CPU 使用情况)


sar [options] [-A] [-o file] t [n]

在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有
的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式
存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项,sar命令
的选项很多,下面只列出常用选项:

   -A:所有报告的总和。
   -u:CPU利用率
   -v:进程、I节点、文件和锁表状态。
   -d:硬盘使用报告。
   -r:没有使用的内存页面和硬盘块。
   -g:串口I/O的情况。
      -b:缓冲区使用情况。
      -a:文件读写情况。
      -c:系统调用情况。
      -R:进程的活动情况。
      -y:终端设备活动情况。
      -w:系统交换活动。

比如
[root@ks01 ~]# sar -u 2 5  每2秒采集一下信息 收集5次
Linux 2.6.18-194.el5 (ks01.oss.com)     05/03/2011

03:33:47 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
03:33:49 PM       all      0.00      0.00      0.00      0.00      0.00  &nbs