自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

程序連接數(shù)據(jù)庫響應(yīng)慢!是Thread pool參數(shù)搗的鬼嗎?

數(shù)據(jù)庫 MySQL
在很長一段時間,都會出現(xiàn)程序連接數(shù)據(jù)庫,出現(xiàn)響應(yīng)慢的情況,正常在幾到幾十毫秒之間,但是偶爾會出現(xiàn)上百毫秒的情況;修改thread_cache_size參數(shù)后,重新測試程序連接數(shù)據(jù)庫響應(yīng)時間,速度極快,不再出現(xiàn)程序連接數(shù)據(jù)庫響應(yīng)慢的情況!

 程序連接數(shù)據(jù)庫響應(yīng)慢!是Thread pool參數(shù)搗的鬼嗎?

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

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

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

[[214120]]

因為使用的版本是 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)大,但是問題依舊;

[[214121]]

檢查 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)慢的情況! 

責(zé)任編輯:龐桂玉 來源: ITPUB
相關(guān)推薦

2023-08-29 07:35:15

2010-10-12 12:00:42

MySQL連接

2009-07-06 17:23:34

JDBC連接數(shù)據(jù)庫

2011-03-16 17:14:17

JavaBean數(shù)據(jù)庫

2009-07-17 15:34:37

Java Swing連接數(shù)據(jù)庫

2009-03-19 10:08:09

C#數(shù)據(jù)庫查詢

2011-07-05 09:54:04

2009-07-16 11:04:17

Jython連接數(shù)據(jù)庫

2009-08-25 14:05:06

C#連接數(shù)據(jù)庫代碼

2009-07-14 17:18:23

JDBC怎么連接數(shù)據(jù)庫

2009-07-20 15:56:08

JDBC連接數(shù)據(jù)庫步驟

2010-08-04 10:32:56

Flex連接數(shù)據(jù)庫

2011-12-05 10:43:54

JavaJDBC數(shù)據(jù)庫

2010-05-25 18:21:28

MySQL連接數(shù)據(jù)庫

2011-04-18 09:29:40

數(shù)據(jù)庫連接數(shù)

2009-08-18 11:23:11

2019-03-27 14:41:41

Python數(shù)據(jù)庫Windows

2009-06-15 15:26:00

NetBeans連接數(shù)使用JSTL

2009-09-04 17:49:34

C#連接數(shù)據(jù)庫

2009-07-20 14:30:38

jdbc連接數(shù)據(jù)庫代碼
點贊
收藏

51CTO技術(shù)棧公眾號