mysql常用工具介绍(1/2)

俗话说 “工欲善其事必先利其器” , 今天就介绍一些实用的利器。

一、vmstat
1、很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具。

2、vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

3、执行命令,一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:
[root@TEST ~]# vmstat 2  2
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 608132  93112 196564 1491424    0    0     0    42    1      0      0  0 99    1  0
 0  0 608132  93112 196564 1491424    0    0     0    46 1025  976  0  0 100  0  0

4、命令输出字段含义说明

类别

项目

含义

说明

Procs(进程)

r

等待执行的任务数

展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。

B

等待IO的进程数量

 进程阻塞。

Memory(内存)

swpd

正在使用虚拟的内存大小,单位k

 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

注意:如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。

free

空闲内存大小

  空闲的物理内存的大小,我的机器内存剩余93M。

buff

已用的buff大小,对块设备的读写进行缓冲

 Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用196M

cache

已用的cache大小,文件系统的cache

 cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用1488M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

inact

非活跃内存大小,即被标明可回收的内存,区别于free和active

具体含义见:概念补充(当使用-a选项时显示)

active

活跃的内存大小

具体含义见:概念补充(当使用-a选项时显示)

Swap

si

每秒从交换区写入内存的大小(单位:kb/s)

 磁盘-->虚拟内存

每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so

每秒从内存写到交换区的大小(单位:kb/s)

虚拟内存-->磁盘 

 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO

bi

每秒读取的块数(读磁盘)

现在的Linux版本块的大小为1024bytes。

注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

bo

每秒写入的块数(写磁盘)

 bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

system

in

每秒中断数,包括时钟中断

这两个值越大,会看到由内核消耗的cpu时间会越多。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用

cs

每秒上下文切换数

CPU(以百分比表示)

Us

用户进程执行消耗cpu时间(user time)

us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了。

Sy

系统进程消耗cpu时间(system time)

sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。例如是IO操作频繁。

Id

空闲时间(包括IO等待时间)

 一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wa

等待IO时间

Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。


二、iostat
1、Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进 行监视。

2、 它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。

3、执行命令
[root@ ~]# iostat
avg-cpu: %user %nice %system %iowait %steal %idle
                 8.30     0.02     5.07        0.17       0.00     86.44
Device: tps      Blk_read/s Blk_wrtn/s    Blk_read       Blk_wrtn
sda       22.73   43.70         487.42         674035705   7517941952
sda1     0.00     0.00           0.00              2658               536
sda2    0.11      3.74           3.51              57721595      54202216
各项输出项目的含义如下:
1)avg-cpu段:
%user:在用户级别运行所使用 CPU 的百分比。
%nice:nice操作所使用 CPU 的百分比。
%system:在系统级别(kernel)运行所使用 CPU 的百分比。
%iowait:CPU等待硬件 I/O 时,所占用 CPU 百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU 空闲时间的百分比。
 

备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。


Device段:
tps:设备每秒的 I/O 请求数,多个逻辑请求可能会被合并为“一次I/O请求”。
Blk_read/s:每秒读取的 block 数
Blk_wrtn/s:每秒写入的 block 数
Blk_read:读入的 block 总数
Blk_wrtn:写入的 block 总数
wrqm/s  将写入请求合并后,每秒发送到设备的写入请求数。

备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。




三、mpstat
1、mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。 mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。
根上面两个命令类似,不常用。

四、ifstat
 ifstat命令就像iostat/vmstat描述其它的系统状况一样,是一个统计网络接口活动状态的工具。ifstat工具系统中并不默认安装,需要自己下载源码包,重新编译安装,使用过程相对比较简单。
   下载 
http://gael.roualland.free.fr/ifstat/ (官网)
wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz 
  编译安装
 tar -zxvf ifstat-1.1.tar.gz cd ifstat-1.1 ./configure #默认会安装到/usr/local/bin/目录中
 make ;make install
 
  例子
[root@test]# ifstat -tT
  Time           eth0                eth1               Total
HH:MM:SS   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
15:09:34      0.90      1.13            0.00      0.00           0.90      1.13
15:09:35      0.44      0.87            0.00      0.00           0.44      0.87
15:09:36      0.68      1.22            0.00      0.00           0.68      1.22


五、dstat
     dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c即显示CPU的使用情况。


你可能感兴趣的:(『,数据库知识,』,监控工具,vmstat,iostat,ifstat)