mysql5.6 thread pool


從percona 的壓測來看,確實很牛筆啊。提升很大。

http://www.mysqlperformanceblog.com/2014/01/29/percona-server-thread-pool-improvements/

當然,他指出目前mysql5.6 有2套thread pool ,一套是mysql企業版里面的,另外一套是maridb 的開發人員實現的,percona 在這個基礎上又完善了一些,目前在percona mysql 里面可以直接用了。特別想應用一下。



 

2014年2月3日 15:03:19 

但是我用實際測了一下,用的是percona 的tpcc 工具。線程開到400,500 的時候,就已經不行了。。pc 還不大好測試,一共2g內存。每個thread 都是有內存開銷的。

之前tpcc 的帖子幸好還有。http://www.cnblogs.com/gqdw/p/3187394.html

mysql tpcc<create_table.sql
mysql  tpcc<add_fkey_idx.sql
./tpcc_load localhost tpcc root "" 5

./tpcc_start -hlocalhost -dtpcc1000 -uroot -w5 -c16 -r10 -l200

  線程開到400,很多都是sleep的,即使開了thread pool 也沒用。有時間到服務器上測一下。

AMD Athlon(tm) X2 240 Processor 這個cpu 2g 內存,


innodb_buffer_pool_size = 500M
#thread_handling=pool-of-threads
innodb_flush_log_at_trx_commit=2
max_connections=2000

能跑6000tpmc

表示每分鍾能處理大概3000個訂單的事物。每秒就是50個訂單。

 

 



2014-02-04 10:01:55

發現之前對thread pool的認識是不對的,他其實不是一個直接提升性能的東西,

我們知道mysql 一般的模型是一個線程對應一個client 請求,當並發超過一定限度時,線程就互相爭用系統資源,就比如cpu 100%了以后,你再多的client去連都是沒用的,性能反而會直線下降。

就如這張圖上的,直線下降。而用了thread pool 以后呢,控制連接數,剩下的放到pool 里面或者在外面等待,這樣就不超系統的極限,性能得到了保證。

 

 

add 2014-02-04 23:15:39

又對服務器測了一下,8核的,12g內存。

發現最多能跑到4w tpmc 。很不錯的成績。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM