MySQL的瑞士军刀

这里主要讲mysql运维中的一些主要工具,这些工具可能你们都用过,特别是系统管理员或者作linux服务器维护的同窗可能都知道这些小工具,这里讲得会比较多一些,除了系统监控的小工具,还包括一些mysql的工具,甚至深刻一些的工具也会讲到,重点是你们听完了后,必定要去本身动手实践一下,这样才有意义,熟能生巧。html

 

光据说过是不行的,还得都要去实践,实践出真知,面试过不少朋友,问他们他们都说知道用过,可是细问下他们都关注哪些重要的点,他们就说得比较模糊,这样是不行的,这样会被别人一种感受,就是你不专业,咱们作技术的,必定要专业,特别是这些工具,要在实践过程当中造成本身独有的见解和理解。mysql

 

1,大概会讲述的内容

vmstat/iostat/mpstat/ifstat/dstat : stat类,查看系统情况,linux

pstack:此命令可显示每一个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可使用 pstack 来肯定进程挂起的位置。对内核和源码有研究的人来讲,这个仍是相对比较容易理解的。ios

 

测试的时候使用下面来模拟product情况,压力测试:nginx

sysbench --test=fileio --file-total-size=10G--file-test-mode=rndrw --max-time=3600 --max-requests=0 rungit

 

参考:http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.htmlgithub

tcprstat:tcprstat是免费开源tcp分析工具,经过监控网络传输来统计分析请求的响应时间web

参考:http://blog.csdn.net/wyzxg/article/details/8493658面试

 

tcpdump:抓包工具sql

参考:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

 

perf:从2.6.31内核开始,linux内核自带了一个性能分析工具perf,可以进行函数级与指令级的热点查找,用来进行软件性能分析。

 

pt-stalk:出现问题的时候收集mysql的用于诊断的数据

orzdba:Perl脚本,用于对Linux主机和MySQL相关指标进行实时监控。

 

 

 

2,vmstat工具

经过yum方式安装sysstat(yum -y install sysstat),就可使用vmstat了,vmstat:搜集内存、进程,paging等信息。

主要是看虚拟内存方面的,要详细的看虚拟内存的话,用vmstat是一个不错的选择。

vmstat命令是最多见的Linux/Unix监控工具,能够展示给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换状况,IO读写状况。这个命令是我查看Linux/Unix最喜好的命令,一个是Linux/Unix都支持,二是相比top,我能够看到整个机器的CPU,内存,IO的使用状况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不同)。

通常vmstat工具的使用是经过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,以下所示,间隔2秒,采样3次:

 [root@data01 ~]# vmstat 2 3

procs-----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r b   swpd   free  buff  cache   si  so    bi    bo  in   cs us sy id wa st

 0  1434092  83364 133292 207336    0   2     9    25  33   47  0  099  1 0 

 1  0434092  82604 133300 208076    0   0   200  2064 1833 3695  1 17 72 9  0 

 2  0434092  80876 133300 209512    0   0     0   302 193   64  2 12 82 4  0 

[root@data01~]#

 

参数介绍:

r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,通常负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载相似每秒的运行队列。若是运行队列过大,表示你的CPU很繁忙,通常会形成CPU使用率很高。

b 表示阻塞的进程,这个很少说,进程阻塞,你们懂的。

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

free   空闲的物理内存的大小,个人机器内存总共8G,剩余3415M。

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

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

si  每秒从磁盘读入虚拟内存的大小,若是这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。个人机器内存充裕,一切正常。

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

bi  块设备每秒接收的块数量,这里的块设备是指系统上全部的磁盘和其余块设备,默认块大小是1024byte,我本机上没什么IO操做,因此一直是0,可是我曾在处理拷贝大量数据(2-3T)的机器上看过能够达到140000/s,磁盘写入速度差很少140M每秒

bo 块设备每秒发送的块数量,例如咱们读取文件,bo就要大于0。bi和bo通常都要接近0,否则就是IO过于频繁,须要调整。

in 每秒CPU的中断次数,包括时间中断

cs 每秒上下文切换次数,例如咱们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,咱们通常作性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程能够由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,咱们的代码就会进入内核空间,致使上下文切换,这个是很耗资源,也要尽可能避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,致使CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

us 用户CPU时间,我曾经在一个作加密解密很频繁的服务器上,能够看到us接近100,r运行队列达到80(机器在作压力测试,性能表现不佳)。

sy 系统CPU时间,若是过高,表示系统调用时间长,例如是IO操做频繁。

id  空闲 CPU时间,通常来讲,id + us + sy = 100,通常我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wt 等待IO CPU时间。

PS:看得比较多的参数依次是,最基本的(swpd、free、buff、cache)、内存读写(si、so)、cpu方面(in、cs);cs须要常常关注,它是上下文切换的,尤为是咱们单机线程数很是多的时候,就会产生大量的上下文切换,而cpu去不断的上下文切换自己就很是消耗资源,好比你的执行任务被频繁切换来切换去没有实际被执行。

 

3,iostat工具

和vmstat同样,经过yum方式安装sysstat(yum -y install sysstat),就可使用它了。咱们主要是看io情况的。

3.1 iostat参数说明

-c 仅显示CPU统计信息.与-d选项互斥.
 -d 仅显示磁盘统计信息.与-c选项互斥.
 -k 以K为单位显示每秒的磁盘请求数,默认单位块.
 -p device | ALL
  与-x选项互斥,用于显示块设备及系统分区的统计信息.也能够在-p后指定一个设备名,如:
  # iostat -p hda
  或显示全部设备
  # iostat -p ALL
 -t   在输出数据时,打印搜集数据的时间.
 -V   打印版本号和帮助信息.
 -x   输出扩展信息.

 

3.2 iostat输出项目说明

Blk_read:  读入块的当总数.
 Blk_wrtn:  写入块的总数
kB_read/s:  每秒从驱动器读入的数据量,单位为K.
kB_wrtn/s:  每秒向驱动器写入的数据量,单位为K.
 kB_read:  读入的数据总量,单位为K.
 kB_wrtn:  写入的数据总量,单位为K.
 rrqm/s:  将读入请求合并后,每秒发送到设备的读入请求数.
wrqm/s:  将写入请求合并后,每秒发送到设备的写入请求数.
 r/s:  每秒发送到设备的读入请求数.
w/s:  每秒发送到设备的写入请求数.
 rsec/s:  每秒从设备读入的扇区数.
wsec/s:  每秒向设备写入的扇区数.
 rkB/s:  每秒从设备读入的数据量,单位为K.
wkB/s:  每秒向设备写入的数据量,单位为K.
avgrq-sz:  发送到设备的请求的平均大小,单位是扇区.
avgqu-sz:  发送到设备的请求的平均队列长度.
await:  I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.
svctm:  发送到设备的I/O请求的平均执行时间.单位是毫秒.
%util:  在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.当这个值接近100%时,表示设备带宽已经占满.

 

3.3 iostat实例

# iostat: 显示一条统计记录,包括全部的CPU和设备.
# iostat -d 2: 每隔2秒,显示一次设备统计信息.
# iostat -d 2 6: 每隔2秒,显示一次设备统计信息.总共输出6次.
# iostat -x sda1 sda2 2 6: 每隔2秒显示一次hda,hdb两个设备的扩展统计信息,共输出6次.
# iostat -p sda1 2 6: 每隔2秒显示一次sda及上面全部分区的统计信息,共输出6次.

 

PS:主要查看avgqu-sz、await、svctm

 

4,mpstat工具

另外一个用于获取 CPU 相关统计信息的有用的命令是 mpstat。

经过yum方式安装sysstat(yum -y install sysstat),就可使用mpstat了

4.1 样例

 [root@data01 ~]# mpstat  -P ALL 2 2
Linux 2.6.32-220.el6.x86_64 (data01)     2015年04月03日    _x86_64_  (2 CPU)
 
23时11分43秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
23时11分45秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
23时11分45秒    0    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.50
23时11分45秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
 
23时11分45秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
23时11分47秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
23时11分47秒    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
23时11分47秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
 
平均时间:  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
平均时间:  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
平均时间:    0    0.00    0.00    0.25    0.00    0.00    0.00    0.00    0.00   99.75
平均时间:    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
[root@data01 ~]#

 

它显示了系统中 CPU 的各类统计信息。–P ALL 选项指示该命令显示全部 CPU 的统计信息, 

而不仅是特定 CPU 的统计信息。参数 2 2 指示该命令每隔 2 秒运行一次,共运行 2 次。 

以上输出首先显示了全部 CPU 的合计指标,而后显示了每一个 CPU 各自的指标。最后,在结尾处显示全部 CPU 的平均值。 

 

4.2 各参数的意义

 %user     表示处理用户进程所使用 CPU 的百分比。用户进程是用于应用程序(如 Oracle 数据库)的非内核进程。     
%nice     表示使用 nice 命令对进程进行降级时 CPU 的百分比。在以前的部分中已经对 nice 命令进行了介绍。简单来讲,nice 命令更改进程的优先级。    
%system   表示内核进程使用的 CPU 百分比    
%iowait   表示等待进行 I/O 所使用的 CPU 时间百分比    
%irq      表示用于处理系统中断的 CPU 百分比    
%soft     表示用于软件中断的 CPU 百分比    
%idle     显示 CPU 的空闲时间    
%intr/s   显示每秒 CPU 接收的中断总数

 

当您拥有前面所述的 vmstat 时,您可能想知道 mpstat 命令的做用。差异很大:mpstat 能够显示每一个处理器的统计,而 vmstat 显示全部处理器的统计。所以,编写糟糕的应用程序(不使用多线程体系结构)可能会运行在一个多处理器机器上,而不使用全部处理器。从而致使一个 CPU 过载,而其余 CPU 却很空闲。经过 mpstat 能够轻松诊断这些类型的问题。

 

PS:针对 Oracle 用户的用法 

   与 vmstat 类似,mpstat 命令还产生与 CPU 有关的统计信息,所以全部与CPU 问题有关的讨论也都适用于 mpstat。 

当您看到较低的 %idle 数字时,您知道出现了 CPU 不足的问题。当您看到较高的 %iowait 数字时, 

您知道在当前负载下 I/O 子系统出现了某些问题。该信息对于解决 Oracle 数据库性能问题很是方便。

 

5,ifstat工具

查看网络流量的小工具

5.1下载安装

下载 ifstat安装包:,  wegt http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz

yum install gcc* -y #预先安装好gcc组件

tar -xvf ifstat-1.1.tar.gz

cd ifstat-1.1

./configure

make

make install

 

5.2 测试查看检测结果

[root@data01 ifstat-1.1]# ifstat -t -i eth1-T

 Time           eth1               Total      

HH:MM:SS  KB/s in  KB/s out   KB/s in KB/s out

23:37:38      0.12     0.30      0.12      0.30

23:37:39      0.06     0.15      0.06      0.15

23:37:40      0.06     0.15      0.06      0.15

23:37:41      0.06     0.15      0.06      0.15

 

6,dstat工具

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

 

能够去Contos和Redhat的下载连接:http://pkgs.repoforge.org/dstat/下载rpm安装包安装;也可使用yum安装:yuminstall -y dstat

 

运行dstat,以下所示

 [root@data01 ifstat-1.1]# dstat 3
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|  24k 9603B|   0     0 | 254B 4410B|  38    48 
  0   0 100   0   0   0|   0  5461B|  80B  525B|   0     0 |  50    53 
  0   0 100   0   0   0|   0     0 |  70B  359B|   0     0 |  33    44 
  0   0 100   0   0   0|   0    21k| 146B  341B|   0     0 |  61    63 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  31    44 ^C
[root@data01 ifstat-1.1]#

 

下面对显示出来的部分信息做一些说明:

1. cpu:hiq,siq分别为硬中断和软中断次数。

2. system:int,csw分别为系统的中断次数(interrupt)和上下文切换(context switch)

其余的都很好理解。

经过dstat --help能够看到经常使用参数选项

 

PS:这个软件和vmstat很像, 不过和vmstat相比好像少了io部份的显示, dstat只能显示磁盘的吞吐量而不是显示负载状况, dstat和几乎全部监控软件同样, 只能对整个系统进行监控而不能对某一个进程或某一个程序进行深刻分析. 我常使用的参数是dstat -cdlmnpsy, 作个别名连接alias dstat='dstat -cdlmnpsy'

 

参考:http://blog.csdn.net/yuandianlws/article/details/7004364

 

 

7,tcprstat工具

检查mysql偶发事件以及性能异常的工具,抓住当时的现场细节情况。

7.1 Bzr方式安装下载

bzr branch lp:tcprstat

tar czvf tcprstat.tar.gz ./tcprstat

cd tcprstat/

chmod +x bootstrap

安装 automake 和 autoconf

yum list|grep automake

yum list|grep autoconf

yum -y install automake

安装成功后,再从新执行bootstrap

./bootstrap

而后编译

./configure

make

 

7.2 集成方式下载

# 下载地址,wget下载失败,能够在windows下网页下载,而后secure上传到mysql服务器上面

 http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64
# cp tcprstat-static.v0.3.1.x86_64 tcprstat
# chmod a+x tcprstat

 

7.3 实例

./tcprstat -p 3306 -t 1 -n 5

-p监控的端口号,-t 间隔时间,-n运行次数

 [root@wgq_idc_dbm_3_61 ~]# chmod a+x tcprstat 
[root@wgq_idc_dbm_3_61 ~]# ./tcprstat -p 3306 -t 1 -n 5
timestamp count     max       min       avg       med       stddev    95_max    95_avg    95_std    99_max    99_avg          99_std
1428142214          41        548646    28        79647     145       173376    418497    44645     125122    521857          67922     158663
1428142215          25        422953    22        54943     120       118359    201027    25393     65142     366568          39609     93352
1428142216          5         409520    193       155644    223       190817    368069    92175     159287    368069          92175     159287
1428142217          24        881981    45        52977     130       188839    1968      377       556       381189          16934     77661
1428142218          15        356049    49        24126     133       88711     1989      417       549       1989          417       549
[root@wgq_idc_dbm_3_61 ~]#

 

7.4,实际使用案例

若是用户以为咱们的mysql数据库响应时间很慢,查询也忽然变慢,咱们怎么办,方法确定有许多种,这里能够选择用tcprstat,咱们能够将./tcprstat -l 192.168.52.129 -p 3306 -t 1 -n 0 发给用户,让他在他的应用服务器上作一次啊tcprstat检测看下其中的响应时间是怎么样的,咱们就能够知道具体缘由是什么了。

 

参考:http://my.oschina.net/moooofly/blog/157063

 

8,tcpdump

抓包工具,能够截取到客户端对mysql数据库服务器的全部请求操做。

8.1简介

系统自带的工具包,若是没有的话,就使用yum安装(yum install –y tcpdump)用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump能够将网络中传送的数据包的“头”彻底截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

 

经过tcpdump查看参数信息:

[root@data02 ~]# tcpdump --help

tcpdump version 4.1-PRE-CVS_2010_08_20

libpcap version 1.0.0

Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [-B size ] [ -c count ]

                   [-C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]

                   [-i interface ] [ -M secret ] [ -r file ]

                   [-s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]

                   [-y datalinktype ] [ -z command ] [ -Z user ]

                   [expression ]

[root@data02 ~]#

tcpdump -s 0 -l -w - dst xxx.xxx.xxx.xxxand port 3306 |strings 

 

8.2 使用

经过以下命令来监控192.168.52.129服务器mysql当前所执行的一切操做

tcpdump -i eth1 -s 0 -l -w - dst192.168.52.129 and port 3306 |strings,以下所示:

 [root@data01 ~]# tcpdump -i eth1 -s 0 -l -w - dst 192.168.52.129 and port 3306 |strings
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
V68@
select * from user_db.UC_USER
469@
5.6.12-log
9?o3MiL}
UmH^~"(APNw-
mysql_native_password
#28000Access denied for user 'repl'@'192.168.52.129' (using password: YES)
J6:@
SELECT DATABASE()
46;@
=6<@
test
46=@
 UfN
D6>@
show tables
46?@
S6@@
select * from table_myisam"
 UPs
46A@

 

 从中能够看出tcpdump能够暴露出mysql客户端链接mysql数据库的全部包的信息。Tcpdump能够作审计,把下游客户端对mysql数据库所作的全部操做都记录统计汇总出来有助于咱们分析问题,tcpdump产生的信息比较多,你们能够本身作扩展过滤出本身须要的信息记录。

 

9,perf工具

直接yum安装便可:yum install perf –y

Perf是一个包含22种子工具的工具集,如下是最经常使用的5种:

perf list:显示性能事件

perf top:实时显示性能统计信息

         大多数是在内核层面

perf stat:分析总体性能

perf record:分析一段时间内的性能

perf report:根据record记录,统计报告

 

perf 参考:http://blog.chinaunix.net/uid-1829236-id-3212867.html

perf 参考:http://blog.csdn.net/zhangskd/article/details/37902159

 

10,pt-stalk

工具下载:

wget http://www.percona.com/downloads/percona-toolkit/2.2.13/deb/percona-toolkit_2.2.13.tar.gz

 

安装:

  tar -xvf percona-toolkit_2.2.13.tar.gz

   cdpercona-toolkit-2.2.13

  perl Makefile.PL

  make

  make test

  make install

 

使用

pt-stalk--collect-tcpdump --function status --variable Threads_connected --threshold 2500--daemonize --user=root --host=127.0.0.1 --port=3306

主要是用来抓现场的,好比:MySQL Server 性能波动出现的频率很低、例如、几天一次,MySQL Server 性能波动出现的机率很快、例如、几秒闪过,我想输出一些信息,触发这些阈值的时候,就打印一下,那咱们有了抓住这个现场以后,咱们就能够知道究竟是作了什么操做致使这些性能波动的尖刀出现了。

 

--daemonize:在后台运行。

pt-stalk --collect-tcpdump --functionstatus --variable handler_connected --threshold 3 --user=root --host=127.0.0.1--port=3306

 [root@data01 percona-toolkit-2.2.13]# pt-stalk --collect-tcpdump --function status --variable handler_connected --threshold 3 --user=root --host=127.0.0.1 --port=3306
2015_04_04_19_01_21 Starting /usr/local/bin/pt-stalk --function=status --variable=handler_connected --threshold=3 --match= --cycles=5 --interval=1 --iterations= --run-time=30 --sleep=300 --dest=/var/lib/pt-stalk --prefix= --notify-by-email= --log=/var/log/pt-stalk.log --pid=/var/run/pt-stalk.pid --plugin=
2015_04_04_19_01_21 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_22 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_23 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_24 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_25 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_26 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_27 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_28 Detected value is empty; something failed?  Trigger exit status: 0
2015_04_04_19_01_29 Detected value is empty; something failed?  Trigger exit status: 0

当你发现mysql服务器性能有波动,遇到性能问题遇到偶发事件了,可是你又没法查出这段时间mysql作了什么,你可使用pt-stalk来抓取这些现场的全部行为,来帮助你分析查询。

 

11,orzdba

安装请参考:http://wenku.baidu.com/view/79ca1eb065ce0508763213bf

先须要安装svn客户端以及tcprstat,yum安装便可:yum install -y svn;yum install -y tcprstat;

而后下载orzdba包:

svn co http://code.taobao.org/svn/orzdba/trunk

cd trunk/

chmod a+x orzdba

 

大概包括Sys、mysql、innodb、lazy 4个方面的,是一个集大成者,是淘宝的一个工程师写的,它把系统的,咱们须要记住lazy就足够用了,用lazy就基本能够知足咱们大部分的应用须要了。Lazy命令以下:

./orzdba -lazy -rt -S/usr/local/mysql/mysql.sock

 

 -------- -----load-avg---- ---cpu-usage--- ---swap---                     -QPS- -TPS-         -Hit%- --------tcprstat(us)-------- 
  time  |  1m    5m   15m |usr sys idl iow|   si   so|  ins   upd   del    sel   iud|     lor    hit|  count    avg 95-avg 99-avg|
21:00:17| 0.32  0.28  0.37|  0   0  99   0|    0    0|    0     0     0      0     0|       0 100.00|      0      0      0      0|
21:00:18| 0.32  0.28  0.37|  2  24  43  30|    0  128|  903     0     0      1   903|    4774 100.00|      0      0      0      0|
21:00:19| 0.32  0.28  0.37|  2  21  49  27|    0    0|  742     0     0      1   742|    3922 100.00|      0      0      0      0|
21:00:20| 0.32  0.28  0.37|  3  28  53  17|    0    0| 1108     0     0      1  1108|    5861 100.00|      0      0      0      0|
21:00:21| 0.32  0.28  0.37|  3  29  52  17|    0    0| 1037     0     0      1  1037|    5492 100.00|      0      0      0      0|
21:00:22| 0.29  0.28  0.37|  3  29  52  16|    0    0| 1003     0     0      1  1003|    5276 100.00|      0      0      0      0|
21:00:23| 0.29  0.28  0.37|  3  28  54  15|    8    0|  744     0     0      2   744|    5097 100.00|      0      0      0      0|
21:00:24| 0.29  0.28  0.37|  3  28  51  19|    0   18|  777     0     0      1   777|    4222 100.00|      0      0      0      0|
21:00:25| 0.29  0.28  0.37|  3  30  51  16|    0    0|  997     0     0      1   997|    5291 100.00|      0      0      0      0|
21:00:27| 0.27  0.27  0.36|  3  29  52  17|    0    0| 1160     0     0      1  1160|    6121 100.00|      0      0      0      0|
^C
Exit Now...
 
[root@data01 trunk]#

 

这个时候,若是你还想看更详细的信息,能够不用lazy,能够用innodb的参数来,能够就看到buffer pool里面的data、free、dirty等,很是全的信息,你们能够做为很是重要的参考,命令以下:

./orzdba -innodb -rt -S/usr/local/mysql/mysql.sock

 -------- ---innodb bp pages status-- -----innodb data status---- --innodb log--   his --log(byte)--  read ---query--- --------tcprstat(us)-------- 
  time  |   data   free  dirty flush| reads writes  read written|fsyncs written| list uflush  uckpt  view inside  que|  count    avg 95-avg 99-avg|
21:01:13|      0      0      0     0|     0      0      0      0|     0       0|    0      0      0     0     0     0|      0      0      0      0|
21:01:14|   4245  12137    815     0|     0     46      0    55k|     0     55k|  593      0   11.6m    0     0     0|      0      0      0      0|
21:01:15|   4248  12134    818     0|     0    104      0   131k|     0    131k|  593      0   11.7m    0     0     0|      0      0      0      0|
21:01:16|   4251  12131    821     0|     0    129      0   153k|     0    153k|  593     68   11.8m    0     1     0|      0      0      0      0|
21:01:17|   4256  12126    826     0|     0    145      0   182k|     0    182k|  593      0   11.9m    0     0     0|      0      0      0      0|
21:01:19|   4258  12124    828     0|     0     85      0   110k|     0    110k|  593      0   11.9m    0     0     0|      0      0      0      0|
21:01:20|   4261  12121    831     0|     0     71      0    91k|     0     89k|  593    576   12.0m    0     0     0|      0      0      0      0|
21:01:21|   4265  12117    841     0|     0    161      0   203k|     0    203k|  597     17   12.1m    0     0     0|      0      0      0      0|
^C
Exit Now...

 

 

其它监控项:

网络:./orzdba -n eth1 -rt -S /usr/local/mysql/mysql.sock

Mysql:./orzdba -mysql -rt-S /usr/local/mysql/mysql.sock

 

因此说orzdba基本监控了全部的mysql状态以及系统状态了,你们能够考虑在线上使用orzdba来监控线上mysql库

 

参考:http://www.freebuf.com/tools/5262.html

参考:http://wenku.baidu.com/view/79ca1eb065ce0508763213bf

12,orztop

实时查看当前的processlist和full processlist;

能够查看mysql数据库实时运行的sql情况的工具,之前苦于经过show processlist/show full processlist抓取sql的同志们如今只要盯一盯屏幕就能够了,很是的方便,

 

下载:wget http://hidba.org/wp-content/uploads/2013/06/orztop.rar

安装:先进入cpan窗口,安装dbi、dbd,而后退出解压缩orztop.rar包便可使用

 

命令以下:

orztop -h=192.168.52.129 -P=3006 -u=orztop-p=orztop -t=1

相关文章
相关标签/搜索