web-dev-qa-db-ja.com

物理ボリュームでtmpfsを拡張する方法は?

/tmpdirに2Gのtmpfsを使用して、Javaユニットテスト:実行中IO /tmpで集中的に操作します。
これが/etc/fstabファイルのtmpセクションです。

tmpfs /tmp tmpfs rw,noatime,size=2G,nodev,mode=1777,noexec,nosuid,rootcontext=system_u:object_r:tmp_t 0 0

ほとんどの場合、正常に動作していますが、/tmpに2Gを超えるディスク容量が必要になる場合があります。これは通常、一部のアプリケーションが更新をダウンロードするときに発生します。この場合、パフォーマンスは私にとって重要ではないので、物理ボリュームまたはループバックファイルに書き込みたいと思います。

/tmpディレクトリサイズが2G未満の場合、tmpfsを使用し、必要に応じて他のファイルシステムで拡張することは可能ですか?

2
g4s8

tmpfsサイズを変更する必要がある場合は、新しいサイズでオンラインで再マウントできます。

mount -o remount,size=<new size> /tmp

また、システムに十分な大きさのスワップを用意してください。空きがある場合RAMが少ない場合、メモリ(tmpfsを含む)はページングされてスワップされます。

スワップによってシステムの速度が低下することはなく、カーネルは最も使用頻度が低くキャッシュされたものを最初にスワップし、バランスはvm.swappinessパラメーターで調整できます。 vm.swappinessの適切な説明については、 デフォルトでswappinessが60に設定されているのはなぜですか? を参照してください。アクティブなページがスワップされたためにシステムの速度が低下し始めた場合、原因はスワップではありません。その理由は、システムのRAMが不足しているためです。

スワップファイルを作成することで、合計スワップスペースを増やすことができます(注:スワップファイルを btrfs ファイルに配置することはできませんシステム)。 ddを使用して新しいファイルを作成して割り当て、mkswapを使用してスワップ領域として設定します。スワップファイルが誰でも読み取り可能でないことを確認してください。メモリの内容を漏らしたくないでしょう。

dd if=/dev/zero of=<swap file> bs=1M count=<size>
chmod 600 <swap file>
mkswap <swap file>

そしてそれを有効にするには:

swapon <swap file>

スワップファイルをfstabに追加して、自動的に使用可能にすることもできます。

3
sebasth