web-dev-qa-db-ja.com

tmpfsのサイズを設定するものは何ですか?いっぱいになるとどうなりますか?

tmpfsのサイズを設定するものは何ですか? (私のマシンでは/dev/shmにあります)/etc/fstabでエントリを確認できますが、サイズの表記はありません。 df -hで確認すると、システムに搭載されている物理メモリの半分のサイズのようです。これはデフォルトの動作ですか?

また、いっぱいになった場合はどうなりますか?動的に拡張して、実行中の他のプログラムをswapに強制しますか? tmpfs自体はswapパーティションに移動しますか?

最後に、何がメモリtmpfsまたはアプリケーションを優先しますか?つまり、tmpfsが十分にいっぱい(物理メモリの40%など)で、物理メモリの70%を必要とするプログラムがある場合、どちらが優先されますか?

21
Bichoy

Tmpfsのサイズを設定するものは何ですか? (私のマシンでは/ dev/shmにあります)/ etc/fstabでエントリを確認できますが、サイズの表記がありません。

kernel documentation は、マウントオプションの下でこれをカバーしています:

サイズ:このtmpfsインスタンスに割り当てられたバイトの制限。 デフォルトは物理の半分ですRAM swapなし。tmpfsインスタンスのサイズを大きくすると、マシンがデッドロックします

(エンファシス鉱山)

また、いっぱいになった場合はどうなりますか?

上記のように、tmpfsにコミットし過ぎると、マシンがデッドロックします。それ以外の場合(ハード制限に達したばかりの場合)、他のファイルシステムと同じようにENOSPCを返します。

最後に、メモリtmpfsまたはアプリケーションを優先するものは何ですか?つまり、tmpfsが十分にいっぱい(物理メモリの40%など)で、物理メモリの70%を必要とするプログラムがある場合、どちらが優先されますか?

これは、プログラム間の競合に似ています。最も使用頻度の高いページは物理メモリにある傾向があり、最も使用頻度の低いページはスワップアウトされる傾向があります。

ページが常に物理メモリ内にあることを確認する必要がある場合 ramfsを使用できます これは似ていますが、サイズが固定されており、スワップしません。

18
Bratchley