Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2758293
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Mysql/postgreSQL

2014-07-31 17:11:00

                            配置MySQL使用huge pages

     huge-page是linux 2.6以后的内核支持特性,相比传统的内存页面大小4KB而言
huge-page提供的大小是2048k大小,通过更大的页面,减少了OS页面查找需要的时间和
开销,对于现代服务器动之上百G内存而言,性能提高不言而喻.

    mysql在5.1以后的版本中就提供了对huge-page的支持,huge-page只支持存放
buffer-pool和additional-mem-pool数据,而不能存放其他类型的buffer的数据,比如
sort buffer.

   首在os级别设定huge-page的大小.在rhel的版本中,每huge-page是2M大小


[root@localhost ~]# cat /proc/meminfo | grep "Hugepagesize"
Hugepagesize:     2048 kB

 内核参数vm.nu_hugepages定义了huge-page的数量,在/etc/sysctl.conf中增加如下行,

vm.nr_hugepages=1000

  重启或sysctl-p生效,检查huge-page的使用情况.

[root@localhost ~]# cat /proc/meminfo | grep Huge
HugePages_Total:  1000
HugePages_Free:   1000
HugePages_Rsvd:      4
Hugepagesize:     2048 kB


 在/etc/security/limits.conf定义mysql用户的memlock的数量

mysql soft memlock unlimited
mysql  hard memlock unlimited


 设置mysql的/etc/my.cnf,增加对huge-page的支持

large_pages=1

注意innodb_buffer_pool_size+innodb_additional_mem_size一定要小于nr_hugepages*Hugepagesize(2MB)
反之,huge-page放不下,innodb在启动时会报错,转而使用传统的4KB内存分配方法,

140731  8:46:37 InnoDB: Initializing buffer pool, size = 5.7G
InnoDB: HugeTLB: Warning: Failed to allocate 6236930048 bytes. errno 12
InnoDB HugeTLB: Warning: Using conventional memory pool
140731  8:46:37 InnoDB: Completed initialization of buffer pool


实验中总共是2GB的huge-page,而我设置的innodb_buffer_pool_size是6GB。

更改innodb_buffer_pool_size为1.5GB,成功使用了huge-page


[root@localhost ~]# cat /proc/meminfo | grep Huge
HugePages_Total:  1000
HugePages_Free:    971
HugePages_Rsvd:    746
Hugepagesize:     2048 kB

mysql> show global variables like '%large_page%';
+-----------------+---------+
| Variable_name   | Value   |
+-----------------+---------+
| large_page_size | 2097152 |
| large_pages     | ON      |
+-----------------+---------+
2 rows in set (0.00 sec)

large_page_size变量不能更改.

 

 

 

 

 

 

阅读(3350) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~