スワップファイルのサイズを固定する必要がある理由は想像できません。仮想ボックスのハードドライブイメージファイルのように、動的にサイズを変更できないのはなぜですか?
スワップファイルのサイズを固定する必要がある理由は想像できません。仮想ボックスのハードドライブイメージファイルのように、動的にサイズを変更できないのはなぜですか?
回答:
Linuxは動的なスワップファイルのサイズ変更をサポートしていないようです(とにかく、swapoff
/ なしでスワップファイルのサイズが変更されたことを検出できませんでしたswapon
)。
おそらく、スワップファイルは、それをサポートするためのコードを記述するときに、ファイルサイズを動的に変更しないと仮定する方が簡単です。私もそれの素晴らしい使用を見ていません。複数のスワップファイルを使用できるため、必要に応じてさらにスワップファイルを作成できます。
また、swapon
マンページからこの段落に注意してください:
The swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the filesystem. This
is a problem on preallocated files (e.g. fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.
同じ問題が動的サイズのスワップファイルにも当てはまると思います。
SwapSpaceは、必要に応じて動的なサイズのスワップを作成できるユーティリティです。Ubuntuで利用できると思います。
私はそれが遅れていることを知っていますが、動的スワップの最善の解決策は次のとおりだと思います:
sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable
次に設定CONF_SWAPFACTOR=2
し/etc/dphys-swapfile
、最後に
sudo service dphys-swapfile start
swapon
コマンドを使用して、実行中のシステムにスワップスペースを追加できます。既存の(未使用の)スワップファイル/パーティションが必要です。作成するには、dd
コマンドを使用して連続したファイルを割り当てmkswap
、正しい制御情報をファイル/パーティションに追加します。
スワップファイルを削除するにはswapoff
、;を使用します。その後、ファイルを削除できます。
SwapSpace
@ user231695が言及したデーモンはそれが原因だと思う。
swapfileが使用中の場合、swapoffは遅い操作になる可能性があることに注意してください。すべてのデータを別のスワップ領域に転送する必要があります。