tmpfs はスワップをオーバーフローしません。

tmpfs はスワップをオーバーフローしません。

私はtmp次のように構成しました。/etc/fstab

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 2

問題は、/tmpコンピュータのメモリの半分に制限されており、その制限に達すると、「デバイスに残りのスペースがありません」というエラーが発生することです。

私はそれが「無限」であることを望みます。つまり、ディスクサイズまで大きくしたいのです。

ベストアンサー1

私の考えでは、あなたには少し誤解があるようですtmpfs。次の内容を読んでください。カーネル文書トピックについてここでいくつかのことを明確に説明します。

あなたの質問のタイトル「スワップはオーバーフローしません」はスワップをオーバーフローしませんが、とにかくスワップを使用する質問tmpfsの実際の内容を反映していないようです。本質的に(仮想)メモリベースのファイルシステムです。その内容はメモリにのみ存在しますが、スワップ可能であるため、カーネルは必要に応じて物理メモリではなくスワップに保存できます。ただし、ファイルシステムは使用可能な仮想メモリの総量より大きくすることはできません。tmpfstmpfstmpfsつまり図に示すように、物理RAMとスワップ領域例えば合格free -h

デフォルトでは、tmpfs最大ファイルシステムサイズは使用可能な物理メモリ量の半分に等しくなります。パラメータを使用してこの値を増やすことはできますが、size使用可能な物理メモリとスワップを超えることはできません(この制限はインストール時には適用されませんが)。ファイルシステムが最大サイズに達すると(またはそれだけのスペースを占めるファイルが含まれている場合)、見つかったとおりにスペース不足を報告します。tmpfsスペースが足りない場合、デフォルトではオーバーフローはサポートされません。

大容量ファイルを一時的に保存するスペースが必要な場合は、代わりにを/var/tmp使用する必要があります。ファイルシステムがいっぱいになると、災害が発生する可能性がある大容量/tmpファイルシステムは望ましくありません(カーネルの一般的なメモリ回復方法はメモリ回復では機能しません)。 )。tmpfstmpfs

(もちろん、RAMが多ければ大きなものも動作tmpfsします。私はtmpfsRAMの75%、32GiB、64GiBなどのビルドファイルシステムを使ってシステムを実行しました。)

おすすめ記事