在 Linux 中監控 MySQL 性能的四個有用的命令行工具
概述

監控mysql性能的工具有很多,好的工具是診斷myql性能瓶頸和排除服務器的利器。日常工作我們常常用到工具如zabbix(借助腳本或插件),Prometheus(本人工作中常用)、MONyog等。但在一些特殊情況下,這它們并不總是完美滿足mysql開發人員或管理員的常見需求,或者在某些情況一下可能無法正常工作。令人興奮的是mysql社區創建了各種開源工具來填補這些空白。今天分享4個命令行工具來監控Linux中mysql數據庫正常運行時間、負載和性能。
一 、Mytop
Mytop是開源和免費的基于命令行的MySQL數據庫監控工具之一,由Jereme Zawodny使用Perl語言編寫。Mytop 在終端中運行,顯示有關線程、查詢、慢查詢、正常運行時間、負載等的統計信息,與 Linux監控命令top非常相似。這間接幫助管理員優化和提高 MySQl 的性能以處理大量請求并減少服務器負載。

mytop提供了多種系統的安裝包,如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 監控 MySQL/MariaDB
Mytop需要MySQL/MariaDB登錄憑據來監控數據庫并默認使用 root 用戶名連接到服務器。您可以在運行時在命令行上或在文件中指定連接到數據庫服務器的必要選項~/.mytop。
只需運行以下命令即可啟動mytop并在出現提示時提供您的MySQL/MariaDB root 用戶密碼。這將默認連接到測試數據庫。
# mytop --prompt
密碼:
輸入 MySQL root 密碼后,您將看到Mytop監控,如下所示。

如果您想監視特定數據庫,只需要加選項-d即可,如下圖所示:
# mytop --prompt -d xuanyuan
密碼:

如果你的每個數據庫都有特定的管理員,只需要指定連接數據的用戶名和密碼即可。
mytop -u admin -p password_here -d tdb
在命令行界面指定明文密碼還是有一定的安全隱患,為了避免這樣的安全風險,*我們可以使用配置文件~/.mytop來指定連接到數據庫的選項。
# vi ~/.mytop
添加以下選項:
user=root
pass=password_here
host=localhost
db=test
delay=4
port=3306
socket=
二、mtop
mtop (MySQL top) 是另一個類似的開源、基于命令行的實時 MYSQL Server 監控工具,它是用Perl語言編寫的,它顯示的結果與mytop類似。mtop 監控花費最多時間完成的 MySQL 查詢,并在特定指定時間后終止那些長時間運行的查詢。
此外,mtop正在運行的查詢和終止查詢的查詢優化器信息,它還顯示服務器的統計信息、配置信息和一些有用的調優技巧,以優化和提高MySQL 性能但不幸的是mtop沒有得到積極維護,可能無法在新安裝的 MySQL 版本上運行。

功能:
- 顯示實時 MySQL 服務器查詢。
- 提供 MySQL 配置信息。
- 顯示過程查詢的縮放功能。
- 為查詢和“殺死”查詢提供查詢優化器信息。
- 提供 MySQL 調優技巧。
- 能夠將輸出保存在.mtoprc配置文件中。
- 提供系統管理員推薦頁面 (' T ')。
- 向主標題添加查詢/秒。
- 將每秒信息添加到統計屏幕。
三、Innotop
Innotop另一個不錯的基于命令行的mysql監控工具,它用于監控在InnoDB引擎下運行的本地和遠程 MySQL 服務器。Innotop 包含許多功能并帶有不同類型的模式/選項,這有助于我們監控 MySQL 性能的各個方面,以找出 MySQL 服務器出了什么問題。

1、 安裝 Innotop(MySQL 監控)
默認情況下, innotop包不包含在 Linux 發行版中,例如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 用戶統計
操作:
d 更改刷新間隔 p 暫停 innotop
k 終止查詢連接 q 退出 innotop
n 切換到下一個連接 x 終止查詢
其他:
TAB 切換到下一個服務器組/快速過濾您看到的內容
!顯示許可證和保修 = 切換聚合
# 選擇/創建服務器組 @ 選擇/創建服務器連接
$ 編輯配置設置 \ 清除快速過濾器
按任意鍵繼續
四、 mysqladmin
mysqladmin是一個默認的命令行 MySQL 客戶端,預裝在 MySQL 軟件包,用于執行管理操作,例如監控進程、檢查服務器配置、重新加載權限、當前狀態、設置 root 密碼、更改 root 密碼、創建/刪除數據庫等。
要檢查 mysql 狀態以及正常運行時間,請從終端運行以下命令,請確保你有root的權限。
[root ~]# mysqladmin -u root -p version

小結
mysql是最常見的一種輕量型數據庫,也是目前在市面上應用最廣泛的一種數據庫,所以懂得幾個mysql的調優工具非常必要,我個人比較推薦mytop和innotop。


























