我想在 mysql 启动之前(启动时)将这些命令添加到 Linux 内核:
echo never> /sys/kernel/mm/transparent_hugepage/enabled
echo never> /sys/kernel/mm/transparent_hugepage/defrag
这是我正在运行的应用程序的必要规范。
答案1
您可以通过编辑 mysql 启动脚本在 MySQL 启动之前运行这些命令。但最好通过编辑 来使这些设置持久化/etc/sysfs.conf
。
如果您想禁用透明大页面,您应该添加:
kernel/mm/transparent_hugepage/enabled = never
到您的 sysctl 配置。
编辑 sysctl 配置后,可以使用以下命令重新读取配置:
sysctl -p path/to/your/sysctl/config
sysctl 配置文件的位置取决于您使用的发行版。您应该能够通过查看sysctl
手册页来确定文件man sysctl
。路径应该列在末尾FILES
像 Ubuntu 这样的基于 Debian 的发行版似乎使用/etc/sysfs.conf
,基于 RedHat 的发行版似乎使用/etc/sysctl.conf
。
如果您确实想通过启动脚本更改设置,您可以编辑/etc/rc.local
并添加以下行:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
但编辑/etc/sysfs.conf
会更加干净。
如果你需要更多信息我建议你阅读https://askubuntu.com/问题。