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指令