萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql運維工具神器總結

mysql運維工具神器總結

本文我們來整理了一些在mysql運維中的主要工具,這些工具如何利用好,可以讓mysql管理事半功倍,簡直就是mysql的瑞士軍刀。

這些工具可能大家都用過,特別是系統管理員或者做linux服務器維護的同學可能都知道這些小工具,這裡講得會比較多一些,除了系統監控的小工具,還包括一些mysql的工具,甚至深入一些的工具也會講到。


1,大概會講述的內容

    vmstat/iostat/mpstat/ifstat/dstat : stat類,查看系統狀況,

    pstack:此命令可顯示每個進程的棧跟蹤。pstack 命令必須由相應進程的屬主或 root 運行。可以使用 pstack 來確定進程掛起的位置。對內核和源碼有研究的人來說,這個還是相對比較容易理解的。

    測試的時候使用下面來模擬product狀況,壓力測試:

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

    參考:http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html

     tcprstat:tcprstat是免費開源tcp分析工具,通過監控網絡傳輸來統計分析請求的響應時間

    參考:http://blog.csdn.net/wyzxg/article/details/8493658

     tcpdump:抓包工具

    參考: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 1 434092 83364 133292 207336 0 2 9 25 33 47 0 0 99 1 0

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

 2 0 434092 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安裝:yum install -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.xxx and port 3306 |strings



8.2 使用


通過如下命令來監控192.168.52.129服務器mysql當前所執行的一切操作

tcpdump -i eth1 -s 0 -l -w - dst 192.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

 cd percona-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 --function status --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

copyright © 萬盛學電腦網 all rights reserved