web-dev-qa-db-ja.com

Ubuntuは動的なスワップファイルのサイズ変更をサポートしていますか?

スワップファイルのサイズを固定する必要がある理由は想像できません。仮想ボックスのハードドライブイメージファイルのように、動的にサイズを変更できないのはなぜですか?

12
Tom Mercer

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.

同じ問題が動的サイズのスワップファイルにも当てはまると思います。

11
muru

SwapSpace は、それがあなたが探しているものである場合、動的にサイズ変更されたスワップを行うことを可能にするユーティリティです。 Ubuntuで利用できると思います。

2
user231695

私はそれが遅いことを知っていますが、動的スワップの最良の解決策は次のとおりだと思います:

Sudo apt install dphys-swapfile
Sudo update-rc.d dphys-swapfile enable

CONF_SWAPFACTOR=2/etc/dphys-swapfileを設定し、最後に

Sudo service dphys-swapfile start
1
Denis Pitzalis

swaponコマンドを使用して、実行中のシステムにスワップスペースを追加できます。既存の(未使用の)スワップファイル/パーティションが必要です。作成するには、ddコマンドを使用して連続ファイルを割り当て、次にmkswapを使用してファイル/パーティションに正しい制御情報を追加します。

スワップファイルを削除するには、swapoffを使用します。その後、ファイルを削除できます。

@ user231695が言及したSwapSpacedæmonがそれをしていると思う。

Swapfileが使用中の場合、swapoffは遅い操作になることに注意してください。すべてのデータを別のスワップ領域に転送する必要があります。

0
CSM