大页
1.为什么要使用大页
使用大页是因为页表问题的存在,使用小页会存在页表占用过多内存的问题。
假设一台256G的机器,我们分配了共享内存为128G。如果是小页,大小为4K,则有33554432页表项,每项至少占用4字节,则页表大小32M4=128M,如果有1024个连接,则页表占用128M1024=128G内存,占据机器总内存的一半。
如果使用2M大小的大页表,则:则有128G/2M=65536项,655364=256K,1024个连接:1024256k=256M内存,内存占用率大幅降低。
通常在 Linux操作系统里面,建议使用大页。
2.大页配置
大页参数设置:vm.nr_hugepages;
这个参数设置的值为多少,则有对应数量的2M大页。大页的大小需要与数据库的Shared_buffer相一致,如果比Shared_buffer大很多则会浪费资源。
大页不会被Swap,默认Lock,即类似Oracle的lock_sga,且分配大页内存后,及时不使用大页,也不可做其他用途。