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