私のシステムには常に利用可能な「使用可能」メモリと「非アクティブ」メモリがありますが、システムはスワップのために数メガバイトを移動します。おそらく1泊あたり約100MB程度でしょう。しかし、数日間スワップすると4000MBを超える可能性があります。
システムに必要なメモリをどのように決定しますか?
ベストアンサー1
FreeBSDメモリを5つのリストに分割する:
- 有線(メモリにロックされており、ページングできません)
- アクティブ(最近使用)
- 非アクティブ(最近使用されていません)
- 隠れ家
- 無料
それらのいくつかは最小無料そして無料対象レベル、例えば
Pool Minimum Target
Free 0.7% 3%
Cache 3% 6%
Inactive 0% 4.5%
(源泉:FreeBSDオペレーティングシステムの設計と実装、かなり古い内容:2004年FreeBSD 5.2をカバーしています。それ以来、数字は変更されましたが、一般的なアプローチはそうではありません。 )
ページデーモンの使命は、レベルを維持し、必要に応じてページを取得することです。
ここで私のFreeBSD 9.0 VMでは、関連する番号は次のとおりです。
hw.availpages: 3138511
vm.stats.vm.v_inactive_target: 121342 # 3.9%
vm.stats.vm.v_free_target: 80895 # 2.6%
vm.stats.vm.v_free_reserved: 4011 # 0.1%
vm.stats.vm.v_free_min: 19221 # 0.6%
vm.stats.vm.v_cache_min: 80895 # 2.6%
vm.stats.vm.v_cache_max: 161790 # 5.1%
(どのように計算されるかはよくわかりません。物理メモリによって異なりますkern.maxusers
。)
FreeBSD利用可能なキャッシュを増やすために積極的にページングされます。したがって、スワップを使用してもシステムがストレスを受けているという意味ではありません。ページング速度やその他の負荷メトリック(ディスクI / OやCPUティックなど)を確認(およびグラフ!)すると、はるかに便利です。systat -io
これが始まりです。 Locate/updatedb を実行することは、一晩メモリ使用量を変更する良い方法です。
使用可能なメモリがある場合でも、スワップを使用することは通常の動作であり、空きメモリがある場合に発生する可能性があるメモリ要件に効果的に対処するため、スワップのみを使用することはRAM要件を決定する信頼できる方法ではありません。 FreeBSDは、調整が必要な時期を知らせるのにとても上手です(grep "see adjusts in file" messages
)。
その他の有用な資料: