我已经成功配置了我的 Ubuntu 服务器,因此 MySQL 可以使用大页面。问题是当我想启用memlock
选项my.cnf
并/proc/sys/vm/hugetlb_shm_group
设置为另一个组时(MySQL 是该组的成员)。
# uname -a
Linux hostname 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# mysqld --version
mysqld Ver 5.5.53-0ubuntu0.12.04.1 for debian-linux-gnu on x86_64 ((Ubuntu))
# egrep ^Huge /proc/meminfo
HugePages_Total: 15000
HugePages_Free: 15000
HugePages_Rsvd: 0
HugePages_Surp: 0
# id mysql
uid=107(mysql) gid=113(mysql) groups=113(mysql),117(hugetlb)
如果/proc/sys/vm/hugetlb_shm_group
设置为113
一切顺利,无论memlock
选项如何。
但是,如果我设置/proc/sys/vm/hugetlb_shm_group
为117
它只能在没有memlock
选项的情况下工作。如果我启用它,我会在 MySQL 启动时收到此错误:
InnoDB:HugeTLB:警告:无法分配 21978152960 字节。错误号 1
InnoDB HugeTLB:警告:使用常规内存池
知道有什么问题吗?