閱讀567 返回首頁    go 阿裏雲 go 技術社區[雲棲]


omega監控係列之connection

背景

  • 什麼是omega
簡單說就是一個平台, 運維和運營為一體的智能DB管理平台

所有DB相關的事情都能通過此平台 完成->自助完成->智能完成

目前知道這個就夠了,其他的以後慢慢介紹
  • 為什麼要介紹omega係統裏麵的connection
1. 因為我們這邊業務使用PHP是主流,短連接非常多,經常會遇到connection和thread的問題,所以關注比較多

2. 另一方麵,我們omega係統提供了一套完整的connection和thread監控,但是裏麵有一些專業術語
很多人並不知道【包括一些DBA自己】

3. 既然不明白裏麵的參數,那麼肯定也就不知道這樣的監控有何意義,又有何實戰價值,所以稍微普及一下。

omega:connection視圖

omega_connection

  • 官方解釋
name desc
Connections The number of connection attempts (successful or not) to the MySQL server
abort_clients The number of connections that were aborted because the client died without closing the connection properly
abort_connects The number of failed attempts to connect to the MySQL server

官方的東東,比較拗口,我知道你看不懂,所以看下麵的實戰。

  • 實戰意義

以上三個參數都是累積值,omega裏麵的單位平均每秒多少多少

[Connections]

重點一:表示一分鍾內平均嚐試連接到mysql server的次數。
重點二:這裏麵的連接數包括成功的連接,也包括失敗的連接,大部分人這裏不是很清楚。

[abort_clients]

1)客戶端已經成功創建連接,但是後來斷開了。

2)如果這個值逐漸增大,那麼說明什麼問題呢?

a)wait_timeout 超時,mysql自動kill掉連接
b) 客戶端由於某些原因被幹掉

總之:就是已經創建好了連接,由於某種原因斷開掉了。

[abort_connects]

1) 客戶端沒有創建連接,在嚐試建立連接的時候失敗了。

2) 如果這個值逐漸增大,有哪些可能的原因呢?

a) too many connection 已經發生
b) 權限,端口,密碼等等錯誤,導致不能創建連接的情況
c)客戶端設置了connect_timeout等造成的連接不上,網絡問題。

總之,就是有很多種原因導致沒有成功的創建連接

omega:thread視圖

omega_thread

  • 官方解釋
name desc
threads_connected The number of currently open connections.
threads_running The number of threads that are not sleeping.
threads_sleep 我自己yy的,意思是The number of threads that are sleeping.
  • 實戰意義

以上三個值是瞬間值

[threads_connected]

show processlist裏麵看到的數量就是這個值

[threads_running]

非sleep的連接,如果這個值非常高,說明SQL卡住了或者SQL非常慢,高並發的SQL非常多,通常伴隨著cpu,io非常高等特點

[threads_sleep]

sleep的連接,就是該thread不幹任何事,一旦這樣的數值特別大,說明某些業務哪裏占了連接不釋放,或者其他服務緩慢有問題,導致鏈接不釋放,一般我們的做法就是讓MySQL自動關閉這樣的連接,保護數據庫。

總結

至此,上麵的參數和status解釋完畢,上麵狀態的各種組合常常能夠反映出各種問題,可以幫助DBA快速定位問題,各位可以嚐試下,誰用誰知道。

好了,最後給大家出一個問題思考下:上麵第一個截圖代表啥意思呢?

最後更新:2017-04-07 21:25:10

  上一篇:go Copycat - command
  下一篇:go 淺談android hook技術