如何在Linux中mysql启动前添加内核命令

如何在Linux中mysql启动前添加内核命令

我想在 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/问题。

相关内容