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
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的下載連結:下載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伺服器上面
# 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
安裝:
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
安裝請參考:
先需要安裝svn客戶端以及tcprstat,yum安裝即可:yum install -y svn;yum install -y tcprstat;
然後下載orzdba包:
svn co
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庫
參考:
參考:
12,orztop
實時檢視當前的processlist和full processlist;
可以檢視mysql資料庫實時執行的sql狀況的工具,以前苦於透過show processlist/show full processlist抓取sql的同志們現在只要盯一盯螢幕就可以了,非常的方便,
下載:wget
安裝:先進入cpan視窗,安裝dbi、dbd,然後退出解壓縮orztop.rar包即可使用
命令如下:
orztop -h=192.168.52.129 -P=3006 -u=orztop
-p=orztop -t=1
----------------------------------------------------------------------------------------------------------------
原部落格地址: http://blog.itpub.net/26230597/viewspace-1501700/
原作者:黃杉 (mchdba)
----------------------------------------------------------------------------------------------------------------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30215233/viewspace-1586606/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql percona-toolkit 瑞士軍刀MySql
- 瑞士軍刀redis - 慢查詢Redis
- 技術主管的瑞士軍刀
- 瑞士軍刀redis - 釋出訂閱Redis
- 瑞士軍刀redis-pipelineRedis
- Unix除錯的瑞士軍刀:lsof除錯
- 命令列工具中的瑞士軍刀 - tmux命令列UX
- Linux命令列裡的“瑞士軍刀”Linux命令列
- ComponentOne – 控制元件界的“瑞士軍刀”控制元件
- CSVKIT——處理csv檔案的瑞士軍刀
- 軟體開發中的“瑞士軍刀綜合徵”
- 軟體開發中的瑞士軍刀綜合症
- 瑞士軍刀 gout v0.0.5版本釋出Go
- 安全界瑞士軍刀--Netcat常用命令
- f-strings: Python字串處理的瑞士軍刀Python字串
- 開源的網路瑞士軍刀「GitHub 熱點速覽」Github
- 開發者的瑞士軍刀「GitHub 熱點速覽 v.22.04」Github
- Linux 網路工具中的瑞士軍刀 - socat & netcatLinux
- Linux Netcat命令:網路工具中的瑞士軍刀Linux
- Linux Netcat 命令——網路工具中的瑞士軍刀Linux
- AE指令碼Swiss Knife Mac 瑞士軍刀MG動畫製作外掛指令碼Mac動畫
- DevToys Mac程式設計師神器,號稱開發者的瑞士軍 刀devMacC程式程式設計師
- Reflect API:每個 JavaScript 開發人員都需要的瑞士軍刀APIJavaScript
- 開發者的瑞士軍刀!一款適用於開發者的工具集合!
- 程式設計師的瑞士軍刀DevToys推出vscode外掛程式設計師devVSCode
- 網路版“瑞士軍刀”!一個多功能的網路工具箱!
- Linux網路命令必知必會之瑞士軍刀 nc(netcat)Linux
- 全棧工程師?給把瑞士軍刀你去砍鬼子好不好!?全棧工程師
- 固態硬碟界的"瑞士軍刀":有這兩款工具箱軟體才安心硬碟
- UNIX系統程式設計的瑞士軍刀 --《UNIX環境高階程式設計》書評程式設計
- Lightning 框架: 一個未被發現的 "Swiss Army Knife(瑞士軍刀級別) "Linux惡意軟體框架Linux
- 掃描器裡的瑞士軍刀,盛邦安全PAD掃描器助力基礎設施安全檢查
- 【MySql】趕集網mysql開發36條軍規MySql
- 設計界的瑞 士 軍 刀:Autodesk AutoCAD2020軟體下載
- 墨刀
- [趕集網] 【MySql】趕集網mysql開發36條軍規MySql
- MySQL資料庫開發的36條軍規MySql資料庫
- 瑞士聯邦委員會:區塊鏈將滲透整個瑞士經濟體區塊鏈