mysql启用大页么_Mysql 大页配置与性能测试

默认linux的页面大小是4k,设置大页后是2m,相当于每次少取了512次。无论Oracle或mysql服务器,因为内存比较大,都需要配置大页。

查看大页尺寸及状态(未开启):

>cat proc/meminfo | grep -i huge

AnonHugePages:   1265664 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB

打开大页需要在操作体统上更改配置。

更改系统配置:

vi etc/security/limits.conf 添加:

# HugePage up limit

* soft memlock  816521216        --778GB,物理主机1T内存

* hard memlock  816521216       --778GB

或指定哪个OS用户可以使用大页

# HugePage up limit

oracle    soft    memlock    5242880    --5G,物理主机8G内存

oracle    hard    memlock    5242880

memlock以K为单位的,可以让它的值稍微比系统的物理内存小就可以了。

查看oracle或mysql OS账户对应的group id。

>id

uid=1036(mysql) gid=1038(mysql) groups=1038(mysql),500(oinstall)

vi etc/sysctl.conf

vm.hugetlb_shm_group = 500

#使用mysql所在组ID

vm.nr_hugepages = 256885

#分配大页内存为 256885*2048KB=501GB,值略小于memlock

kernel.shmmax = 540938977280

--503GB配置了最大的内存segment的大小,这个设置应该比数据库定义使用的内存大小大一些。

kernel.shmall = 105652145

--单位为默认页大小4KB,shmall是全部允许使用的共享内存大小,shmmax是单个段允许使用的大小。shmall的大小为 105652145*4k/1024/1024=403GB

执行下面的命令 使上面的设置立即生效

/sbin/sysctl -p

对于内存为4G的服务器设置如下:

vi etc/security/limits.conf

# HugePage up limit,--3.5G

mysql    soft    memlock    3670016

mysql    hard    memlock    3670016

vi etc/sysctl.conf

vm.hugetlb_shm_group = 500

vm.nr_hugepages = 1024

在mysql配置my.cnf中添加large-pages启动大页

[mysqld]

large-pages

确认大页已被使用:

>cat proc/meminfo | grep -i huge

AnonHugePages:    776192 kB

HugePages_Total:    1024

HugePages_Free:     1010

HugePages_Rsvd:      118

HugePages_Surp:        0

Hugepagesize:       2048 kB

配置大页后的性能比较:

1. 未开hugepage

>cat proc/meminfo | grep -i huge

AnonHugePages:    546816 kB

HugePages_Total:    1024

HugePages_Free:     1024

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB

mysql启用大页么_Mysql 大页配置与性能测试_第1张图片

2. 启动大页:

vi ./db1.cnf

[mysqld]

large-pages

>cat proc/meminfo | grep -i huge

AnonHugePages:    339968 kB

HugePages_Total:    1024

HugePages_Free:      983

HugePages_Rsvd:      949

HugePages_Surp:        0

Hugepagesize:       2048 kB

mysql启用大页么_Mysql 大页配置与性能测试_第2张图片

可以看到性能有着明显的提升。

你可能感兴趣的:(mysql启用大页么)