Mysql 檢視連線數,狀態 最大併發數 && 怎麼設定才合理
show status like '%max_connections%'; ##mysql最大連線數 set global max_connections=1000 ##重新設定 show variables like '%max_connections%'; ##查詢資料庫當前設定的最大連線數 show global status like 'Max_used_connections'; ##伺服器響應的最大連線數 show status like 'Threads%'; Variable_name Value Threads_cached 0 ##mysql管理的執行緒池中還有多少可以被複用的資源 Threads_connected 152 ##開啟的連線數 Threads_created 550 ##表示建立過的執行緒數,如果發現Threads_created值過大的話,表明MySQL伺服器一直在建立執行緒,這也是比較耗資源,可以適當增加配置檔案中thread_cache_size值,查詢伺服器 Threads_running 1 ##啟用的連線數,這個數值一般遠低於connected數值,準確的來說,Threads_running是代表當前併發數 show variables like 'thread_cache_size'; set global thread_cache_size=60;
MySQL伺服器的連線數並不是要達到最大的100%為好,還是要具體問題具體分析,下面就對MySQL伺服器最大連線數的合理設定進行了詳盡的分析,供您參考。
我們經常會遇見“MySQL: ERROR 1040: Too many connections”的情況,一種是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力,
另外一種情況是MySQL配 置檔案中max_connections值過小:
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 256 | +
-----------------+-------+
這臺MySQL伺服器最大連線數是256,然後查詢一下伺服器響應的最大連線數:
mysql> show global status like 'Max_used_connections';
MySQL伺服器過去的最大連線數是245,沒有達到伺服器連線數上限256,應該沒有出現1040錯誤,比較理想的設定是: Max_used_connections / max_connections * 100% ≈ 85%
最大連線數占上限連線數的85%左右,如果發現比例在10%以下,MySQL伺服器連線上線就設定得過高了。
----------------------------------------------------------------------------------------------------
https://cloud.tencent.com/developer/article/1081708
如果遇見“MySQL:ERROR 1040:Too manyconnec-tions”的情況
一種情況是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力了
另外一種情況是MySQL配置檔案中max_connections的值過小
來看一個例子:
(1)檢視下MySQL配置的最大連線數
mysql> show variables like 'max_connections';
這臺MySQL伺服器的最大連線數是100
(2)查詢一下該伺服器曾經響應過的最大連線數:
mysql> show global status like 'Max_used_connections';
實際中出現過的最大連線數是68,沒有達到上限100,應該不會出現1040錯誤
連線數理想的設定是:
Max_used_connections / max_connections * 100% ≈ 85%
即最大連線數占上限連線數的85%左右