3

私の問題

OVH CentOS 7 インストールで、Transparent Huge Pages (THP) に関する MongoDB の警告を削除するのに問題があります。問題は、/sys/kernel/mmroot として書き込めないことのようです。

まず、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/mmrootパーミッションを一時的に 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 のカスタマイズ (および更新のたびに繰り返すこと) を伴うものであっても、喜んで実行します。

4

1 に答える 1