私はCIFSを介して外部NASに切り替えるRaspberry Piを持っています(私は判断しないでください:))(リンクは直接100Mbit全二重イーサネット接続です)。スワッピングは、特定のしきい値(約100 MB)に達するまでうまく機能します。これによりシステムが停止し、NAS へのネットワーク接続が中断されます。 Samba共有は自動マウントでマウントされます。 Piがスワップファイルの使用を中止した理由を知りたい場合は、どこから始めるべきですか?ただ重いプログラムをコンパイルしているので、速度が遅くなることは問題になりませんが、プログラムが停止したら強制的に再起動する必要があります。
答え1
カーネルコードだけを見れば、CIFSマウントでファイルを交換することもできないはずですが、これが動作するという事実にかなり驚きました。ネットワークファイルシステムでのスワッピングには2つの一般的な問題があります。
- Linuxで交換するには、静的ブロックマッピングが必要です。これが記録されていない範囲を使用しない限り、スワップファイルが希薄ではない理由であり、書き込み中にコピーまたはログ構造ファイルシステムにスワップファイルを保存するにはラウンドロビンデバイスが必要です。理論的には、屋根ふき装置を使用してこの問題を解決できますが、これは最後の手段でなければなりません。
- 一部のプロトコルまたは認証設定にはユーザースペースコンポーネントが必要であり、そのコンポーネントがアドレス空間全体をmlock()しないとユーザースペースコードを実行できないため、何も変更できない状況が発生する可能性があります。 t mlock() をメモリにロードします。
CIFS は、認証を使用し、システムが継続的な接続を維持しない場合、第 2 の問題と同様に、第 1 の問題として困難になります。
Piを使用すると言われましたが、ZRAMとローカルスワップファイル(まともなSDカードは安い)の使用を検討してください。必要に応じて、SDカードの代わりにUSBフラッシュドライブを使用することもできます。
あるいは、より一般的に合理的なNASシステムがある場合(通常の好みの順序で)、NBD、ATA over Ethernet、またはiSCSIを介して交換することを検討することができます(Piで設定する方法に応じて、上記の2番目の制限)。