web-dev-qa-db-ja.com

量RAMが変更されると、tmpfsは自動的にサイズ変更されますか?また、複数のtmpfsがある場合は競合しますか?

Tmpfsを50%に設定し、後でRAMを追加または削除した場合、tmpfsはパーティションサイズを自動的に調整しますか?

また、複数のtmpfsがそれぞれ50%に設定されている場合はどうなりますか。複数のtmpfsが同じ50%で互いに競合しますか?これはOSによってどのように管理されていますか?

6
CMCDragonkai

tmpfsインスタンスをパーセンテージでマウントすると、システムのパーセントサイズが必要になりますphysical ram。たとえば、2 GBの物理RAMがあり、tmpfsを50%でマウントする場合、tmpfsのサイズは1GBになります。シナリオでは、システムに物理RAMを追加します。たとえば、別の2 GBの場合、システムには4GBの物理RAMがあります。 tmpfsをマウントすると、サイズは2GBになります。

それぞれ50%が設定されたtmpfsの複数のインスタンスをマウントする場合、それは機能します。 both tmpfsインスタンスが完全に埋められた場合、システムは使用頻度の低いページをスワップアウトします。スワップスペースもいっぱいになると、No space left on deviceエラーが発生します。

編集

tmpfsは、使用されたメモリの量のみを使用し、50%全体は使用しません。したがって、これらの1GBのうち10MBのみが使用される場合、tmpfsインスタンスはそれらの10MBのみを占有します。それは予約されていません、それは動的です。 50%の複数のインスタンスでは、メモリを必要とする最初のインスタンスがメモリを取得します。 50%が占有されているかどうかに関係なく、システムは使用頻度の低いページをスワップします。 tmpfsインスタンスは、物理RAMを使用するのかスワップスペースを使用するのかを認識していません。必要に応じて、100GBのtmpfsをマウントできます。

RAMを追加する前にシステムをシャットダウンすると仮定します。したがって、tmpfsは起動時に再マウントされます。システムの実行中にRAMを追加すると、RAMを揚げる、マザーボード、そしておそらくあなたの手になります。私は本当にそれをお勧めすることはできません:-)

ソース

5
chaos