日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
程序連接數(shù)據(jù)庫響應(yīng)慢!是Threadpool參數(shù)搗的鬼嗎?

 

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、贛州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為贛州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

數(shù)據(jù)庫版本:percona-mysql 5.6.16

在很長一段時間,都會出現(xiàn)程序連接數(shù)據(jù)庫,出現(xiàn)響應(yīng)慢的情況,正常在幾到幾十毫秒之間,但是偶爾會出現(xiàn)上百毫秒的情況;

開始由于開發(fā)重新設(shè)置并調(diào)整過程序連接池,一直懷疑是連接池的問題,但是問題依舊;

因為使用的版本是 percona-mysql 5.6.16 并且使用了數(shù)據(jù)庫連接池。

Thread Pool 根據(jù)參數(shù) thread_pool_size 被分為若干個 group, 每個 group 維護 client 發(fā)起的 connections, 當(dāng) MySQL 建立 connection 時, 

MySQL 根據(jù) connection 的 thread id 對 thread_pool_size 取模, 將 connection 發(fā)起的 sql 語句分配到對應(yīng)的 group。每個 group 的*** worker

數(shù)量為 thread_pool_oversubscribe+1。若 worker 達(dá)到***數(shù)量后還是不足以處理回話請求, 則連接在本 group 上等待, 導(dǎo)致 sql 語句的 rt 增大;

因此將 thread_pool_oversubscribe 參數(shù)調(diào)大,但是問題依舊;

檢查 thread_cache_size,服務(wù)器內(nèi)存大小為 64G,thread_cache_size=128;

每建立一個連接,都需要一個線程來與之匹配,此參數(shù)用來緩存空閑的線程,以至不被銷毀,如果線程緩存中有空閑線程,這時候如果建立新連接,MYSQL 就會很快的響應(yīng)連接請求;

 
 
 
 
  1. show status like '%thread%'; 
  2.  
  3. Variable_name Value 
  4.  
  5. Threads_cached     0 
  6.  
  7. Threads_connected   219 
  8.  
  9. Threads_created     655068 
  10.  
  11. Threads_running     48 

使用 show status 查看當(dāng)前 mysql 連接情況:

 
 
 
 
  1. SHOW STATUS WHERE Variable_name LIKE '%Thread%'; 

Threads_cached : 代表當(dāng)前此時此刻線程緩存中有多少空閑線程。

Threads_connected : 代表當(dāng)前已建立連接的數(shù)量,因為一個連接就需要一個線程,所以也可以看成當(dāng)前被使用的線程數(shù)。

Threads_created : 代表從最近一次服務(wù)啟動,已創(chuàng)建線程的數(shù)量。

Threads_running : 代表當(dāng)前激活的(非睡眠狀態(tài))線程數(shù)。并不是代表正在使用的線程數(shù),有時候連接已建立,但是連接處于 sleep 狀態(tài),這里相對應(yīng)的線程也是 sleep 狀態(tài)。

***將 thread_cache_size 設(shè)置成與 threads_connected 一樣。

 
 
 
 
  1. show variables like '%thread%'; 
  2.  
  3. +-----------------------------------------+-----------------+ 
  4.  
  5. | Variable_name                           | Value           | 
  6.  
  7. +-----------------------------------------+-----------------+ 
  8.  
  9. | innodb_purge_threads                    | 1               | 
  10.  
  11. | innodb_read_io_threads                  | 4               | 
  12.  
  13. | innodb_thread_concurrency               | 0               | 
  14.  
  15. | innodb_thread_sleep_delay               | 10000           | 
  16.  
  17. | innodb_write_io_threads                 | 4               | 
  18.  
  19. | max_delayed_threads                     | 20              | 
  20.  
  21. | max_insert_delayed_threads              | 20              | 
  22.  
  23. | myisam_repair_threads                   | 1               | 
  24.  
  25. | performance_schema_max_thread_classes   | 50              | 
  26.  
  27. | performance_schema_max_thread_instances | -1              | 
  28.  
  29. | pseudo_thread_id                        | 8735851         | 
  30.  
  31. | thread_cache_size                       | 128             | 
  32.  
  33. | thread_concurrency                      | 24              | 
  34.  
  35. | thread_handling                         | pool-of-threads | 
  36.  
  37. | thread_pool_high_prio_mode              | transactions    | 
  38.  
  39. | thread_pool_high_prio_tickets           | 4294967295      | 
  40.  
  41. | thread_pool_idle_timeout                | 60              | 
  42.  
  43. | thread_pool_max_threads                 | 100000          | 
  44.  
  45. | thread_pool_oversubscribe               | 40              | 
  46.  
  47. | thread_pool_size                        | 12              | 
  48.  
  49. | thread_pool_stall_limit                 | 500             | 
  50.  
  51. | thread_stack                            | 262144          | 
  52.  
  53. | thread_statistics                       | OFF             | 
  54.  
  55. +-----------------------------------------+-----------------+ 

可以不斷刷新,如果 Threads_cached = 0 且 Threads_created 不斷增大,那么當(dāng)前 thread_cache_size 的值設(shè)置要改大,改到 Threads_connected 值左右,

再結(jié)合物理內(nèi)存 1G  —> 8;2G  —> 16; 3G  —> 32; >3G  —> 64 二個情況綜合考慮一下值, 將 thread_cache_size 改為 512;

注譯:

Threads_cached : 代表當(dāng)前此時此刻線程緩存中有多少空閑線程。

Threads_connected : 代表當(dāng)前已建立連接的數(shù)量,因為一個連接就需要一個線程,所以也可以看成當(dāng)前被使用的線程數(shù)。

Threads_created : 代表從最近一次服務(wù)啟動,已創(chuàng)建線程的數(shù)量。

Threads_running : 代表當(dāng)前激活的(非睡眠狀態(tài))線程數(shù)。并不是代表正在使用的線程數(shù),有時候連接已建立,但是連接處于 sleep 狀態(tài),這里相對應(yīng)的線程也是 sleep 狀態(tài)。

修改 thread_cache_size 為 512 后,重新測試程序連接數(shù)據(jù)庫響應(yīng)時間,速度極快,不再出現(xiàn)程序連接數(shù)據(jù)庫響應(yīng)慢的情況!


文章題目:程序連接數(shù)據(jù)庫響應(yīng)慢!是Threadpool參數(shù)搗的鬼嗎?
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/cdsccgh.html