共計 2626 個字符,預計需要花費 7 分鐘才能閱讀完成。
本篇內容介紹了“如何掌握 ps-top 用于 MySQL 的數據庫 top 工具”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
熟悉 Linux 的同學都很喜歡 top 命令,可以讓我們很方便快捷的一鍵獲取系統運行狀態。除了系統狀態,很多人可能也希望能一鍵獲得數據庫的運行狀態,很多人會用 show profile 或者 performance_schema 數據庫獲取各種信息。但是很方便和直接。
本文蟲蟲給大家介紹一個命令行工具 ps-top,可從 MySQL 5.6+ 的 performance_schema 數據庫中收集信息,并使用該信息實時顯示服務器負載。數據以表或文件名顯示,實時顯示在選擇,插入,更新或刪除活動時候信息情況; 視圖顯示用戶活動,顯示使用相同用戶名連接的不同主機的數量以及這些用戶的活動視圖; 關于互斥、鎖表和 sql 階段計時的統計信息視圖。
安裝
和一般的 golang 工具一樣,ps-top 安裝很簡單,直接用 go get 就可以下載、編譯,安裝好:
go get -u github.com/sjmudd/ps-top/cmd/ps-top 或 go get -u github.com/sjmudd/ps-top/cmd/ps-stats
這樣就會直接安裝下載工具及其依賴項,安裝后的二進制文件在 $GOPATH/bin/ 目錄。如果該路徑在系統 PATH 設置中,則無需指定任何特定路徑即可直接運行程序。
訪問 MySQL
可以通過以下方法之一訪問 MySQL:
默認使用文件~/.my.cnf。
制定 cnf 文件,通過 –defaults-file=/path/to/.my.cnf。
使用 –host=somehost –port=999 –user=someuser –password=somepass 連接到主機
通過本機 socket 連接 –socket=/path/to/mysql.sock –user=someuser –password=somepass
如果未指定,則用戶默認為的內容 $USER。如果未指定端口,則默認為 3306。
可以通過命令行選項 –use-environment ps-top 或者 ps-stats,則在環境變量中查找 MYSQL_DSN 的賬號信息去連接 Mysql。MYSQL_DSN 格式為式:
user:pass@tcp(host:port)/performance_schema
這樣就避免在命令行中直接顯示賬號和密碼,防止信息泄露。
MySQL/MariaDB 配置
performance_schema 數據庫必須配置為支持 ps-top。默認情況下,在 MySQL 上會啟用此功能。MariaDB = 10.0.12 上則禁用此功能。因此,需額外配置啟用,在 /etc/my.cnf 中,設置:
performance_schema = 1
然后重新啟動 MariaDB 才能生效。
ps-top 和 ps-stats 需要問 performance_schema 表的 SELECT 權限。如果無法訪問所需表,它們將不會運行。
setup_instruments:查看 mutex_latency 或 stages_latency 根據需要修改改配置,保證用戶有權限執行此操作。如果服務器,–read-only 或者沒有足夠的權限來更改這些表,則這些視圖可能為空。如果在啟動時成功更新了表,則停止 ps-top 之前,該 setup_instruments 配置會將其恢復為原始設置。
視圖
ps-top 和 ps-stats 可以顯示 7 個不同的數據視圖,這些視圖默認情況下每秒更新一次。這 7 個視圖為:
table_latency:表等待執行操作的時間顯示活動。
table_ops:按 MySQL 執行的活動數顯示活動。
file_io_latency:顯示 MySQL 在文件 I / O 上花費的時間。
table_lock_latency:根據表鎖顯示順序
user_latency:根據用戶運行查詢的時間或用戶與 MySQL 的連接數顯示排序。它提供了一些信息,還顯示了總的空閑時間,因為這表明可能有過長的空閑查詢,如果有堆積,這里的值之和可能很有趣。
mutex_latency:按互斥鎖延遲顯示排序。
SQL Stages_latency:在不同的 SQL 查詢階段中按時間顯示排序。
可以更改輪詢間隔并在模式之間進行切換。
快捷鍵
在 ps-top 模式下,以下按鍵可以讓 ps-top 在不同模式瀏覽或更改其行為。
h ?:顯示幫助。
middot; 將輪詢間隔減少 1 秒(最少 1 秒)
+ 將輪詢間隔增加 1 秒
q- 退出
t:在顯示自重置 ps-top 開始以來顯示統計信息或您顯式重置它們 (使用 z)[REL] 或顯示從 MySQL 收集的統計信息之間切換[ABS]。
z:重置統計信息。那就是您看到的與 重置 統計信息有關的計數器。
:更改顯示模式:延遲,操作,文件 I /O,鎖定,用戶,互斥,階段和存儲模式。
左箭頭:切換到上一個屏幕
向右箭頭:切換至下一個屏幕
標準輸出模式
ps-stats 和,ps-top 都具有與相同的視圖輸出,會定時發送到 stdout。默認視圖為 table_io_latency。可以使用與 vmstat 相同的方法來調整收集間隔和收集數據的次數。第一個參數是 delay(默認為 1 秒),第二個參數是要進行的迭代次數,如果未提供,則為一直運行。該模式旨在用于使用 stdout 作為輸出媒體來監視 ps-top 并從中收集數據。

相關的命令行選項包括:
–count=
限制迭代次數(默認值:永久運行)
–interval=
設置默認輪詢間隔(以秒為單位)
–limit=
限制輸出的行數(不包括標題)
–stdout 將輸出發送到 stdout(不是屏幕)
–view=
確定要在 ps- 時查看的視圖頂部開始 (默認:table_io_latency) 可能的值:table_io_latency,table_io_ops,file_io_latency,table_lock_latency, user_latency,mutex_latency 和 stages_latency。
–totals 僅顯示總計行,而不顯示明細。
“如何掌握 ps-top 用于 MySQL 的數據庫 top 工具”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!