本文實例講述了MySQL服務器線程數的查看方法。,具體如下:
mysql重啟命令:
/etc/init.d/mysql restart
MySQL服務器的線程數需要在一個合理的范圍之內,這樣才能保證MySQL服務器健康平穩地運行。Threads_created表示創建過的線程數,通過查看Threads_created就可以查看MySQL服務器的進程狀態。
mysql> show global status like 'Thread%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 46 |
| Threads_connected | 2 |
| Threads_created | 570 |
| Threads_running | 1 |
+-------------------+-------+
如果我們在MySQL服務器配置文件中設置了thread_cache_size,當客戶端斷開之后,服務器處理此客戶的線程將會緩存起來以響應下一個客戶而不是銷毀(前提是緩存數未達上限)。
Threads_created表示創建過的線程數,如果發現Threads_created值過大的話,表明MySQL服務器一直在創建線程,這也是比較耗資源,可以適當增加配置文件中thread_cache_size值,查詢服務器
thread_cache_size配置:
mysql> show variables like 'thread_cache_size';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| thread_cache_size | 64 |
+-------------------+-------+
示例中的服務器還是挺健康的。
解析MySQL與連接數相關的幾個參數
MySQL的variables和status是管理維護的利器,就類似Oracle的spfile和v$表。
MySQL通過系統變量記錄很多配置信息,比如最大連接數max_connections:
mysql> show variables like '%connect%';
+--------------------------+-----------------+
| Variable_name | Value |
+--------------------------+-----------------+
| character_set_connection | utf8 |
| collation_connection | utf8_general_ci |
| connect_timeout | 10 |
| init_connect | SET NAMES utf8 |
| max_connect_errors | 10 |
| max_connections | 200 |
| max_user_connections | 0 |
+--------------------------+-----------------+
7 rows in set (0.00 sec)
這 個參數是指同時連接上來的客戶端數量,在5.1版本里默認的值是151,那么實際支持的連接數是這個值加一,也就是152,因為要為系統管理員登錄上來查 看信息保留一個連接。這個參數的大小要綜合很多因素來考慮,比如使用的平臺所支持的線程庫數量(windows只能支持到2048)、服務器的配置(特別 是內存大小)、每個連接占用資源(內存和負載)的多少、系統需要的響應時間等。一般Linux系統支持到幾百并發是沒有任何問題的。可以在global或 session范圍內修改這個參數: