私のラップトップとデスクトップにArchlinux x86_64がインストールされています。インストール時にfdiskを使用してスワップパーティションを作成しますsudo swapon /dev/sda3
。
sysctl vm.swappiness
ただし、に設定しても0
システムメモリが半分しか使用されていない場合、システムはまだスワップパーティションに書き込んでいるため、大きなファイルをどこかにコピー/移動してシステムの速度を非常に遅くします。この場合はoff swapを使用しましたsudo swapoff /dev/sda3
。
最近は通常、起動後にスワップをオフにし、スワップが本当に必要なときにアクティブにします(そしてRAMの使用量を監視し、必要に応じてスワップをオンにするRubyスクリプトがあります)。次回の起動時にスワップが再び有効になります。問題の交換アイテムはありません/etc/fstab
。
デバイスを削除せずにスワップデバイスを永久に無効にする方法はありますか?
答え1
これ建築ウィキペディアArchlinuxでのスワッピングはsystemdによって管理されることに言及し、スワッピングを担当するsystemdデバイスをブロックして自動アクティベーションを無効にする方法について説明しました。したがって、Archlinuxでは、次のことを達成する必要があります。
- 特定のスワップを使用して
#swapoff -a
スワップを無効にするか、特定のデバイス/ファイル名を渡します。現在、スワップは無効になっていますが、次回の起動時に自動的に再度有効になり、有効になります。 - 自動スワップを有効にしないようにするには、systemdデバイスを使用してswapを見つけます
#systemctl --type swap
。見つかった各*.swap
ユニットに対してを使用してマスクされます#systemctl mask <unit_name>
。
systemctl unmask <unit_name>
以前に保護されたデバイスを実行し、Open Swapを使用してプロセスをキャンセルするだけですswapon
。
これは、次の2つのArchwiki記事から抜粋されました。
- ArchWiki:スワップ:スワップを無効にする
- ArchWiki: Systemd: ユニットの使用(ブロックとブロック解除のセクションを参照)
答え2
/lib/systemd/system/turnswapoff.service
次の内容を含むファイルを生成して、systemdにこれを行うように要求できます。
[Unit]
Description=Turn swap off
[Service]
ExecStart=/sbin/swapoff -a
[Install]
WantedBy=multi-user.target
起動時に実行されていることを確認してください。sudo systemctl enable turnswapoff
場所ではswapoff
ない可能性があります/sbin/swapoff
。確認してwhich swapoff
必要に応じて変更してください