アプリケーションレベルでスワップを無効にできますか?

アプリケーションレベルでスワップを無効にできますか?

私は現在Thunderbirdとgnupgを使って暗号化された電子メールを読んでいます。スワッピングの動作を正しく理解すると、復号化された電子メールを含むメモリページをスワッピングしてハードドライブにトレイルを残すことができ、理論的には後で法医学を通じて回復することができます。

暗号化されたスワップファイルの使用中または重要なファイルの使用中にグローバルにスワップを無効にすることは確かに可能ですが、パフォーマンスに影響を与え、忘れてしまい、root権限が必要です。

特定のファイルやプログラムを交換不可能としてマークできますか?ルートアクセスなしで可能ですか?技術的に熟練したユーザーに配布でき、メモリの内容がディスクに交換されないアプリケーションを作成することは可能ですか?

ベストアンサー1

コメントでは、cgroupを作成しmemory.swappiness(スワッピングを最小限に抑えるために)0に設定し、その中でアプリケーションを実行することを提案しました。これにより、アプリケーションはおそらく物理メモリが不足しているため、そのcgroup内のプログラムのページをスワップすることが十分な物理メモリを確保する唯一の方法でなければ、スワップは発生しません。

RHEL 6.5でこれを行うには:

  • パッケージがインストールされていることを確認してくださいlibcgroup。これにより、cgcreateなどのユーザースペースツールにアクセスできます cgexec

  • cgconfig再起動後もcgroup設定の変更が維持されるようにサービスを開始して有効にします。 RHELでは、このサービスは/cgroupツリーの下に必要なファイルシステムもマウントする必要があります。

  • 次のコマンドを使用してcgroupを作成します。cgcreate -g memory:thunderbird

  • このグループの交換性を0に設定します。cgset -r memory.swappiness=0 thunderbird

  • cgsnapshot -s > /etc/cgconfig.confサービスの更新された永続構成を保存するために使用されますcgconfig(これまでの変更はすべて実行時の変更でした。デフォルトの構成ファイルをどこかに保存して永続構成にする前に一度確認できます。

  • cgexecこれで、cgroupで目的のアプリケーションを起動できますthunderbird

    [root@xxx601 ~]# cgexec -g メモリ: Thunderbird ls

    anaconda-ks.cfg a.out foreman.log index.html install.log install.log.syslog node.pp sleep sleep.c SSLビルドスタックテスト

    [ルート@xxx601〜]#

実際にインストールしていないか、インストールした可能性がありthunderbirdます。上記の形式がなぜ混乱しているのかよくわかりません。

  • 別の方法cgexecは、Thunderbirdを起動し、PIDをtasksアプリケーションファイルに追加することです。たとえば、

    [root@xxx601 ~]# 猫 /cgroup/memory/thunderbird/tasks

    [root@xxx601~]# pidof httpd

    25926 10227 10226 10225 10163 10162 10161 10160 10159 10157 10156 10155 10152 10109

    [root@xxx601 ~]# echo 25926 > /cgroup/memory/thunderbird/tasks

    [root@xxx601 ~]# 猫 /cgroup/memory/thunderbird/tasks

    25926

繰り返しますが、これが技術的にスワップを防ぐわけではありませんが、アプリケーション自体を変更しないことはおそらく最良の選択肢でしょう。私はmemory.memsw.limit_in_bytesこれが強制的な存在をより直接的に制御できるように見えることを発見しました。いいえ交換しましたが、問題が完全に解決されたと言えるほど十分に試みませんでした。つまり、これは後で見ることができます。


実際の答えは、mlockこれらの問題を解決するためにアプリケーションに機密情報を提供することです。それでもThunderbirdのようなアプリはこれをやろうと思っていますが、それについてコメントするのに十分な内部についてはわかりません。

おすすめ記事