GNU/Linux >> Linux の 問題 >  >> Linux

tmpfs でスワップ (明らかに悪い考えですが、可能ですか?)

それは不可能です。 swapon システムコールには readpage が必要です そして bmap (間接的に) ファイルシステムによって実装されている呼び出し:

http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412

if (!mapping->a_ops->readpage) {
    error = -EINVAL;
    goto bad_swap;
}   

しかし、tmpfs によって実装されているものはありません 、そのようなエントリは対応する address_space_operations にありません :http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104

同じ理由で、tmpfs はループ マウントを保持できず、ramfs も機能しません (bmap はありません)。 コール)


この Q&A から https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (元の参照サイトは応答していません):

<ブロック引用>

したがって、「無効な引数」は「あなたのファイルシステムはスワップファイルをサポートしていません」と読む必要があります

私が疑う非互換性の理由は、「循環依存」です。この記事から:http://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk:

<ブロック引用>

ramfs と tmpfs のこれら 2 つの違いにより、tmpfs ははるかに管理しやすくなりますが、これは大きな欠点の 1 つです。 tmpfs は SWAPspace を使用する場合があります。システムの物理 RAM が不足すると、tmpfs パーティション内のファイルがディスク ベースの SWAP パーティションに書き込まれる可能性があり、次にファイルにアクセスするときにディスクから読み取る必要があります。

あなたのシナリオでは、これはほとんど不可能です。

かもしれない ramfs で動作します 、そう - この問題はありません。


Linux
  1. NginXでHTTPをHTTPSにリダイレクトする

  2. Linuxスワップファイルを作成する

  3. Linuxでシャットダウンを中止することは可能ですか?

  1. Linux で .dll を使用可能

  2. address:port に対して ping を実行できますか?

  3. OpenVZ コンテナーで apt-get upgrade を行うのは悪い考えですか?

  1. HTTP ダウンロードがしばらくすると停止し、再開できません

  2. Linux:可能なすべてのものを明示的にスワップ解除する方法は?

  3. Centos ユーザー アカウントは nologin ですが、アカウントに su することは可能です