婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL thread_stack連接線程的優化

MySQL thread_stack連接線程的優化

熱門標簽:安國在哪里辦理400電話 電銷機器人說明書 昆明智能外呼系統中心 智能電銷機器人靠譜么 手機用地圖標注工具 電銷機器人公眾號推送 長安區違法建房地圖標注 地圖標注培訓 南宋地圖標注黃河華山

MySQL連接不僅能通過網絡方式,還可以通過命名管道的方式,不論是哪種方式連接MySQL,在MySQL中都是通過線程的方式管理所有客戶端請求的。每一個客戶端連接都會有一個與之對應的連接線程。在MySQL中實現了一個Thread Cache池,將空閑的連接線程存放其中,而不是完成請求后就銷毀。這樣,當有新的連接請求時,MySQL首先會檢查Thread Cache中是否存在空閑連接線程,如果存在則取出來直接使用,如果沒有空閑連接線程,才創建新的連接線程。具體參數:
Thread_cache_size:Thread Cache池中應該存放的連接線程數。
Thread_stack:每個連接線程被創建時,MySQL給它分配的內存大小。當MySQL創建一個新的連接線程時,需要給它分配一定大小的內存堆棧空間,以便存放客戶端的請求的Query及自身的各種狀態和處理信息。
查看連接線程相關的系統變量的設置值: show variables like 'thread%';

mysql> show variables like 'thread%';
+-------------------+--------+
| Variable_name | Value |
+-------------------+--------+
| thread_cache_size | 32 |
| thread_stack | 196608 |
+-------------------+--------+
2 rows in set (0.00 sec)

如圖,系統設置了Thread Cache池最多將緩存25個連接線程,每個連接線程創建之初,系統分配192KB的內存堆棧給它。
查看系統被連接的次數及當前系統中連接線程的狀態值

mysql> show status like 'connections';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections | 620 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show status like '%thread%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| Delayed_insert_threads | 0 |
| Slow_launch_threads | 0 |
| Threads_cached | 3 |
| Threads_connected | 4 |
| Threads_created | 7 |
| Threads_running | 1 |
+------------------------+-------+
6 rows in set (0.00 sec)

系統啟動到現在共接受到客戶端的連接620次,共創建了7個連接線程,當前有1個連接線程處于和客戶端連接的狀態,而3個連接狀態的線程中只有一個處于 active 狀態,即只有一個正在處理客戶端提交的請求,。而在Thread Cache池中共緩存了3個連接線程。

Thread Cache 命中率:
Thread_Cache_Hit = (Connections - Threads_created) / Connections * 100%;
一般在系統穩定運行一段時間后,Thread Cache命中率應該保持在90%左右才算正常。

實際應用:

針對16G/32G的機器,一般設置 512K

當然如果遇到下面的錯誤提示就應該考慮增加這個值了。

mysql-debug: Thread stack overrun

bug info

報錯信息:
java.sql.SQLException: Thread stack overrun: 5456 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.

官方相應信息:

The default (192KB) is large enough for normal operation. If the thread stack size is too small, it limits the complexity of the SQL statements that the server can handle, the recursion depth of stored procedures, and other memory-consuming actions

可以使用

show variables where `variable_name` = 'thread_stack';

查詢當前數據庫的默認線程棧的大小,一般情況下都能正常使用,但是當查詢語句或者存儲過程復雜時會報Thread stack overrun錯誤,此時只要修改默認配置就可以。

解決

windows: 修改mysql安裝目錄下的my-small.ini或者my.ini設置為256k,或者更大,然后重啟服務

[mysqld]
thread_stack = 256k
linux: 同樣要修改配置文件,但是!!!,不是安裝目錄下的配置文件,是/etc/my.cnf,只有這個文件才能生效,然后重啟服務service mysql restart

[mysqld]
thread_stack = 256k

您可能感興趣的文章:
  • MySQL性能優化配置參數之thread_cache和table_cache詳解
  • Mysql Error Code : 1436 Thread stack overrun
  • mysql -參數thread_cache_size優化方法 小結
  • Mysql優化調優中兩個重要參數table_cache和key_buffer
  • MySQL高速緩存啟動方法及參數詳解(query_cache_size)
  • MySQL性能優化之table_cache配置參數淺析
  • mysql優化的重要參數 key_buffer_size table_cache
  • 優化mysql之key_buffer_size設置
  • mysql Key_buffer_size參數的優化設置

標簽:江門 東莞 長沙 武漢 潛江 合肥 南昌 吉安

巨人網絡通訊聲明:本文標題《MySQL thread_stack連接線程的優化》,本文關鍵詞  MySQL,thread,stack,連接,線程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL thread_stack連接線程的優化》相關的同類信息!
  • 本頁收集關于MySQL thread_stack連接線程的優化的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 迭部县| 于都县| 武威市| 石渠县| 甘肃省| 石河子市| 绩溪县| 京山县| 汶上县| 焉耆| 青冈县| 游戏| 邓州市| 通道| 老河口市| 张家川| 南丰县| 乐至县| 富顺县| 商水县| 三河市| 巩留县| 德江县| 高淳县| 越西县| 武夷山市| 华容县| 广饶县| 房山区| 锦屏县| 板桥市| 麦盖提县| 米脂县| 贵港市| 新和县| 和田县| 宜丰县| 马鞍山市| 绥德县| 阜城县| 上犹县|