麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 基礎知識 > 正文

Thread pool參數引起的程序連接數據庫響應慢

2024-09-12 20:29:58
字體:
來源:轉載
供稿:網友
  在很長一段時間,都會出現程序連接數據庫,出現響應慢的情況,正常在幾到幾十毫秒之間,但是偶爾會出現上百毫秒的情況;
 
  開始由于開發重新設置并調整過程序連接池,一直懷疑是連接池的問題,但是問題依舊;
 
  因為使用的版本是percona-mysql 5.6.16 并且使用了數據庫連接池。
  Thread Pool根據參數thread_pool_size被分為若干個group,每個group維護client 發起的 connections,當MySQL建立 connection 時,
  MySQL 根據connection的thread id 對thread_pool_size取模,將connection 發起的sql 語句分配到對應的group。每個group的最大worker
  數量為thread_pool_oversubscribe+1。若worker達到最大數量后還是不足以處理回話請求,則連接在本group上等待,導致sql 語句的rt 增大;
 
  因此將thread_pool_oversubscribe參數調大,但是問題依舊;
 
  檢查thread_cache_size,服務器內存大小為64G,thread_cache_size=128;
  每建立一個連接,都需要一個線程來與之匹配,此參數用來緩存空閑的線程,以至不被銷毀,如果線程緩存中有空閑線程,這時候如果建立新連接,MYSQL就會很快的響應連接請求;
 
  show status like '%thread%';
  Variable_name Value
  Threads_cached     0
  Threads_connected   219
  Threads_created     655068
  Threads_running     48
 
  使用 show status查看當前mysql連接情況:
 
  SHOW STATUS WHERE Variable_name LIKE '%Thread%';

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

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

  Threads_created :代表從最近一次服務啟動,已創建線程的數量。

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

  最好將thread_cache_size設置成與threads_connected一樣。

  show variables like '%thread%';
  +-----------------------------------------+-----------------+
  | Variable_name                           | Value           |
  +-----------------------------------------+-----------------+
  | innodb_purge_threads                    | 1               |
  | innodb_read_io_threads                  | 4               |
  | innodb_thread_concurrency               | 0               |
  | innodb_thread_sleep_delay               | 10000           |
  | innodb_write_io_threads                 | 4               |
  | max_delayed_threads                     | 20              |
  | max_insert_delayed_threads              | 20              |
  | myisam_repair_threads                   | 1               |
  | performance_schema_max_thread_classes   | 50              |
  | performance_schema_max_thread_instances | -1              |
  | pseudo_thread_id                        | 8735851         |
  | thread_cache_size                       | 128             |
  | thread_concurrency                      | 24              |
  | thread_handling                         | pool-of-threads |
  | thread_pool_high_prio_mode              | transactions    |
  | thread_pool_high_prio_tickets           | 4294967295      |
  | thread_pool_idle_timeout                | 60              |
  | thread_pool_max_threads                 | 100000          |
  | thread_pool_oversubscribe               | 40              |
  | thread_pool_size                        | 12              |
  | thread_pool_stall_limit                 | 500             |
  | thread_stack                            | 262144          |
  | thread_statistics                       | OFF             |
  +-----------------------------------------+-----------------+
  
  可以不斷刷新,如果Threads_cached = 0 且 Threads_created 不斷增大,那么當前thread_cache_size的值設置要改大,改到 Threads_connected 值左右,
  再結合物理內存 1G  —> 8;2G  —> 16; 3G  —> 32; >3G  —> 64 二個情況綜合考慮一下值,將thread_cache_size改為512;
  注譯:
  Threads_cached :代表當前此時此刻線程緩存中有多少空閑線程。
  Threads_connected :代表當前已建立連接的數量,因為一個連接就需要一個線程,所以也可以看成當前被使用的線程數。
  Threads_created :代表從最近一次服務啟動,已創建線程的數量。
  Threads_running :代表當前激活的(非睡眠狀態)線程數。并不是代表正在使用的線程數,有時候連接已建立,但是連接處于sleep狀態,這里相對應的線程也是sleep狀態。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人午夜视频网站 | 久久久久久久亚洲视频 | 91麻豆精品国产91久久久点播时间 | 国产精品视频一区二区噜噜 | 毛片网站网址 | 免费a视频在线观看 | 亚洲网站在线 | 日日草夜夜操 | 黄色香蕉视频 | 吾色视频| 美女网站黄在线观看 | 视频一区二区三区在线观看 | 99精品视频一区二区三区 | 99精品视频久久精品视频 | sese在线视频| 成人三级电影网站 | 在线观看视频亚洲 | 久久亚洲网 | 羞羞视频免费视频欧美 | 在线观看免费av网 | 久久人人av | 久久久一区二区 | 欧美一级黄色免费 | 福利免费观看 | 一区二区三区无码高清视频 | 精品国产一区二区三区久久久狼牙 | 国产99久久久久久免费看农村 | 久久午夜神器 | av电影免费播放 | 看片一区二区三区 | 欧美大电影免费观看 | 美女91视频 | 黄污在线观看 | 91成人天堂久久成人 | 黄色成人小视频 | 91午夜视频 | 99麻豆久久久国产精品免费 | 狠狠久久 | 亚洲操比视频 | 国产高潮失禁喷水爽到抽搐视频 | 国产乱淫a∨片免费视频 |