web-dev-qa-db-ja.com

GRUB_CMDLINE_LINUX_DEFAULTの `swapaccount = 1`は何をしますか?

質問 単一のLinuxプロセスのメモリ使用量を制限する/etc/default/grubが含まれるようにGRUB_CMDLINE_LINUX_DEFAULTファイルを変更することが言及されていました

GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"

swapaccount=1は何をしますか?それを適用することにリスクや欠点はありますか?

4
Martin Thoma

どうやらスワップアカウンティングを有効にするために使用されていました/つまり、コントロールグループ(略してcgroup)ごとにスワップの使用を監視および制限するようにカーネルに指示しています。 RedHatはRHEL7でデフォルトで有効になっているようで、明らかに欠点は最小限です。

カーネル構成を確認する必要があります(通常は/boot/config-<kernel_version>)。次の行が含まれている場合:

CONFIG_MEMCG_SWAP=y

その後、cgroupによるスワップの使用を追跡する可能性が存在し、swapaccount=ブートオプションが利用可能です。実際の制限は、スワップ制限のあるcgroupが作成され、プロセスがそのcgroupに移動された場合にのみ有効になります。

次の行も含まれている場合:

CONFIG_MEMCG_SWAP_ENABLED=y

その場合、swapaccount=1がデフォルトで有効になり、必要に応じて、明示的にswapaccount=0ブートオプションを使用して無効にする必要があります。

systemdとDockerは、通常の機能の一部としてcgroupを広範囲に使用します。

3
telcoM