Solarisでは、/ tmpファイルシステムは「tmpfs」タイプのファイルシステムです。これは、仮想メモリプールから割り当てられたスペースによってカーネルに実装されます。つまり、割り当ては、マシン上の使用可能なRAMおよび使用可能なスワップスペースと相互作用します。
サイズが小さい中程度のスワップパーティションを持つ大容量メモリマシン(大量のRAM)がある場合、/ tmpスペースのサイズは、メモリ、スワップスペース、または両方の合計によって制限されますか?
「df-h/tmp」で示されている数値は、空きRAMを反映していないようで、スワップスペースのみを反映しているようです。
これが私がこれまでに知っていることです。役に立つことを願ってここに置きますが、改良は大歓迎です。
スワップスペースとRAMの合計は、/ tmpファイルで使用できるはずです。詳細については、tmpfs、mount_tmpfs、およびswapのマニュアルページを参照してください。
関連するドキュメントは次のとおりです。
Oracle Solaris 11.1の管理:デバイスとファイルシステム http://docs.Oracle.com/cd/E26502_01/html/E29006/fsswap-29713.html
Tmpfsのmanページの終わりに私はこれを見つけました:
df(1M) output is of limited accuracy since a tmpfs file sys-
tem size is not static and the space available to tmpfs is
dependent on the swap space demands of the entire system.
Oracleサポートドキュメント1007407.1は、この条件が真になった場合、実装がスペース不足を報告することを提案しています。
((RAM + swap - process-space) * .9) - space-from-files-in-tmp = 0
これは、ある種のファッジ要因が関係していることを示しているようです。
その式の私の解釈は、実行中のプロセスがメモリ+スワップの真の制限にはるかに近づくことができるということです。/tmpに割り当てられたスペースは、(RAM + swap)の空きスペースが10%に近づくと失敗し始めます。大きいRAM(128Gなど)と小さいデフォルトスワップ(4Gなど)がある場合、これは、スワップスペースからページが割り当てられる前に/ tmpがいっぱいであることを報告する可能性があることを意味します。それは何も悪いことではありません。それは、従来の仮想メモリのアルゴリズムと仮定に奇妙なひねりを加えただけです。