关闭THP可避免数据库和高性能计算场景下的性能下降,通过检查/sys/kernel/mm/transparent_hugepage/enabled状态,临时使用echo never写入enabled和defrag文件,永久关闭需在GRUB配置中添加transparent_hugepage=never并更新引导。

在Linux系统中,透明大页(Transparent Huge Pages, THP)虽然能提升某些工作负载的内存访问效率,但在数据库、高性能计算等场景下反而可能引起性能下降。关闭THP是常见的性能调优手段之一。以下是关闭THP的具体方法和注意事项。
Linux内核通过THP自动将多个4KB小页面合并为2MB的大页面,减少TLB(Translation Lookaside Buffer)缺失,从而提升内存密集型应用的性能。但THP的后台合并机制可能导致延迟波动,尤其对响应时间敏感的应用不利。
可通过以下命令查看THP是否启用:
echo $(cat /sys/kernel/mm/transparent_hugepage/enabled)输出通常为类似 [always] madvise never 的格式:
若显示 always 或 madvise,建议根据应用场景决定是否关闭。
执行以下命令可立即关闭THP:
echo never > /sys/kernel/mm/transparent_hugepage/enabled这两步分别禁用THP分配和内存碎片整理功能,避免后台任务影响性能。
要使设置在重启后仍生效,需修改启动配置:
若只希望某些应用使用大页,可保留全局THP为“never”,并在程序中显式调用madvise()并设置MADV_HUGEPAGE。这种方式更可控,适合数据库如MongoDB、MySQL等。
基本上就这些。关闭THP不复杂但容易忽略,尤其在部署数据库或低延迟服务时,务必检查此项设置,避免潜在性能问题。
以上就是Linux如何关闭透明大页以提升性能_LinuxTHP性能调优方法的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号