MariaDB中的thread pool解讀
使用Threadpool的好處
使用線程代理的模型在連接數(shù)已知可控的情況下,提前創(chuàng)建好過線程并利用操作系統(tǒng)的threadpool技術(shù)維護(hù),能減少很多開銷。
盡可能的使用操作系統(tǒng)的線程方面的管理,把線程管理開銷降到***。 3. 利用thread_pool_max_threads控制資源使用什么情況下Thread Pool作用比較?。?/p>
并發(fā)太高及有長的語句操作?!∪纾簝?nèi)部threadpool的總數(shù)為:10個,外面并發(fā)來了1000個請求,現(xiàn)在都來爭用這10個內(nèi)部線程,這個開銷也比較重。同樣道理加大threadpool后,innodb內(nèi)部的并發(fā)也會受到限制。
突發(fā)的大量連接。這個情況下threadpool還有一定的作用,但是效果不明顯了。如果為了防止大量的連接進(jìn)來??梢钥紤]增加thread_pool_min_threads及thread_pool_idle_timeout的值,讓平時(shí)也維護(hù)一個大的threadpool高并發(fā)的環(huán)境,有可能簡單的查詢也會變慢。雖然select 1;這樣的查詢很簡單應(yīng)該會很快完成。但在threadpool的下面也需要排隊(duì)等待從theadpool得到可用的線程才能執(zhí)行。
使用方法:
目前支持threadpool的有MariaDB, Percona, 官方MySQL的一個收費(fèi)功能。配置啟用。
在my.cnf
- [mysqld]
- #thread pool
- thread_handling=pool-of-threads
- thread_pool_max_threads=300
- thread_pool_size=64