数据库服务器资源优化(2)HugePage

TangLu 运维 2025-05-23 3 0

一、什么是HugePage

Hugepage又叫做Transparent HugePages(THP),简称大页。在 Linux 操作系统中,内存以页(Page)为单位进行管理,每个页默认 4KB。而 HugePages则是允许使用更大的内存页,以降低内存在对大量页管理上的开销,可以提升大内存场景下的应用稳定和性能。但是由于数据库系统而言,它对于内存的使用是动态变化的,大部分场景下都是使用大量的小页面。而使用Hugepage后,大页中的内存无法得到及时的释放,数据库就无法有效利用这些大页面中的空闲空间,导致内存浪费。所以在MySQL、Oracle及一些JVM应用中都建议关闭THP功能,取而代之的是自身的一些优化机制。


二、如何关闭HugePage

1、查看当前系统大页大小

cat /proc/meminfo | grep Huge


2、命令行方式禁用大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag


3、验证,如果显示的是 [always] 或 [madvise],说明没有关闭成功。

cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]


4、在rc.local中添加配置,让操作系统重启后也自动关闭大页

vi /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag


评论