私の問題
OVH CentOS 7 インストールで、Transparent Huge Pages (THP) に関する MongoDB の警告を削除するのに問題があります。問題は、/sys/kernel/mm
root として書き込めないことのようです。
まず、OVH カーネルがカスタマイズされていることを認識しています。多くの人がカスタマイズされていない新しいカーネルを使用することをお勧めしますが、それは現在のオプションではありません。現在のOSでこの問題を解決する必要があります。
MongoDB の警告:
2016-03-09T00:31:45.889-0500 W CONTROL [initandlisten] Failed to probe "/sys/kernel/mm/transparent_hugepage": Permission denied
2016-03-09T00:31:45.889-0500 W CONTROL [initandlisten] Failed to probe "/sys/kernel/mm/transparent_hugepage": Permission denied
MongoDB は transparent_hugepage ファイル (以下) を読み込もうとしていますが、存在しません:
/sys/kernel/mm/transparent_hugepage/enabled
/sys/kernel/mm/transparent_hugepage/defrag
ファイルを作成できません
私が見たすべてのソリューションには、MongoDB ドキュメントのスクリプトnever
を含め、ファイルを作成してそれらにデータを入力することが含まれます。すべてのソリューションで、これが重要な部分です。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
/sys/kernel/mm
ただし、ファイルは存在せず、ルートとして何も作成できません。
root@myhost [~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
-bash: /sys/kernel/mm/transparent_hugepage/enabled: No such file or directory
root@myhost [~]# mkdir -p /sys/kernel/mm/transparent_hugepage
mkdir: cannot create directory ‘/sys/kernel/mm/transparent_hugepage’: Operation not permitted
ディレクトリの所有者とグループは で/sys/kernel/mm
、root
パーミッションを一時的に 700 から 777 に変更しましたが、ルートとしてディレクトリを作成できません。
調整されたプロファイルも役に立たない
徹底するために、カスタム Tuned プロファイルも作成し (上記の MongoDB リンクの手順に従って)、有効にしましたが、エラーが発生します。WARNING tuned.plugins.plugin_vm: Option 'transparent_hugepages' is not supported on current hardware.
調整済みプロファイル (/etc/tuned/no-thp/tuned.conf):
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
Tuned ログのエラー:
WARNING tuned.plugins.plugin_vm: Option 'transparent_hugepages' is not supported on current hardware.
MongoDB自体の解決策はありますか?
不足しているファイルをチェックする必要がないように、THP を使用しないように MongoDB を明示的に構成することが最善の解決策のようですが、このようなものは見たことがありません。方法があれば、たとえそれが MongoDB のカスタマイズ (および更新のたびに繰り返すこと) を伴うものであっても、喜んで実行します。