私のディレクトリはtmpfsを使います/tmp
。/tmp
コンピュータに使用中のファイルを置き換える前にアプリケーションのファイルを置き換えるにはどうすればよいですか?
/tmp
デフォルトでは、内部ファイルはプロセスで使用されるメモリよりもスワップ可能でなければなりません。
この答えのようですhttps://unix.stackexchange.com/a/90337/56970言葉になりますが、個々のディレクトリの互換性を変更することはできません。 cgroupについて知っていますが、tmpをcgroupに切り替える方法はありませんか?
ベストアンサー1
すべてが順調に進むなら、カーネルは自分で「正しいことをする」と決めなければなりません。メモリプレッシャーがある場合は、さまざまな高度な経験的方法を使用して、何を交換して何を維持するかを決定します。これらの経験的な方法は、メモリ管理の広範な経験を持つ本当にスマートな人々が慎重に構築し、改善するのが難しいほど十分に優れています。
カーネルは、次の組み合わせを使用して何を変更するかを決定します。
- 最近のメモリ使用量。
- マッピング後にメモリが変更されたかどうか。たとえば、ヒープメモリが汚れてスワップに書き込まれる必要があるため、共有ライブラリはヒープメモリにプッシュされますが、共有ライブラリマッピングメモリは必要に応じてディスク上の元のファイルから再ロードできます。したがって、置き換えるためにそのページを作成する必要はありません。ここでは
tmpfs
バックアップがないため、メモリが常に汚れていることに注意してください(ゼロでいっぱいの新しいページでない限り)。 - のヒント
mprotect()
。 - さらにあるかもしれません。
短い答え:いいえ。メモリ管理方法に対するカーネルの決定を直接無視することはできません。