tmpfs
のサイズを設定するものは何ですか? (私のマシンでは/dev/shm
にあります)/etc/fstab
でエントリを確認できますが、サイズの表記はありません。 df -h
で確認すると、システムに搭載されている物理メモリの半分のサイズのようです。これはデフォルトの動作ですか?
また、いっぱいになった場合はどうなりますか?動的に拡張して、実行中の他のプログラムをswap
に強制しますか? tmpfs
自体はswap
パーティションに移動しますか?
最後に、何がメモリtmpfs
またはアプリケーションを優先しますか?つまり、tmpfs
が十分にいっぱい(物理メモリの40%など)で、物理メモリの70%を必要とするプログラムがある場合、どちらが優先されますか?
Tmpfsのサイズを設定するものは何ですか? (私のマシンでは/ dev/shmにあります)/ etc/fstabでエントリを確認できますが、サイズの表記がありません。
kernel documentation は、マウントオプションの下でこれをカバーしています:
サイズ:このtmpfsインスタンスに割り当てられたバイトの制限。 デフォルトは物理の半分ですRAM swapなし。tmpfsインスタンスのサイズを大きくすると、マシンがデッドロックします
(エンファシス鉱山)
また、いっぱいになった場合はどうなりますか?
上記のように、tmpfsにコミットし過ぎると、マシンがデッドロックします。それ以外の場合(ハード制限に達したばかりの場合)、他のファイルシステムと同じようにENOSPCを返します。
最後に、メモリtmpfsまたはアプリケーションを優先するものは何ですか?つまり、tmpfsが十分にいっぱい(物理メモリの40%など)で、物理メモリの70%を必要とするプログラムがある場合、どちらが優先されますか?
これは、プログラム間の競合に似ています。最も使用頻度の高いページは物理メモリにある傾向があり、最も使用頻度の低いページはスワップアウトされる傾向があります。
ページが常に物理メモリ内にあることを確認する必要がある場合 ramfsを使用できます これは似ていますが、サイズが固定されており、スワップしません。