摘要:1 innodb_buffer_pool_instances可以开启多个内存缓冲池,把需要缓冲的数据hash到不同的缓冲池中,这样可以并行的内存读写。

2 innodb_buffer_pool_instances参数显著的影响测试结果,特别是非常高的 I/O 负载时。

3 实验环境下,innodb_buffer_pool_instances=8在很小的 buffer_pool 大小时有很大的不同,而使用大的

buffer_pool 时,innodb_buffer_pool_instances=1的表现最棒。

1 定义

The number of regions that the InnoDB buffer

pool is divided into. For systems with buffer pools in the multi-gigabyte range, dividing the buffer pool into separate instances can improve concurrency, by reducing contention as different threads read and write to cached pages. Each page that is stored

in or read from the buffer pool is assigned to one of the buffer pool instances randomly, using a hashing function. Each buffer pool manages its own free lists, flush lists, LRUs, and all other data structures connected to a buffer pool, and is protected by

its own buffer pool mutex.

This option takes effect only when you set the innodb_buffer_pool_size to

a size of 1 gigabyte or more. The total size you specify is divided among all the buffer pools. For best efficiency, specify a combination ofinnodb_buffer_pool_instances and innodb_buffer_pool_size so

that each buffer pool instance is at least 1 gigabyte.

测试日期: Oct-2012

测试目的: 测试 MySQL 5.6.7 的表现

硬件换

服务器: Dell PowerEdge R710

CPU: 2x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz

内存: 192GB(这个内存太猛了)

存储: Very Fast PCIe Flash Card

文件系统: ext4

软件

操作系统: CentOS 6.3

MySQL 版本: 5.6.7-RC

测试规范

测试工具: tpcc-mysql

测试数据: 2500W (~250GB of data)

测试时间: 总共测试 4000 秒,但只取最后的 2000 秒,避免因为冷启动的问题导致测试结果不准确

不同的测试参数: 使用几组不同的 innodb_buffer_pool_size:13, 25, 50, 75, 100, 125GB ,innodb_buffer_pool_instances: 1

and 8, and innodb_log_file_size: 2x4GB and 2x8GB.

测试结果:

第一个结果使用的事 2x4GB 的 InnoDB 日志文件:

我们可看出当 innodb_buffer_pool_instances=8 在很小的 buffer_pool 大小时有很大的不同,而使用大的 buffer_pool 时,innodb_buffer_pool_instances=1 的表现最棒。

测试结果在大的 buffer_pool 时是很稳定的,原因是 InnoDB 使用异步 flush 模式,在新的 InnoDB flush 机制下以前的问题已经修复。不过 Dimitry 告诉我需要一个更大的 InnoDB 日志文件来获得更稳定的结果。

下面是 2x4GB vs 2x8GB innodb 日志文件大小的比较:

很显然,使用更大的日志文件,测试结果更稳定!

结论:

innodb_buffer_pool_instances 参数显著的影响测试结果,特别是非常高的 I/O 负载时。

在 MySQL 5.6 ,最终是可以获得非常稳定的吞吐,但自适应的 flush 机制仍需较大的日志文件。

MySQL 配置如下:

01

[mysqld]

02

gdb

03

04

innodb_file_per_table

=true

05

innodb_data_file_path

= ibdata1:100M:autoextend

06

innodb_flush_method

= O_DIRECT

07

innodb_log_buffer_size

= 256M

08

09

innodb_flush_log_at_trx_commit

= 1

10

innodb_buffer_pool_size

= 125G

11

innodb_buffer_pool_instances=8

12

13

innodb_log_file_size

= 4G

14

innodb_log_files_in_group

= 2

15

#####plugin

options

16

innodb_read_io_threads

= 16

17

innodb_write_io_threads

= 16

18

innodb_io_capacity

= 20000

19

innodb_io_capacity_max

= 40000

20

21

22

#not

innodb options (fixed)

23

port

= 3306

24

back_log

= 50

25

max_connections

= 2000

26

max_prepared_stmt_count=500000

27

max_connect_errors

= 10

28

table_open_cache

= 2048

29

max_allowed_packet

= 16M

30

binlog_cache_size

= 16M

31

max_heap_table_size

= 64M

32

sort_buffer_size

= 4M

33

join_buffer_size

= 4M

34

thread_cache_size

= 1000

35

query_cache_size

= 0

36

query_cache_type

= 0

37

ft_min_word_len

= 4

38

thread_stack

= 192K

39

tmp_table_size

= 64M

40

41

server-id =

10

42

#***

MyISAM Specific options

43

key_buffer_size

= 8M

44

read_buffer_size

= 1M

45

read_rnd_buffer_size

= 4M

46

bulk_insert_buffer_size

= 8M

47

myisam_sort_buffer_size

= 8M

48

myisam_max_sort_file_size

= 10G

49

myisam_repair_threads

= 1

50

myisam_recover

51

user=root

52

skip-grant-tables

转自:http://www.phpchina.com/archives/view-41968-1.html

mysql innodb_sort_buffer_size_mysql优化---第7篇:参数 innodb_buffer_pool_instances设置相关推荐

  1. 讲真,MySQL索引优化看这篇文章就够了

    本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引背后的数据结构三部分相关内容,下面一一展开. 一.MySQL--索引基础 首先,我们将从索引基础开始介绍一下什么 ...

  2. mysql maxconnections 最大值,MySQL性能优化之max_connections配置参数浅析

    MySQL的max_connections参数用来设置最大连接(用户)数.每个连接MySQL的用户均算作一个连接,max_connections的默认值为100.本文将讲解此参数的详细作用与性能影响. ...

  3. MySQL索引优化看这篇文章就够了!

    阅读本文大概需要 5 分钟. 来源:cnblogs.com/songwenjie/p/9410009.html 本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引 ...

  4. mysql的优化之table_open_cache 篇_mysql性能优化之table_open_cache

    表现:数据库查询效率慢,show processlist 发现比较多的查询正在opening table. 进一步确认,执行以下语句: mysql> show global status lik ...

  5. MySQL数据库优化笔记

    尚硅谷MySQL数据库高级,mysql优化,数据库优化 视频地址:https://www.bilibili.com/video/BV1KW411u7vy?share_source=copy_web 一 ...

  6. Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)

    转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生成XML,或者文 ...

  7. mysql高级篇(二)mysql索引优化分析

    mysql高级篇笔记 mysql高级篇(一)mysql的安装配置.架构介绍及SQL语句的复习. mysql高级篇(二)mysql索引优化分析. mysql高级篇(三)查询截取分析(慢查询日志).主从复 ...

  8. MySQL SQL 优化参数 引发的悲剧

    大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 今天给大家看一个案例来讨论,这个案例是真实案例,因为之前踩bug 导致数据库crash 所以临时关了优化器参数 set gloabl optim ...

  9. Mysql优化(高级篇)

    Mysql数据库优化篇 Q: 为什么别人问你MySQL优化的知识 总是没有底气. A: 因为你只是回答一些大而化之的调优原则, 比如:"建立合理索引"(什么样的索引合理?) &qu ...

最新文章

  1. excel之根据单元格内容自动修改单元格颜色
  2. 【VMware中搭建iOS开发环境的引导工具】
  3. Python初学者之ModuleNotFoundError:No module named 'cv2'简单解决办法
  4. windows找不到文件javaw_windows电脑上,怎么快速找文件?
  5. 诺基亚是“不跟随”还是跟不上?
  6. 谷歌提出 RNN 版 Transformer,或为长文本建模的当前最优解
  7. 转 html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
  8. CVPR 2020丨MAML-Tracker: 用目标检测思路做目标跟踪? 小样本即可得高准确率
  9. 初识kbmmw 中的ORM
  10. Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)...
  11. python自动化办公教程-Python自动化办公之操作Excel文件
  12. Axios FormData
  13. python3中浮点数float的四舍五入,round跟decimal区别
  14. 【项目管理】在IDEA中使用MyBatis_Generator生成Dto、Dao、Mapping
  15. windows修改注册表,替换按键映射
  16. 增加抖音粉丝投放抖+中,怎么样中断退费呢?
  17. springboot酒店客房预定管理系统
  18. 【BUUCTF】强网杯 2019随便注1 write up
  19. 亲情的矛盾都是因为爱而化解 写给17 岁的你
  20. uva 11021 Tribbles 麻球繁衍 概率

热门文章

  1. Oracle 随机取某一列的值
  2. 高扫后督解决方案 力助银行内部核查
  3. [相关总结性文章] 写给即将入行的程序员的一封信
  4. 袋装决策树_袋装树是每个数据科学家需要的机器学习算法
  5. 662. 二叉树最大宽度
  6. 怎么样用System.out.println在控制台打印出颜色
  7. 盐噪声和胡椒噪声的区别_为什么加一点盐对您的密码很有用(但不包括胡椒粉!)
  8. javascript 分号_让我们谈谈JavaScript中的分号
  9. 测试无服务器应用程序的最佳方法
  10. 软件工程专业实习可以做什么_想要获得软件工程实习机会? 这里有一些想法可以帮助您...