swappinessの変更には再起動が必要ですか?


14

swappiness値を別の値(例:60〜0)に設定した場合、変更を有効にするために常にマシンをリブートする必要がありますか?以下で修正する場合でも:

sysctl -w vm.swappiness=0

回答:


25

あなたが与えたウィキペディアのページですべてがうまく説明されています。

# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness

# Alternatively, run this as a non-root user
# This does the same as the previous command
sudo sysctl -w vm.swappiness=10

# Verify the change
cat /proc/sys/vm/swappiness
10

この時点で、システムは設定したとおりにスワップを管理しますが、今すぐ再起動すると、変更は忘れられ、システムはデフォルト値で動作します(60と仮定すると、40%でスワップを開始することを意味します) RAMの占有)。

/etc/sysctl.conf変更を永続的に保持するには、以下の行を追加する必要があります。

vm.swappiness = 10

それがあなたにとってより明確であることを願っています!


-wスイッチが変更を書き込むことになっているのは興味深いことです。それを書いた後、sysctl.confにデフォルト行を追加する必要はないと思うでしょう。
WEBjuju

こんにちはWEBjuju、そのとおりです。スイッチはまだ機能しません(fedora 25またはcentos 7)。/ procファイルのライブ値の変更は、とにかく行われないため、必要ありません。
tisc0

7

変更を有効にするためにマシンを再起動する必要がありますか?

反対に、実際には、リブートすると、swappinessがデフォルト値にリセットされます。再起動後も保持するには、ブートスクリプトにディレクティブを含めるか、Wikipediaの記事で推奨されている以下の追加方法を使用する必要があります。

vm.swappiness = ??

To /etc/sysctl.conf(または/etc/sysctl.dファイル)、どこ??に使用する値があります。これを追加するだけでは、その時点で変更は発生しないことに注意してください。


1

受け入れられた答えは正しいですが、誤って他の設定を上書きしないように、別の「sysctl」設定ファイルを使用することをお勧めします(グローバルな「sysctl.conf」を上書きした場合に発生する可能性があります)。

# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf

グローバル設定ファイル「/etc/sysctl.conf」をすでに変更している人は、この「swappiness」値を定義する行をそのファイルから削除したいかもしれません。このコマンドを使用して、グローバル構成ファイルから次の行を削除できます(コメントを保持)。

# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf

ここで、新しい値を適用するには、sysctl使用するように指示します。

# sysctl -p /etc/sysctl.d/swappiness.conf

または、swapinessを含むすべての設定を適用します。

# sysctl -p /etc/sysctl.d/*

確認してください:

# sysctl vm.swappiness
vm.swappiness = 10

同意して、それはベストプラクティスであり、物事をより明確で安全にします。構成管理ツールを使用する場合も良い習慣です。
tisc0

1

CentOSマシンvm.swappinessはが設定されていることがわかりました /usr/lib/tuned/virtual-guest/tuned.conf

構成ファイルを調べ、デフォルトが設定されている場所を確認ますtuned

sudo grep -R swap /usr/lib/tuned | grep swappiness

デフォルトを更新した後でも、再起動せず現在のswappinessを設定できます

sudo sysctl vm.swappiness=10

そしてテスト済み:

cat /proc/sys/vm/swappiness

1
/etc/tuned/tuned-main.conf(RHEL7)には、/ etc / sysctl.conf、/ etc / sysctl.dなどが、tunedによって適用された設定(reapply_sysctl = 1)をオーバーライドできる設定があります。少なくとも私のインストールでは、これがデフォルトです。
kbulgrien

0

sysctl慣例によるユーザーの変更は、プレフィックスが付いたファイルに入る60-ため、ファイル名は/etc/sysctl.d/60-swappiness.confservice procps startrootとして実行して、構成値の再読み取りを強制します(再起動は不要です)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.