这里主要讲mysql运维中的一些主要工具,这些工具可能你们都用过,特别是系统管理员或者作linux服务器维护的同窗可能都知道这些小工具,这里讲得会比较多一些,除了系统监控的小工具,还包括一些mysql的工具,甚至深刻一些的工具也会讲到,重点是你们听完了后,必定要去本身动手实践一下,这样才有意义,熟能生巧。html
光据说过是不行的,还得都要去实践,实践出真知,面试过不少朋友,问他们他们都说知道用过,可是细问下他们都关注哪些重要的点,他们就说得比较模糊,这样是不行的,这样会被别人一种感受,就是你不专业,咱们作技术的,必定要专业,特别是这些工具,要在实践过程当中造成本身独有的见解和理解。mysql
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相关指标进行实时监控。
经过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去不断的上下文切换自己就很是消耗资源,好比你的执行任务被频繁切换来切换去没有实际被执行。
和vmstat同样,经过yum方式安装sysstat(yum -y install sysstat),就可使用它了。咱们主要是看io情况的。
-c 仅显示CPU统计信息.与-d选项互斥.
-d 仅显示磁盘统计信息.与-c选项互斥.
-k 以K为单位显示每秒的磁盘请求数,默认单位块.
-p device | ALL
与-x选项互斥,用于显示块设备及系统分区的统计信息.也能够在-p后指定一个设备名,如:
# iostat -p hda
或显示全部设备
# iostat -p ALL
-t 在输出数据时,打印搜集数据的时间.
-V 打印版本号和帮助信息.
-x 输出扩展信息.
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%时,表示设备带宽已经占满.
# 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
另外一个用于获取 CPU 相关统计信息的有用的命令是 mpstat。
经过yum方式安装sysstat(yum -y install sysstat),就可使用mpstat了
[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 的平均值。
%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 数据库性能问题很是方便。
查看网络流量的小工具
下载 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
[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
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
检查mysql偶发事件以及性能异常的工具,抓住当时的现场细节情况。
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
# 下载地址,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
./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 ~]#
若是用户以为咱们的mysql数据库响应时间很慢,查询也忽然变慢,咱们怎么办,方法确定有许多种,这里能够选择用tcprstat,咱们能够将./tcprstat -l 192.168.52.129 -p 3306 -t 1 -n 0 发给用户,让他在他的应用服务器上作一次啊tcprstat检测看下其中的响应时间是怎么样的,咱们就能够知道具体缘由是什么了。
参考:http://my.oschina.net/moooofly/blog/157063
抓包工具,能够截取到客户端对mysql数据库服务器的全部请求操做。
系统自带的工具包,若是没有的话,就使用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
经过以下命令来监控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产生的信息比较多,你们能够本身作扩展过滤出本身须要的信息记录。
直接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
工具下载:
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来抓取这些现场的全部行为,来帮助你分析查询。
安装请参考: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
实时查看当前的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