Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33064
  • 博文数量: 10
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 112
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-21 08:13
文章分类

全部博文(10)

文章存档

2014年(10)

我的朋友

分类: Mysql/postgreSQL

2014-01-24 17:00:14

何为HugePage?

HugePage,就是指的大页内存管理方式。与传统的4kb的普通页管理方式相比,HugePage为管理大内存(8GB以上)更为高效

为何HugePage?

    1:更大的页意味着更小的pagetable size.默认的页大小为4K,而Hugepage 默认为2048K 大大减小pagetables
    2: 大大提高了CPU cache中存放的page table所覆盖的内存大小,从而提高了TLB命中率
    3:使用Hugepages的内存页是不会被交换出去的,永远常驻在内存中,所以也减少了内存也替换的额外开销

HugePage 怎么配?   

1:确认你的系统支持     

点击(此处)折叠或打开

  1. cat /proc/meminfo | grep -i huge
      如显示如下,表示支持
      HugePages_Total:     0 # 总分配页数 与Hugepagesize 相乘 即为总分配内存数
      HugePages_Free:      0 #未使用页数
      HugePages_Rsvd:      0 #已分配页数
      Hugepagesize:     2048 kB 

2:配置Hugepage 大小

# Set the number of pages to be used.
# Each page is normally 2MB, so a value of 20 = 40MB.
# This command actually allocates memory, so this much
# memory must be available.
echo 20 > /proc/sys/vm/nr_hugepages 

3:配置Hugepage 使用的用户组 mysql 的用户必须在这个组内

# Set the group number that is permitted to access this
# memory (102 in this case). The mysql user must be a
# member of this group.
echo 102 > /proc/sys/vm/hugetlb_shm_group

4:增加shmem 

# Increase the amount of shmem permitted per segment
# (12G in this case).
echo 1560281088 > /proc/sys/kernel/shmmax

5增加 shmall 

# Increase total amount of shared memory.  The value
# is the number of pages. At 4KB/page, 4194304 = 16GB.
echo 4194304 > /proc/sys/kernel/shmall
mysql官方建议 shmem  和shmmax 尽量接近
以上内容来自MYSql 官方文档http://dev.mysql.com/doc/refman/5.5/en/large-page-support.html

6:在mysql启动文件中 增加 ulimit -l unlimited

7:mysql 配置文件中增加 large-pages

8:重启mysql服务


使用效果如何?

 还在测试中,不过有篇牛博提供了相关的测试数据
牛博地址:
阅读(1606) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~