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


13

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


Linuxは、実行時にスワップスペース全体を追加および削除するオプションをカウントしない限り、動的スワップスペースサイズをサポートしません。(Windowsも同じです。後者もそうではありません。)
David Foerster

Macはダイナミックスワップをサポートしていますか?
トム・マーサー

何も思いつきません。それは私が勉強しなかった全く異なるカーネルです。Linuxのスワップスペースに似ている可能性があります。とにかく、あなたは新しい質問開いてください可能性のUnixとLinuxのか、さまざまな依頼あなたはOS Xのダーウィンのカーネルについての新しいやフォローアップの質問がある場合は?コメントセクションは、新しい質問や詳細なディスカッションには適していません。:-)ありがとう。
デビッドフォースター

Windowsの@DavidFoersterでは、各ページファイルの最小サイズと最大サイズを設定でき、Windowsは必要に応じてページファイルのサイズを増やします。tomshardware.com/news/...
phuclv

回答:


11

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は動的にスワップのサイズを変更することさえしません。
トム・マーサー

2

SwapSpaceは、必要に応じて動的なサイズのスワップを作成できるユーティリティです。Ubuntuで利用できると思います。


2年前に新しいリリースがリリースされましたが、Ubuntu用にパッケージ化されたバージョンはすべて古いようです。どのくらいうまく機能しますか?
ムル

スワップファイルの書き込みに使用された方法が変わったとは想像できませんが、確かに言うことはできませんでした。debianで正常に動作します。
user231695

新しいスペースを作成するのは同じくらい簡単なので、私はまだあなたの答えを投票します。
user231695

これを試して、報告します。
トム・マーサー

@ user231695は、新しいスワップスペースの作成は簡単ですが、恐ろしく不便であり、ソリューションとしては完全に機能しません。ユーザーが新しいスワップスペースを追加したいのは、既存のスワップがいっぱいになったときだけです。したがって、スワップファイルの動的なサイズ設定に関する私の質問です。
トム・マーサー

1

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

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

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

sudo service dphys-swapfile start

動的にスワップのサイズを変更するようには見えません。デフォルトで2倍のRAM容量に設定されている特定のサイズのスワップファイルを初期化するスクリプトのように見えます。
トム・マーサー

こんにちは@TomMercerは、swapfactorとmaxswapを設定します。ファイル内のコメントによると、「#サイズを計算値に設定し、今回はRAMサイズを動的に調整し、ディスクスペースを無駄にせずに十分なスワップを保証します」。「動的に適応」は、あなたが探しているもののようです。ベスト
デニスピツァリス

OSを使用してRAMをいっぱいにしているときに、スワップファイルのサイズが1KBから16GBの間で変化するのでしょうか?それが「動的にサイズを変更する」スワップの意味です。RAMサイズの倍数のスワップファイルを作成することは動的ではありません。RAMがいっぱいになるまでスワップファイルを用意しても意味がありません。そして、使用しているVRAMのサイズにスワップファイルを正確に設定する必要があります。作業中のタブまたは巨大な画像を閉じると、swapfileは動的にサイズを変更します。Swapfileは、それ自体を動的にサイズ変更することにより、常に完全に100%いっぱいにする必要があります。
トム・マーサー

0

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

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

SwapSpace@ user231695が言及したデーモンはそれが原因だと思う。

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

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