天天看點

Yahoo的MySQL性能分析器詳解

Yahoo的MySQL性能分析器詳解

一、介紹

Yahoo于前日開源了自己的MySQL性能分析器(MySQL Performance Analyzer),源碼托管在GitHub。此性能分析器使用Maven建構,需要JDK 8和Maven 3.0。

此性能分析器項目包含了兩個子項目:

1)Java Web應用項目:myperf

2)Jetty Web伺服器項目:jetty wrapper

雖然項目在pom.xml配置中指明要使用JDK 8,但其實源碼并未使用JDK 8的語言特性,是以修改此pom.xml,改為JDK 7也能正常建構并運作。即把

    1.8

改成

    1.7

目前Yahoo開源的MySQL性能分析器不包含可視化輸出,位址:https://github.com/yahoo/mysql_perf_analyzer

Yahoo的性能分析器項目可以用于MySQL的性能監控和分析。

Build過程預設會在目錄perfJettyServer/target下建立一個名為myperfserver-server.zip的檔案。要建構它的話,在頂層目錄執行指令:

mvn clean package

二、MySQL性能分析器的安裝及用法

1、根據前面生成的myperfserver-server.zip檔案,解壓它。

2、預設情況下,此性能分析器會把測試資料也存放在MySQL。是以需要為它建立一個資料庫及相關使用者。

1)建立一個資料庫,名為metrics

2)建立MySQL使用者,名為'metrics'@'my_host'

3)配置設定權限,要能擁有此資料庫的所有權限

注意,如果不使用MySQL,那麼就會使用内建的Derby資料庫。

3、檢視腳本start_myperf.sh,看是否需要調整。

通常可能會修改端口号

-j: jettyHome

-p: http port,預設使用9092端口

-w: war,這個必須是myperf.war

-k: working directory,工作目錄,如果未指定,将會使用./work目錄

-c: url context,URL上下文,預設是/myperf

還要注意修改Java指令行的路徑。

4、啟動

# ./start_myperf.h

檢查nohup.out和log目錄,看是否有任何錯誤日志。

5、關閉

# ./stop_myperf.sh

6、首次啟動并登陸

浏覽器通路http://your_host:9092/myperf

初始使用者名和密碼為:myperf/change

登陸後,可以看到設定頁面。

可以添加Email位址以便收到通知。

7、配置完成後,可以啟動掃描器Scanner

點選Start Scanner按鈕

要注意,每次修改了配置後,都需要重新開機掃描器。

如果掃描器的工作未達到預期,重新開機分析器:

# ./start_myperf.sh

對于想監控的每個資料庫,都需要建立一個MySQL使用者,并配置設定以下的權限:

1)process權限

2)replication client權限

3)show databases權限

4)show view權限

5)select語句的所有權限

8、分析器依賴Linux的SNMP來收集OS底層的資料,故需檢查snmpd服務的狀态,看是否啟動。

三、注意事項

有兩點需注意,

1、snmpd基于Linux規範

2、郵件通知使用了Linux的mailx指令