MySQL基准測試--innodb_buffer_pool_instances


http://blog.chinaunix.net/uid-26896862-id-3345441.html

目的

         根據現有硬件環境下,測試MySQL單實例下,在數據量小於innodb_buffer_pool_size大小的情況下,innodb_buffer_pool_instances的值對MySQL數據庫的性能影響。

實驗測試環境

1、實驗測試硬件環境

 

Summary:        Dell R620, 1 x Xeon E5-2630 0 2.30GHz, 63GB / 64GB 1600MHz DDR3

System:         Dell PowerEdge R620 (Dell 036FVD)

Processors:     1 (of 2) x Xeon E5-2630 0 2.30GHz 7200MHz FSB (HT enabled, 6 cores, 24 threads)

Memory:         63GB / 64GB 1600MHz DDR3 == 8 x 8GB, 16 x empty

 

2、實驗測試軟件環境

         實驗測試的軟件環境主要包括,操作系統、MySQL數據庫以及測試工具,具體內容如下:

操作系統:

CentOS 6.2 (Final), Linux 2.6.32-220.23.1.el6.x86_64 x86_64, 64-bit

MySQL版本:Percona Server 5.5.20

         TPC-C測試工具:tpcc-mysql

         其中TPC-C測試工具的安裝和使用說明文檔參照相關內容。

測試方案

         實驗方案為單機單實例,探索MySQL在數據量小於參數innodb_buffer_pool_size的值時,innodb_buffer_pool_instances參數對MySQL性能的影響。主要測試方案如下:

         單機單實例主要測試隨着innodb_buffer_pool_instances的變化,其他參數不變的情況下,MySQL性能的影響。innodb_buffer_pool_size的大小為55G,約占內存的86%。數據量為200warehouse,數據大小大約為20G。具體如下:

 

測試

innodb_buffer_pool_instances的值

1

1

2

2

3

4

4

8

 

         測試的參數具體如下所示:

 

Parameters

Value

[warehouse]

200

[connection]

16

[rampup]

3600 (sec.)

[measure]

1800 (sec.)

 

測試

測試結果如下所示:

 

Innodb_buffer_pool_size大小(G)

200W吞吐量(tpmc)

1

18337.033

2

18589.400

4

18042.867

8

17935.199

 

         通過以上測試結果可知,在測試數據為200Warehouse時,數據大小大約占innodb_buffer_pool_size的1/3。此時,innodb_buffer_pool_instances為2時,MySQL的性能相對較高,而隨着innodb_buffer_pool_instances的增大,MySQL的性能反而有所降低。但總體來看,對數據庫的性能影響不大。

結論

         innodb_buffer_pool_instances的值主要用於將innodb buffer pool進行划分,通過划分innodb buffer pool為多個實例,可以提高並發能力,並且減少了不同線程讀寫造成的緩沖頁。每一頁從其中一個buffer pool中使用hash函數隨機的讀取和寫入。每個buffer pool管理和維護各自的信息,包括free lists、flush lists、LRUs等。 

從以上測試可知,隨着innodb_buffer_pool_instances的增加,MySQL的性能在划分的每個innodb buffer 的大小與測試的數據大小基本一致時,MySQL的性能最優。然而從測試結果來看,innodb_buffer_pool_instances對MySQL的性能並沒有較大的提高。因此,對該參數的設置,仍然需要進一步的測試,需要謹慎設置。

參考:

1、MySQL 5.5 Reference Manual:

http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_buffer_pool_instances


免責聲明!

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



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