0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ProxmoxVEのswap設定

0
Posted at

能書き

おうちサーバー構築報告:予告からのおうちサーバー構築です。

以前ProxmoxVE 9 をインストールして、コンテナや仮想マシンを立てて色々入れてきた訳ですが。ふと思い立ち、ProxmoxVEに於けるスワップメモリの設定について調べてみたのでした。主にCopilotへの相談でしたが。

そうしたらSSDの場合は設定を変更した方が良いとの回答。今回はその内容についてです。

参考文献

前提

予告で紹介している通り、マシンはNUCなのでストレージデバイスはSSD(NVMe)です。ちなみにRAMは32GBを積んでます。

ストレージがSSDの場合スワップは基本的に避けた方が良いんだよね?と重要な事を思い出したのが発端でした。こんな重要事項を今まで忘れていた方がまずいんですが。

スワップを減らすべき理由

なぜスワップを減らすべきなのか?SSDでもスワップが多いと下記の問題が発生します。

  • I/O が詰まる
    仮想マシンがスワップを使い始めると、SSDでもランダムI/Oが急増し、全体のパフォーマンスが落ちます。
  • SSD の寿命を削る
    スワップは書き込みが多いためTBW(総書き込み量)を無駄に消費します。
  • 仮想化環境ではスワップの効果が薄い
    仮想マシン内のスワップとホストのスワップが重なると「二重スワップ」になり、逆に遅くなります。

実践的な最適解

下記の設定が最適です。

  • ホスト:少量のスワップ(5〜10%)+ swappiness を下げる
  • 仮想マシン:1〜2GBの保険程度
  • LXCコンテナ:0〜512MB
  • メモリ不足はスワップではなくRAM増設で解決

swappiness

vm.swappinessとはLinuxカーネルが持っているパラメータです。RAMの内容をスワップ領域に書き出す際の積極性を表します。
参考文献によると、その値は下記のような意味になるとの事。

意味
0 できる限りスワップを使わない
10 本当に必要になるまでスワップを使わない
60 余裕があっても早めにスワップに退避する(デフォルト値)
100 積極的にスワップを使う

10が推奨値のようです。

確認

現在のswappinessを確認する方法は2つあります。

  1. 実行中のswappinessを確認

    ProxmoxVEホストマシン
    cat /proc/sys/vm/swappiness
    
  2. sysctlで確認する方法

    ProxmoxVEホストマシン
    sysctl vm.swappiness
    

変更

一時的に変更するには下記を実行します。この設定は再起動で元に戻ります。

ProxmoxVEホストマシン
sysctl -w vm.swappiness=10

永続化する場合は下記になります。

ProxmoxVEホストマシン
echo "vm.swappiness = 10" >> /etc/sysctl.d/99-pve-tuning.conf
sysctl -p /etc/sysctl.d/99-pve-tuning.conf

なお完全に0にするのは推奨されません。swappinessを0にするとOOM Killerが発動しやすくなります。

仕舞い

…と、言う事でした。

ホストマシンは動かしながら調整できるとして、コンテナや仮想マシンは作り直しですかね。過去記事のスワップ領域指定も全部修正しておきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?