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
MySQL基准测试--innodb_buffer_pool_instances的更多相关文章
- 详解MySQL基准测试和sysbench工具
前言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的.本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法. 文章有疏漏之处, ...
- Mysql基准测试详细解说(根据慕课网:《打造扛得住Mysql数据库架构》视频课程实时笔录)
什么是基准测试 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以及评估变化对性能的影响. 我们可以这样认为:基准测试是针对系统设置的一 ...
- 【mysql】mysql基准测试
基准测试定义 基准测试其实是一种测量和评估软件性能指标的方法,用于建立某个时间点的性能基准,以便当系统的软硬件发生变化的时候重新进行基准测试以评估变化对性能的影响.所以对系统性能的测量,才能知道我们的 ...
- 详解MySQL基准测试和sysbench工具(转)
前言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的.本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法. 文章有疏漏之处, ...
- MySQL基准测试(三)--开源工具与实例演示
MySQL基准测试(三)--开源工具与实例演示 针对web应用 ab ab是一个Apache HTTP服务的基准测试工具. http_load http_load是一个针对Web服务器测试工具. JM ...
- MySQL基准测试(二)--方法
MySQL基准测试(二)--方法 目的: 方法不是越高级越好.而应该善于做减法.至简是一种智慧,首先要做的是收集MySQL的各状态数据.收集到了,不管各个时间段出现的问题,至少你手上有第一时间的状态数 ...
- MySQL基准测试(一)--原因,策略,思路
MySQL基准测试(一)--原因,策略,思路 运用benchmark的原因 验证一些你认为的问题,通过基准测试和模拟数据来验证. 解决生产系统的一些异常 测试系统的当前的运行情况,通过历史的基准测试结 ...
- mysql基准测试工具tpcc-mysql安装、使用、结果解读
TPCC是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统,tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于My ...
- 解MySQL基准测试和sysbench工具
前言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的.本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法. 文章有疏漏之处, ...
随机推荐
- MyBufferedReader
/** 需求:自定义一个包含 readLine 方法的 BufferedReader 来模拟一下 BufferedReader */ import java.io.FileReader; import ...
- 九:python 对象类型详解五:元组
一:元组: 1,简单介绍:元组由简单的对象组构成.元组与列表非常类似,只不过元组不能在原处修改(它们)是不可变的,并且通常写成圆括号中的一系列项.虽然元组不支持任何方法调用,但元组具有列表的大多数属性 ...
- 100-days: Three
Title: Singapore(新加坡) set to raise retirement ages as seniors stay healthier be set to do sth. 准备做某 ...
- socket、fsockopen、curl、stream 区别
socket 水泥.沙子,底层的东西fsockopen 水泥预制件,可以用来搭房子curl 毛坯房,自己装修一下就能住了 水泥.沙子不但可以修房子,还能修路.修桥.大型雕塑.socket也是,不但可以 ...
- Java使用点滴
1.查找某个字符在字符串中第几次出现的位置 /** * 查找某个字符在字符串中第几次出现的位置 * @param string 要匹配的字符串 * @param i 第几次出现 * @param ch ...
- stark组件开发之列表页面预留钩子方法。 可根据用户的不同,显示不同的列
要实现,这个方法.子类中 list_diplay 这个列表, 就不能够写死.他应该是 可以根据.用户的不同,返回不同的值. 所以 就需要一个函数, 可以进行判断当前用户是谁. 并且往这个列表中添加,他 ...
- js的urlencode
function urlencode (str) { str = (str + '').toString(); return encodeURIComponent(str).replace(/!/g, ...
- jwplayer使用方法
网盘:https://pan.baidu.com/s/1mmtppZSFOni5tLI2TJWKrw <script type="text/javascript"> v ...
- sqlite c#
https://www.cnblogs.com/icebutterfly/p/7850689.html https://www.cnblogs.com/sdadx/p/7127098.html
- 10.23JS日记
1.逻辑运算 || && ! ||:遇到第一个为true的值就中止并返回 &&:遇到第一个为false的值就中止并返回,如果没有false值,就返回最后一个不是fa ...