1. 程式人生 > >MySQL監控、效能分析——工具篇

MySQL監控、效能分析——工具篇

MySQL越來越被更多企業接受,隨著企業發展,MySQL儲存資料日益膨脹,MySQL的效能分析、監控預警、容量擴充套件議題越來越多。“工欲善其事,必先利其器”,那麼我們如何在進行MySQL效能分析、監控預警、容量擴充套件問題上得到更好的解決方案,就要利用各種工具來對MySQL各種指標進行分析。本文是讀書筆記,下面提及的工具,讀者可能都用過,或打算準備是使用。
MySQL伺服器的釋出包沒有包含那些能完成許多常見任務的工具,例如監控伺服器的工具、比較伺服器間資料的工具。我們把這些工具分成以下幾類:介面、監控、分析和輔助工具。

  • 帶介面的工具
    1、MySQL視覺化工具
    這些工具都可以免費使用: 

    a、MySQL查詢瀏覽器(MySQL Query Browser):這個不用說了…
    b、MySQL管理員(MySQL Administrator):功能集中在伺服器管理上,所以它最適合DBA使用,而不是開發人員和分析人員。它可以幫助DBA把建立備份 、建立使用者並分配許可權、顯示伺服器日誌和狀態資訊等過程進行自動化處理。它還包括了一些基本的監控功能,例如圖形化的狀態變數顯示,但是它沒有下文裡會提到的互動式監控工具那麼靈活。
    c、MySQL遷移工具箱(MySQL Migration Tookit):可以幫你把資料從別的資料庫系統遷移到MySQL裡。
    d、MySQL工作臺(MySQL Workbench):MySQL的建模工具。

    2、SQLyog
    SQLyog是最常用的MySQL視覺化工具,只能用於win下。

    3、phpMyAdmin
    phpMyAdmin是一款很流行的管理工具,它基於Web介面來管理MySQL伺服器。有很多支持者,但反對者也不少。

  • 監控工具
    MySQL監控是一個很大複雜的任務,不同的應用有著不同的需求。“監控”是大家濫用的術語之一,承載了幾重意思。我們講到的監控工具被分為非互動的和互動的兩類。非互動監控常常就是一個自動化系統,它接收系統的測量值,如果有超出安全範圍的,就通過發出警告提醒管理員。互動監控工具可以讓你實時地觀測伺服器。 

    你可能對監控工具在其他方面的差別也很感興趣,例如被動監控和主動監控,後者會發送報警資訊並作出初步反應(就像Nagios一樣);或者你可能正在尋找這樣一工具:它可以建立一個資訊倉庫,而不僅僅是顯示當前的統計資訊。有許多監控系統不是專為監控MySQL而設計的,它們就是一個通用系統,裡面設計了一個週期性的任務,定時去檢查各類資源的狀態,例如像伺服器、路由器、以及各種軟體(包括MySQL)。它們常常會提供一個外掛架構,同時有一個預訂的MySQL外掛可供使用。這樣的一些系統能夠記錄監控物件的狀態,並通過web介面用圖形化的形式表示出來。當監控物件出現問題,或者狀態值超過安全範圍時,它們還能傳送報警資訊,或者執行一個初始化的動作。

    a、非互動性工具

    1、Nagios
    監控界流行一句話:只要用順了Nagios,你就永遠不會再想到其它監控系統。
    對於Nagios本blog會持續推出相關文章,現在只是引用Nagios官方的介紹:
    Nagios是一款用於系統和網路監控的應用程式。它可以在你設定的條件下對主機和服務進行監控,在狀態變差和變好的時候給出告警資訊。
    Nagios最初被設計為在Linux系統之上執行,然而它同樣可以在類Unix的系統之上執行。
    Nagios更進一步的特徵包括:監控網路服務(SMTP、POP3、HTTP、NNTP、PING等);
    監控主機資源(處理器負荷、磁碟利用率等);
    簡單地外掛設計使得使用者可以方便地擴充套件自己服務的檢測方法;
    並行服務檢查機制;
    具備定義網路分層結構的能力,用”parent”主機定義來表達網路主機間的關係,這種關係可被用來發現和明晰主機宕機或不可達狀態;
    當服務或主機問題產生與解決時將告警傳送給聯絡人(通過EMail、簡訊、使用者定義方式);
    具備定義事件控制代碼功能,它可以在主機或服務的事件發生時獲取更多問題定位;
    自動的日誌回滾;可以支援並實現對主機的冗餘監控;可選的WEB介面用於檢視當前的網路狀態、通知和故障歷史、日誌檔案等;

    下面是可代替Nagios的工具:

    i、Zenoss
    Zenoss是用Python編寫的,擁有基於瀏覽器的使用者介面,並使用了Ajax使操作更加快捷而富有效率。它將監控、報警、趨勢顯示、圖表顯示和記錄歷史資料等功能合成在一個統一的工具裡,它還能在網上自動發現資源,在預設情況下,Zenoss使用SNMP從遠端機器上收集資料,但它也可以使用SSH,並且支援Nagios外掛。
    ii、Hyperic HQ
    Hyperic HQ是一款基於Java的監控系統,它的目標跟其他同類別的軟體不太一樣,它要成為企業級的監控系統。跟Zenoss一樣,它也能自動發現資源,支援Nagios外掛,但是它的邏輯組織和架構很不一樣,顯得有點龐大。至於它是不是合適你的需求,那要看你的引數設定和監控的方式了。
    iii、OpenNMS
    OpenNMS是由Java編寫的,擁有一個活躍的開發者社群。它具備了常規的功能,例如監控和報警,也加入了圖表和趨勢顯示的功能。它的目標是高效能、伸縮性、自動化以及良好的相容性。跟Hyperic一樣,它也企圖成為一款企業級的監控軟體,可以用於大型的關鍵系統上。
    iv、Groundwork Open Source
    Groundwork Open Source實際上是基於Nagios的,它把Nagios和其他幾個工具整合為一個系統,並安上一個統一的門戶介面。描述它的最好方法可能就是:如果你對Nagios、Cacti及其他工具很熟悉,並且能夠花大量的時間把它們無縫地整合在一起的話,你也能在家庭作坊裡做一個出來。
    v、Zabbix
    Zabbix是一個開源監控系統,在許多方面跟Nagios很相像,但是也有一些關鍵的不同點。例如:它把所有配置資訊和其他資料都存放在一個數據庫裡,而不是放在配置檔案裡;它比Nagios儲存了更多型別的資料,這樣可以生成更好的趨勢圖和歷史報告。它的網路圖表和視覺化功能也優於Nagios。很多使用它的人發現它更易配置,更具有相容性。說起來它也能比Nagios少,它的報警功能也不夠高階。

    2、MySQL監控和建議服務
    MySQL自己的監控方案就是設計用來監控MySQL例項的,但也能夠監控主機的一些關鍵方面。這個工具不是開源的,需要MySQL企業訂閱費。

    3、MONyog
    MONyog是一個輕量級的無代理的監控系統,它跟以上那些工具有著不同實現方法:它的底層是一個JavaScript引擎,所有配置都是通過JavaScrpt物件模型來完成的。它被設計為在桌面系統上執行,執行時它會在一個閒置的埠上開啟一個HTTP監聽器。這樣,你就可以把你的瀏覽器指向這個埠,檢視MySQL伺服器的資訊了,這資訊都是結合了Javascript和Flash來表示的。MONyog實際上有互動式和非互動式兩種型別,因此,你可以把兩種型別的監控功能都嘗試著用用看。

    4、基於RRDTool的系統
    嚴格地說,RRDTool不算是一個監控系統,但是,它很重要,有必要在此提到一下。很多組織裡都是使用幾種指令碼或程式–這些一般都是自制的–從伺服器那裡讀取資訊,然後再儲存到迴圈資料庫(Round-robin database,RRD)檔案裡。在許多要獲取記錄生成圖表的環境下,RRD檔案是一個很合適的解決方案。它們能聚合輸入的資料,如果輸入資料值沒有按期在隨後提交進行時,還能在隨後插入這些丟失的資料。它們還都帶有強大的圖表工具,能夠生成漂亮的與眾不同的圖表。現在已經有一些基於RRDTOOL的系統可供使用了。

    a、Muti Router Traffic Grapher,或者叫MRTG就是一款典型的基於RRDTOOL的系統。它真正的設計初衷是記錄網路資料流,但是它也被擴充套件用來記錄和圖表化表示其他一些東西。
    b、Munin是一個能為你採集資料的系統,將它放入RRDTool後,就會根據資料生成不同粒度的圖表。它能從配置資訊裡生成靜態的HTML檔案,這樣你就可以輕鬆地瀏覽,檢視趨勢情況。
    c、Cacti是另外一個常用的圖表和趨勢顯示系統。它的工作方式是:從系統裡獲取資料,然後儲存在RRD檔案裡,然後用PHP Web介面的形式,使用RRDTool把資料以圖表的形式展示出來。這個顯示介面也是配置和管理介面(配置資訊儲存在一個MySQL伺服器裡)。它是模板驅動的,因此,你可以自己定義模板,並放到你的系統裡使用。

    d、Cricket是一個用Perl編寫的跟Cacti類似的系統,使用的是基於檔案的配置系統。Ganglia也跟Cacti類似,但它的設計初衷是永遠監控群集和系統網路,因此,你可以檢視到由許多伺服器資訊聚合得到的結果,也可以按照你的意願,檢視單獨某臺伺服器的資訊。(Cacti和Cricket無法顯示聚合資料。)

    以上這些系統都可以被用作MySQL系統資訊的收集、記錄、圖表化資料和報告,它們在用途方面差異較小,都具備了不同程度的相容性。但是,它們缺乏真正意義上的相容性,比如當某些東西出錯時,它要能夠有針對性地傳送報警資訊給某些人。它們中的一些甚至沒有“錯誤”的概念。所以,有些人把這一點看作是此類系統的一大缺點,覺得最好還是把記錄、圖表化表示、報警這幾項功能都獨立開來。事實上,Munin特地設計了使用Nagios來作為它的報警系統。然而,對於其他幾個來說,這的確是缺點。另外還有一個缺點就是安裝和配置這樣一個系統,使其能完全滿足你需求,須投入很多時間和努力,不過,這一點也並不是這樣。
    最後,RRD檔案無法讓你使用SQL或其他標準方法來查詢它裡面的資料。而且,在預設情況下,它永遠會以一種恰好的粒度來儲存資料,許多MySQL管理員就不願意接受這種限制,轉而選擇一個關係資料庫來儲存這些歷史資料。

    b、互動性工具
    互動性工具就是那些在你需要時就可以啟動起來,並以檢視顯示的形式不斷獲取最新伺服器狀態的軟體。

    innotop
    innotop是一個通過文字模式顯示MySQL和InnoDB的監測工具。它有很多特點,快速的配置的,易於使用等。它吸取了MYTOP的精華這使它變得更加強大。innotop是用PERL語言寫成的,這是它能更加靈活的使用在各種操作平臺之上,它能詳細的的監控出當前MYSQL和INNODB執行的狀態,以便維護人員根據結果合理的優化MYSQL,讓MYSQL更穩定更高效的執行。安裝INNOTOP工具非常的簡單,既然是由PERL寫的,當然需要PERL環境和相關的工具包。在安裝之前先要確定你的系統安裝了Time::HiRes,Term::ReadKey,DBI,DBD::mysql這四個包。安裝可以把包下載下來通過編譯安裝完成也可以用PERL模組安裝方式來完成。
    mtop
    是一個顯示MySQL伺服器查詢狀態的監視器。功能包括顯示完成的查詢程序,顯示查詢優化的資訊及殺死一個查詢。附加功能包括伺服器效能統計,配置資訊和調整技巧提示。
    mytop
    mytop就是類似top的MySQL監察工具。執行mytop後,它會每隔幾秒更新一次,而且也可以針對性地監察某一個資料庫。

  • 分析工具
    分析工具可以幫你自動化那些單調乏味的工作,如監測伺服器,找出還可以優化和調優的功能區域。這些工具可以作為解決效能問題的良好開端。
    a、HackMySQL 工具(這個很出名,可惜已停止更新) 

    1、Mysqlreport
    2、Mysqlsla

    b、Maatkit分析工具
    一系列命令列工具的集合。

  • MySQL的輔助工具
    MySQL裡有幾個工具是為了消除MySQL提供的功能與它自帶的命令列工具之間的隔閡。
    a、MySQL Proxy
    b、Dormando的MySQL代理

相關推薦

MySQL監控效能分析——工具

MySQL越來越被更多企業接受,隨著企業發展,MySQL儲存資料日益膨脹,MySQL的效能分析、監控預警、容量擴充套件議題越來越多。“工欲善其事,必先利其器”,那麼我們如何在進行MySQL效能分析、監控預警、容量擴充套件問題上得到更好的解決方案,就要利用各種工具來對MyS

WEB前端效能分析--工具

線上網站類: WebPageTest 說明: 線上的站點效能評測網站,地址http://www.webpagetest.org/ 補充: 其實這網站也是個開源專案,所以支援自己搭建一個內部的測試站點 ShowSlow 說明: showslow是yslow的資料收集與展示平臺http://www.show

JDK下虛擬機器效能監控以及故障分析工具

  無論對於開發人員還是運維人員,給一個系統定位問題時,知識、經驗是關鍵基礎,資料是依據,工具是運用知識處理資料的手段。對於開發人員或運維人員,這裡的資料包括:執行日誌、異常日誌、GC日誌、堆轉儲快照等。適當的使用這些工具,會使我們能夠快速定位問題,提升解決問題的速度。 &nbs

由淺入深探究mysql索引結構原理效能分析與優化

第一部分:基礎知識 第二部分:MYISAM和INNODB索引結構 1、 簡單介紹B-tree B+ tree樹 2、 MyisAM索引結構 3、 Annode索引結構 4、 MyisAM索引與InnoDB索引相比較 第三部分:MYSQL優化 1、表資料型別選擇 2、sql語句優化 (1)     最左字首

Chrome開發者工具不完全指南(四效能進階

前言   Profiles面板功能的作用主要是監控網頁中各種方法執行時間和記憶體的變化,簡單來說它就是Timeline的數字化版本。它的功能選項卡不是很多(只有三個),操作起來比較前面的幾塊功能版本來說簡單,但是裡面的資料確很多,很雜,要弄懂它們需要花費一些時間。尤其是在記憶體快照中的各種龐雜的資料。在這篇

mysql運維與分析-效能分析工具-show profiles

http://www.cnblogs.com/happySmily/p/5943311.html 作用範圍這個命令只是在本會話內起作用,即無法分析本會話外的語句。 開啟分析功能後,所有本會話中的語句都被分析(甚至包括執行錯誤的語句),除了SHOW PROFILE和S

深入理解JVM(③)虛擬機器效能監控故障處理工具

#前言 JDK的bin目錄中有一系列的小工具,除了java.exe、javac.exe這兩個編譯和執行Java程式外,還有打包、部署、簽名、除錯、監控、運維等各種場景都會用到這些小工具。 ![](https://img2020.cnblogs.com/blog/772743/202006/772743-202

linux效能分析工具介紹

Linux平臺下面有不少效能分析的工具,每個工具有何優劣卻很難找到一個完整的列表,這裡做一下記錄,以便參考。   1. Intel VTune http://software.intel.com/en-us/intel-vtune-amplifier-xe/ 大名鼎鼎

React效能分析工具 -React-Performace

目錄 介紹 用途 安裝 外掛安裝 使用 註冊觀察者 1.安裝微伺服器 2.配置引數 測試 介紹 React Performance Devtool是一個瀏覽器擴充套件,用於檢查React元件的效能。它根據使用視窗的React收集的措施對React元

Android效能分析工具systrace使用

th p { margin-bottom: 0cm } td p { margin-bottom: 0cm } h2.western { font-family: "Liberation Sans", sans-serif; font-size: 16pt } h2.cjk { font-size: 16pt

正確使用Android效能分析工具——TraceView

最近公司app中有些列表在滑動的時候會有卡頓現象,我就開始著手解決這些問題,解決問題之前首先要分析列表滑動的效能瓶頸在什麼地方。因為之前不會正確使用TraceView這個工具,主要是看不懂TraceView介面下方資料指標的值代表什麼意思…以前我用StopWatch類來分析效能,現在覺得弱爆了…不過

cmake:gperftools效能分析工具find libprofiler 指令碼暨profiler的靜態連線問題

gperftools是一個很好用的效能分析工具,但沒有提供官方的用於查詢profiler庫的cmake指令碼,所以在基於cmake管理的專案中如果要在系統查詢libprofiler庫就就要自己寫FindPROFILER.cmake指令碼。 將指令碼所在的資料夾加入CMAKE_MODULE

os-android:效能分析工具(systrace,starce,top,iotop)

os-android:效能分析工具(systrace,starce,atrace) 1 超級神器 systrace Systrace 允許你在系統級別收集和檢查裝置上執行的所有程序的計時資訊。Systrace採集核心、Android系統和應用層的資訊,然後生成HTML影象化報告。

JVM自帶效能分析工具介紹——jstack

轉載: https://blog.csdn.net/Roy_70/article/details/78021551 前言 JDK本身提供了很多方便的JVM效能調優監控工具,除了整合式的VisualVM和jConsole外,還有jps、jstack、jmap、jhat、jstat、h

Android 效能分析工具之TraceView

Android 效能分析工具之TraceView TraceView簡介 Traceview本身是一個數據分析工具, Android 平臺將Traceview作為 Android SDK內建的一個工具,主要用於載入 Android 應用程式所生成的trace檔案並且分析trace檔案採集到的資料裡面

linux效能分析工具介紹(CPU,記憶體,磁碟I/O,網路)

一. CPU效能評估 1.vmstat [-V] [-n] [depay [count]] -V : 打印出版本資訊,可選引數 -n : 在週期性迴圈輸出時,頭部資訊僅顯示一次 delay : 兩次輸出之間的時間間隔 count : 按照delay指定的時間間隔統計

Linux環境下面安裝PHP效能分析工具XHProf(PHP5.6)

XHProf是一個分層PHP效能分析工具。它報告函式級別的請求次數和各種指標,包括阻塞時間,CPU時間和記憶體使用情況。一個函式的開銷,可細分成呼叫者和被呼叫者的開銷,XHProf資料收集階段,它記錄呼叫次數的追蹤和包容性的指標弧在動態callgraph的一個程式。它獨有的資料計算的報告

php 效能分析工具 xhprof 使用

1. 環境 CentOS 7 nginx 1.14 php 5.6 2. xhprof 版本 xhprof-0.9.4 圖形展示依賴: graphviz graphviz-gd libpng 3. 安裝 xhprof 下載 xhprof-0.9.4.tgz tar xvzf xhprof-0.9.

Mysql慢查詢日誌分析工具Mysqlsla安裝

yum install perl-DBI perl-DBD-MySQL perl-devel -y yum -y  install perl-Time-HiRes cd /data/software wget  ftp://ftp.tw.freebsd.org/pub/

一款前端效能分析工具—WebPageTest

我們常常說效能測試,但通常我們只關注後端效能,那麼前端效能怎麼測試呢?今天就介紹一個WEB前端效能分析工具WebPageTest。這是一個線上的免費效能評測網站,支援IE,Chrome,使用真正的瀏覽器(IE和Chrome)和真實的消費者連線速度,從全球多個地點執行免費網