在 Linux 中監(jiān)控 MySQL 性能的四個有用的命令行工具
概述
監(jiān)控mysql性能的工具有很多,好的工具是診斷myql性能瓶頸和排除服務(wù)器的利器。日常工作我們常常用到工具如zabbix(借助腳本或插件),Prometheus(本人工作中常用)、MONyog等。但在一些特殊情況下,這它們并不總是完美滿足mysql開發(fā)人員或管理員的常見需求,或者在某些情況一下可能無法正常工作。令人興奮的是mysql社區(qū)創(chuàng)建了各種開源工具來填補這些空白。今天分享4個命令行工具來監(jiān)控Linux中mysql數(shù)據(jù)庫正常運行時間、負載和性能。
一 、Mytop
Mytop是開源和免費的基于命令行的MySQL數(shù)據(jù)庫監(jiān)控工具之一,由Jereme Zawodny使用Perl語言編寫。Mytop 在終端中運行,顯示有關(guān)線程、查詢、慢查詢、正常運行時間、負載等的統(tǒng)計信息,與 Linux監(jiān)控命令top非常相似。這間接幫助管理員優(yōu)化和提高 MySQl 的性能以處理大量請求并減少服務(wù)器負載。
mytop提供了多種系統(tǒng)的安裝包,如centos、arch linux、opensuse等。
1、 安裝方法
$ sudo apt install mytop #Debian/Ubuntu
# yum install mytop #RHEL/CentOS
# dnf install mytop #Fedora 22+
# pacman -S mytop #Arch Linux
# zypper in mytop #openSUSE
2、如何使用 Mytop 監(jiān)控 MySQL/MariaDB
Mytop需要MySQL/MariaDB登錄憑據(jù)來監(jiān)控數(shù)據(jù)庫并默認使用 root 用戶名連接到服務(wù)器。您可以在運行時在命令行上或在文件中指定連接到數(shù)據(jù)庫服務(wù)器的必要選項~/.mytop。
只需運行以下命令即可啟動mytop并在出現(xiàn)提示時提供您的MySQL/MariaDB root 用戶密碼。這將默認連接到測試數(shù)據(jù)庫。
# mytop --prompt
密碼:
輸入 MySQL root 密碼后,您將看到Mytop監(jiān)控,如下所示。
如果您想監(jiān)視特定數(shù)據(jù)庫,只需要加選項-d即可,如下圖所示:
# mytop --prompt -d xuanyuan
密碼:
如果你的每個數(shù)據(jù)庫都有特定的管理員,只需要指定連接數(shù)據(jù)的用戶名和密碼即可。
mytop -u admin -p password_here -d tdb
在命令行界面指定明文密碼還是有一定的安全隱患,為了避免這樣的安全風險,*我們可以使用配置文件~/.mytop來指定連接到數(shù)據(jù)庫的選項。
# vi ~/.mytop
添加以下選項:
user=root
pass=password_here
host=localhost
db=test
delay=4
port=3306
socket=
二、mtop
mtop (MySQL top) 是另一個類似的開源、基于命令行的實時 MYSQL Server 監(jiān)控工具,它是用Perl語言編寫的,它顯示的結(jié)果與mytop類似。mtop 監(jiān)控花費最多時間完成的 MySQL 查詢,并在特定指定時間后終止那些長時間運行的查詢。
此外,mtop正在運行的查詢和終止查詢的查詢優(yōu)化器信息,它還顯示服務(wù)器的統(tǒng)計信息、配置信息和一些有用的調(diào)優(yōu)技巧,以優(yōu)化和提高MySQL 性能但不幸的是mtop沒有得到積極維護,可能無法在新安裝的 MySQL 版本上運行。
功能:
- 顯示實時 MySQL 服務(wù)器查詢。
- 提供 MySQL 配置信息。
- 顯示過程查詢的縮放功能。
- 為查詢和“殺死”查詢提供查詢優(yōu)化器信息。
- 提供 MySQL 調(diào)優(yōu)技巧。
- 能夠?qū)⑤敵霰4嬖?mtoprc配置文件中。
- 提供系統(tǒng)管理員推薦頁面 (' T ')。
- 向主標題添加查詢/秒。
- 將每秒信息添加到統(tǒng)計屏幕。
三、Innotop
Innotop另一個不錯的基于命令行的mysql監(jiān)控工具,它用于監(jiān)控在InnoDB引擎下運行的本地和遠程 MySQL 服務(wù)器。Innotop 包含許多功能并帶有不同類型的模式/選項,這有助于我們監(jiān)控 MySQL 性能的各個方面,以找出 MySQL 服務(wù)器出了什么問題。
1、 安裝 Innotop(MySQL 監(jiān)控)
默認情況下, innotop包不包含在 Linux 發(fā)行版中,例如RHEL、CentOS、Fedora和Scientific Linux。您需要通過啟用第三方epel 存儲庫并使用 yum 命令來安裝它,如下圖所示:
# yum install innotop
要啟動innotop,只需在命令行中鍵入“ innotop ”并分別指定選項-u(用戶名)和-p(密碼),然后按 Enter。
# innotop -u root -p 'tcm1nt'
2、Innotop 幫助
按“ ?” 獲取命令行選項和用法的摘要。
切換到不同的模式:
A Dashboard I InnoDB I/O Info Q Query List
B InnoDB Buffers K InnoDB Lock Waits R InnoDB Row Ops
C 命令摘要 L Locks S Variables & Status
D InnoDB Deadlocks M Replication Status T InnoDB Txns
F InnoDB FK Err O 打開表 U 用戶統(tǒng)計
操作:
d 更改刷新間隔 p 暫停 innotop
k 終止查詢連接 q 退出 innotop
n 切換到下一個連接 x 終止查詢
其他:
TAB 切換到下一個服務(wù)器組/快速過濾您看到的內(nèi)容
!顯示許可證和保修 = 切換聚合
# 選擇/創(chuàng)建服務(wù)器組 @ 選擇/創(chuàng)建服務(wù)器連接
$ 編輯配置設(shè)置 \ 清除快速過濾器
按任意鍵繼續(xù)
四、 mysqladmin
mysqladmin是一個默認的命令行 MySQL 客戶端,預(yù)裝在 MySQL 軟件包,用于執(zhí)行管理操作,例如監(jiān)控進程、檢查服務(wù)器配置、重新加載權(quán)限、當前狀態(tài)、設(shè)置 root 密碼、更改 root 密碼、創(chuàng)建/刪除數(shù)據(jù)庫等。
要檢查 mysql 狀態(tài)以及正常運行時間,請從終端運行以下命令,請確保你有root的權(quán)限。
[root ~]# mysqladmin -u root -p version
小結(jié)
mysql是最常見的一種輕量型數(shù)據(jù)庫,也是目前在市面上應(yīng)用最廣泛的一種數(shù)據(jù)庫,所以懂得幾個mysql的調(diào)優(yōu)工具非常必要,我個人比較推薦mytop和innotop。