1. 程式人生 > >MySQL效能監控工具mysqlreport安裝和中文說明

MySQL效能監控工具mysqlreport安裝和中文說明

管理 mysql 最讓人困擾的就是如何有效的掌握 MySQL 的健康狀況,因為 MySQL 雖然有提供許多系統變數值供您參考,但這些零散的資料若要手動蒐集與過濾將會是一件十分沒有效率的事情(除非您寫 Scripts 去分析)。而接下來要介紹的這套 “工具” 其實是由 hackmysql.com 的站長所撰寫的 perl Scritps,旨在協助 MySQL DBA 蒐集與分析 MySQL 的運作狀況。

mysqlreport以很友好的方式顯示 MySQL狀態變。事實上,它幾乎報告了所有的狀態。不像 SHOW STATUS 只是在顯示了100多個狀態值,mysqlreport 則以人性化的方式闡釋和格式化了這些狀態值,大大增加了其可讀性。可以 點選這裡 檢視mysqlreport的例子。

mysqlreport 的好處是可以快速的檢視各種狀態引數組,從而瞭解伺服器的執行狀態情況,而無需從 SHOW STATUS 的結果中人工計算。例如索引讀取比率是個重要的引數,但是 SHOW STATUS 中並沒有顯示;它是一個推斷值(key_reads 和 key_read_requests 的比值)。

mysql命令列中精彩使用下面的指令來獲取當前資料庫的實時狀態:

mysql>show status;
mysql>show innodb status;

但是他們的顯示結果不太友好,我們需要更好的更加人性化的分析結果,而不是堆出來一堆數字。mysqlreport是一個第三方的Mysql狀態報告工具,它把mysql的show status 和 show innodb status的結果進行一系列的後期處理,讓可讀性更強,更友好。 下面是mysqlreport的安裝過程:

MySQLReport 是用perl語言編寫,所以想要執行它首先需要安裝perl環境;它還要與MySQL資料庫連線,所以還需要安裝資料庫介面 DBI 和 資料庫驅動 DBD-MySQL 。

# perl -v    //如果顯示perl版本說明perl環境已經安裝

安裝DBI

wget http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/T/TI/TIMB/DBI-1.616.tar.gz
# tar zxvf DBI-1.616.tar.gz
cd DBI-1.616
# perl Makefile.PL
make
#make test


# make
# make install

安裝DBD-mysql

# wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.020.tar.gz
# tar zxvf DBD-mysql-4.020.tar.gz
# cd DBD-mysql-4.020
# perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
# make
# make test

如果報錯:

PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::::MM" "-e" "test_harness(0, 'blib/lib', 'blib/Arch')" t/*.t t/00base....................ok 1/6
# Failed test 'use DBD::mysql;' t/00base....................NOK 2
# in t/00base.t at line 21.
# Tried to use 'DBD::mysql'.
# Error: Can't load '/usr/local/src/DBD-mysql-4.020/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.16: cannot open shared object file: No such file or directory at /usr/lib64/perl5/5.8.8/x86_64-Linux-thread-multi/DynaLoader.pm line 230.
# at (eval 6) line 2 # Compilation failed in require at (eval 6) line 2.
# BEGIN failed--compilation aborted at t/00base.t line 21.
FAILED--Further testing stopped: Unable to load DBD::mysql make: *** [test_dynamic] Error 9 

 解決辦法:

cp /usr/local/mysql/lib/mysql/* /usr/lib
# cp /usr/local/mysql/lib/mysql/* /usr/lib64/ (如果64位 否則是lib)

# make
# make install

下載mysqlreport

# cd /usr/local/src/
# wget http://hackmysql.com/scripts/mysqlreport-3.5.tgz

#wget http://pkgs.fedoraproject.org/repo/pkgs/mysqlreport/mysqlreport-3.5.tgz/33a345f5e2c89b083a9ff0423f7fd7b4/mysqlreport-3.5.tgz

解壓mysqlreport

# tar zxvf mysqlreport-3.5.tgz
# cd mysqlreport-3.5
# mysqlreport --help

mysqlreport v3.5 Apr 16 2008 
mysqlreport makes an easy-to-read report of important MySQL status values.

Command line options (abbreviations work): 
--user USER       Connect to MySQL as USER 
--password PASS   Use PASS or prompt for MySQL user's password 
--host ADDRESS    Connect to MySQL at ADDRESS 
--port PORT       Connect to MySQL at PORT 
--socket SOCKET   Connect to MySQL at SOCKET 
--no-mycnf        Don't read ~/.my.cnf 
--infile FILE     Read status values from FILE instead of MySQL 
--outfile FILE    write report to FILE 
--email ADDRESS   Email report to ADDRESS (doesn't work on Windows) 
--flush-status    Issue FLUSH STATUS; after getting current values 
--relative X      Generate relative reports. If X is an integer, 
reports are live from the MySQL server X seconds apart. 
If X is a list of infiles (file1 file2 etc.), 
reports are generated from the infiles in the order 
that they are given. 
--report-count N  Collect N number of live relative reports (default 1) 
--detach          Fork and detach from terminal (run in background) 
--help            Prints this 
--debug           Print debugging information

使用mysqlreport

# mysqlreport -user *** -password ***

以下是mysqlreport的命令選項

命令列選項的格式是 --選項,不過 -選項 的格式也可以。所有的選項都有其縮寫,只要是唯一的。例如,選項 --host 可以縮寫成 --ho,不過不能寫成 --h,因為 --h 有歧義,可能是 --host 或者 --help。

選項列表

--user USER
--password
--host ADDRESS
--port PORT
--socket SOCKET
--no-mycnf

--help 這些選項是模擬其他標準應用程式的。從 2.3 版本開始,--password 可以在後面加上引數,如 "--password FOO"。如果命令列中只指定了選項

--password 則會提示輸入密碼。--no-mycnf 告訴 mysqlreport 不要讀取 ~/.my.cnf,預設會去讀取這個檔案。--user 和 --password 總是覆蓋從 ~/.my.cnf 中取得的結果。 

--infile FILE 直接從檔案中讀取狀態檔案,而不是從MySQL的 SHOW STATUS 中讀取。檔案內容通常是從 SHOW STATUS 的結果中取得,並且包含格式化字元(|, +, -)。mysqlreport 認為這樣的檔案"狀態名 數值"格式的,狀態包含字元和下劃線(A-Z 和 _),數值則是非負整數。在狀態名和數值之間的任何內容都會被忽略。mysqlreport 也需要以下MySQL伺服器系統變數:version, table_cache, max_connections, key_buffer_size, query_cache_size, thread_cache_size。

INFILE 的格式也可以是 "名字 = 數值"這樣的,名字可以使是上面提到的各種變數名,數值是非負整數,可能後面帶有M或者其他單位(根據版本不同而定)。例如,想要指定 18M 的 key_buffer_size:key_buffer_size = 18M。或者,256 個 table_cache:table_cache = 256。M 指兆位元組,而非百萬。因此 18M 是 18,874,368,而非 18,000,000。如果這些伺服器變數沒有指定,則使用預設以下預設值:0.0.0, 64, 100, 8M, 0, 0,就可能會讓報告結果看起來很奇怪。

注意:MySQL 伺服器版本在 5.1.3 或更新時,儘管系統變數 table_cache 改成了 table_open_cache,但是讀取本地檔案時仍採用 table_cache。

--outfile FILE 在螢幕顯示完報告結果後,將結果寫入檔案中。mysqlreport 的內部機制總是先將結果寫入臨時檔案中。然後將該臨時檔案裡的內容列印到螢幕上。然後,如果指定了 --outfile 選項,則將臨時檔案拷貝成 OUTFILE。如果指定選項 --email,則會刪除臨時檔案。 

--email ADDRESS 在螢幕顯示完結果後,將結果傳送到郵件地址 ADDRESS 中去。欲該選項,需要在 /usr/sbin/ 目錄下有  程式,因此無法在 windows 平臺下使用。/usr/sbin/sendmail 可以符號連結到 qmail,或者任何其他能模擬 sendmail -t 方式的 MTA 程式。郵件來源是:mysqlreport,主題是:MySQL status report on HOST,HOST 是 mysqlreport所在的主機名,可能是讀取到的 --host 值,預設是 localhost。

--flush-status 顯示完報告後,執行 "FLUSH STATUS;" 語句。如果沒有許可權,則 DBD::mysql 會顯示返回值。 

--relative (-r) X mysqlreport 通常情況下報告的是自從 MySQL 伺服器啟動以來的狀態資訊。--relative 選項則是令 mysqlreport 產生一份自從上次報告以來的相關報告。

如果 --relative X 的 X 值是一個整數,則 mysqlreport 會在隔 X 秒後再次產生一份 MySQL 伺服器的狀態報告。產生報告的次數是由 --report-count 選項來控制的。預設是產生 1 份相關的報告。例如,指定 --relative 的值為 60,則會產生 2 份報告:第一份會馬上生成,第二份會在 60 秒後再次生成。第二份報告中的數值會和前面的那份相關。例如,前面那份中總共有 10.00k 次查詢,在這 60 秒的間隔時間裡接受了新的 1.00k 次查詢,則第二份的報告中的總查詢次數是 1.00k 而非 11.00k 次。

如果 --relative 選項的值也可以是本地檔案(類似 --infile 選項的用法),那麼 mysqlreport 會按照引數值中檔案的順序來依次產生狀態報告。因此,根據這些檔案產生的時間來指定選項的值非常重要:較早產生的檔案放在引數的前面。第一個檔案中必須有手工新增的系統變數,例如:key_buffer_size、table_cache 等。每個檔案中可以有多組 "SHOW STATUS" 的結果。注意:通過 " -r -i N extended" 產生的狀態檔案無法使用,因為 mysqladmin 的 -r 引數已經令其產生了具有相對性的狀態值了。

由於 mysqlreport 首先會把狀態報告寫到臨時檔案中,如果 --relative 的值是 整數(而非 本地檔案)時,mysqlreport 會顯示它把檔案寫到哪了。那麼就可以直接通過檢視這些檔案內容來觀察伺服器的狀況了。

--report-count (-c) N 生成 N 份相關的報告。本選項只有在同時啟用 --relative 選項後才有效。mysqlreport 會自動產生 N+1 份報告:第一份基本報告,以及後面的 N 份相關報告。

--detach  若指定本選項,則 mysqlreport 會派生出程序來,不只是在螢幕顯示結果,還會轉入後臺繼續執行。派生新程序後,mysqlreport 會報告它把結果寫入哪個臨時檔案了。本選項還可以指定 --outfile 或 --email 的一個。如果沒有指定 --outfile 或 --email 的值,則產生的臨時檔案會被刪除,因為 mysqlreport 派生出新程序後,無法再將結果列印到終端螢幕上了。本選項如果和 --relative 一起使用的話就更有意義了,這樣 mysqlreport 就能定時報告資訊,而無需人工登入等方式在中斷執行了。使用如下的命令,就能讓 mysqlrepot 隔一個小時再次產生一次報告,並將結果傳送到自己的信箱中去:

# mysqlreport -r 3600 -detach -email [email protected]

一個小時候後,mysqlreport 通過email傳送報告,刪除臨時檔案,並且乾淨地終止。

--debug  顯示除錯資訊。

--dtq (Questions 報告的 Total 部分中) 顯示所有的查詢分佈報告。這些查詢主要包括以下四部分:DMS (見下面)、COM_ (見下面)、COM_QUIT(見 COM_QUIT and Questions)、以及其他未知。每部分根據其總數倒序顯示。

--dms (Questions 報告的 DMS 部分中) 顯示所有的資料維護語句(DMS)報告。DMS是下面文件 13.2. Data Manipulation Statements 中提到的那些(當前主要有:SELECT, INSERT, REPLACE, UPDATE, and DELETE)。每個 DMS 根據其總數倒序顯示。

--com N (Questions 報告之後) 以降序顯示最多 N 個 非DMS Com_ 狀態值。如果沒有指定 N 的值,則預設是 3。所謂的非DMS Com_ 狀態值,包括:Com_change_db、Com_show_tables、Com_rollback 等。

--sas (Questions 報告之後) 顯示所有的 Select_ 和 Sort_ 報告。詳情請看 MySQL Select and sort Status Variables。

--qcache 如果開啟查詢快取的話,則顯示查詢快取狀態報告

--tab (Create Temp 報告之後) 顯示 執行緒、放棄的、流量 等狀態報告。從 mysqlreport v2.3 開始,執行緒狀態是從 Threads_ 狀態值讀取。

--innodb 顯示 InnoDB 狀態報告,包括MySQL 5.0.2以後才支援的InnoDB 緩衝池,以及5.0.3以後才支援的InnoDB鎖狀態報告。

--innodb-only 只顯示 InnoDB 報告;不顯示其他報告。

--dpr 顯示 InnoDB 資料,頁,行報告。

--all 如果可能,則顯示所有的狀態報告。一些報告,比如查詢快取、InnoDB等需要特定版本的MySQL或者其他特性才能支援。例如,儘管伺服器支援查詢快取,但是它被禁用了,則不管是否指定了 --qcache 或者 --all,都不會顯示查詢快取的報告。

相關推薦

MySQL效能監控工具mysqlreport安裝中文說明

管理 mysql 最讓人困擾的就是如何有效的掌握 MySQL 的健康狀況,因為 MySQL 雖然有提供許多系統變數值供您參考,但這些零散的資料若要手動蒐集與過濾將會是一件十分沒有效率的事情(除非您寫 Scripts 去分析)。而接下來要介紹的這套 “工具” 其實是由 h

【nmon】伺服器效能監控工具nmon安裝使用

目錄 一、檢視linux系統伺服器版本資訊 ​二、nmon下載 三、nmon安裝 ​四、安裝成功校檢 五、測試監控 六、監控資料採集 一、檢視linux系統伺服器版本資訊 (Linux檢視版本當前作業系統核心資訊):uname -a (Linux檢視當

Linux效能監控工具Nmon安裝使用

安裝說明 安裝環境: 安裝方式:解壓包安裝 軟體:nmon_linux_14i.tar.gz 下載地址: nmon: http://nmon.sourceforge.net/pm ... nload nmonanalyser:  http:/

伺服器效能監控工具軟體NmonServerAgent對比

  2018年01月08日 10:36:51 zwliu6 閱讀數:664 標籤: 伺服器效能監控對比 伺服器效能監控工具軟體Nmon和ServerAgent對比 軟體 Nmon+nmon_anal

mysql效能監控工具:mycheckpoint的使用方法

mycheckpoint 是針對mysql的一個性能監控、指標採集的python寫成的工具。 工作原理說明: mycheckpoint是一段指令碼,通過將其設定為crontab定時任務,每幾分鐘採集一次資料(受限於crontab只能是分鐘為基本單位)儲存在自己的資料庫中,並可以將採集的資料進行統計,以we

python操作mysql③python操作mysql的orm工具sqlaichemy安裝配置使用

utf pes 中文 pytho oot 工具 mage lean cred python操作mysql③python操作mysql的orm工具sqlaichemy安裝配置和使用 手冊地址: http://docs.sqlalchemy.org/en/rel_1

Jmeter效能測試工具學習(Jmeter的函式BeanShell)

函式 loadrunner中的函式   Jmeter中的函式 1)函式格式 ${__functionName(var1,var2,var3)} 2)如果函式沒有引數,那可以沒有括號 例如 ${__threadNum} 例子: BeanShell

Linux效能監控工具sysstat系列:介紹與安裝

簡介 sysstat提供了Linux效能監控的工具集,包括sar、sadf、mpstat、iostat、pidstat等,這些工具可以監控系統性能和使用情況。各工具的作用如下: iostat - 提供CPU統計,儲存I/O統計(磁碟裝置,分割槽及網路檔案系統) mpstat - 提供單個或組合CPU

python操作三大主流資料庫(3)python操作mysql③python操作mysql的orm工具sqlaichemy安裝配置使用...

python操作mysql③python操作mysql的orm工具sqlaichemy安裝配置和使用 手冊地址: http://docs.sqlalchemy.org/en/rel_1_1/orm/index.html 安裝 D:\software\source_tar>pip install S

MySQL安裝配置以及其視覺化工具SQLyog安裝破解

一、前言:   MySQL是常用的資料庫管理系統,是最流行的關係型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體。MySQL是一種關係資料庫

KafkaOffsetMonitor監控工具安裝與引數說明(該方法避免了監控頁面內容無法顯示Java客戶端消費者組無法監控等問題)

概述 一個小應用程式來監視kafka消費者的進度和它們的延遲的佇列。 KafkaOffsetMonitor是用來實時監控Kafka叢集中的consumer以及在佇列中的位置(偏移量)。 你可以檢視當前的消費者組,每個topic佇列的所有partition的消費情況。可以很快地知道

MySql監控工具斷網部署Percona Monitoring and Management ,Perocona的官方監控工具Docker安裝教程

部署前提:我們已經在一臺能聯網的機器上將PMM-Server的映象已經拉取到本地了,然後從拉取成功的機器上打包映象,這樣在不能聯網的伺服器中的docker中建立容器時就不需要遠端拉取從而實現斷網安裝,如果機器能聯網就就直接安裝就行,省去打包步驟。 1.下載最新

mysql閃回工具binlog2sql 安裝使用

binlog2sql 閃回 誤操作軟件包下載地址:鏈接:https://pan.baidu.com/s/15dDeGufVWOgVrfATGWBzaA 密碼:gnz8DBA或開發人員,有時會誤刪或者誤更新數據,如果是線上環境會影響較大,這就需要能快速回滾;而MySQL閃回(flashback)利用binlog

MySQL基準測試工具-sysbench安裝測試

MySQL基準測試環境:CentOS6.5,MySQL5.7.221.下載 sysbench下載地址2.安裝 tar -zxvf sysbench-1.1.0.tar.gz yum install automake libtool –y #安裝依賴包 cd sysbench-0.4.12.14 ./au

MySQL壓測工具--TPCC安裝,測試

enc 解讀 file 事務 AC space 過大 一次 基準 今天我們來講一下MySQL的壓力測試工具,目前我接觸到的主要有兩種壓力測試工具:TPCC,Sysbench,前者只適合MySQL數據庫OLTP壓力測試,而Sysbench功能就比較廣泛,可以測試OS的CPU,

工作隨筆——pinpoint分布式性能監控工具(docker安裝)

clas 詳情 pat 針對 配置 hub csdn 了無 相關 在做性能壓測的時候,你是不是有只能看到測試報告? 在做性能壓測的時候,你是不是想知道每一個方法執行了多長時間? Pinpoint幾乎可以幫助你查看你想看到的每一個細節。 Pinpoint是什麽? Pinp

Spring Boot基礎教程》 第1節工具安裝使用

article pac java upd ips help 如何快速 安裝 nbsp 《Spring Boot基礎教程》 第1節 工具的安裝和使用 Spring Boot文檔 https://qbgbook.gitbooks.io/spring-boot-reference

性能測試監控工具nmon安裝及使用方法

chm pla 工作 模板 生產 數據文件 尋找 pan series 1、概述   監控,在檢查系統問題或優化系統性能工作上是一個不可缺少的部分。通過操作系統監控工具監視操作系統資源的使用情況,間接地反映了各服務器程序的運行情況。根據運行結果分析可以幫助我們快速定位系統問

效能測試工具siege安裝及測試

其實對於類似的效能測試工具之前接觸過AB。我是在ubuntu下做的測試。 1、更新系統 sudo apt-get update && sudo apt-get upgrade –show-upgraded 2、下載最新版的siege wget http://do

linux效能監控工具-(顯示系統整體資源使用情況-top命令)

顯示系統整體資源使用情況 -top命令 top命令是linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況: 前半部分是系統統計資訊,後半部分是程序資訊。 從左到右依次表示:系統當前時間,系統執行時間,當前登入使用者數。load average表示系統的平