web-dev-qa-db-ja.com

FreeBSDの異なるメモリカウンタはどういう意味ですか?

トップは私に言います:

last pid: 64807;  load averages:  0.99,  0.97,  0.92                                          up 189+04:47:22 09:16:17
45 processes:  1 running, 44 sleeping
CPU:  0.4% user,  0.0% Nice,  0.2% system,  6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free

Munin はこれをもう少し明確に示しています:

rtr1 yearly memory usage

ご覧のとおり、サーバーには約8 GBのRAMがあります。私はこの獣をより多くの 控えめな2GBサーバー に詰め込むことができるかと思います。アクティブとバッファの意味がわかったと思います。しかし、私はメモリの「ワイヤード」および「非アクティブ」ブロブについて本当に心配しています。私が知る限り、これらは既存のプロセスにマッピングされません。

緑の「アクティブ」ラインが12月にどのように上がったかに注目してください。それが、このルーターでBGPデーモンの使用を開始したときです。 4月と5月に何が起こったのか正確にはわかりませんが、システムのアップグレードを行い、その頃に pkgng に切り替えたことを覚えています。

RAMが少ない(4GB)、最初のルーターのスペアルータを次に示します。

rtr0 yearly memory usage

これはRAMの半分で完全にうまく機能し、約2GBの空きを残しているようです。これにより、このサーバーを2GBのボックスに切り替えることができ、コストとメンテナンスを削減できると思います...

助言がありますか?上に表示されているさまざまなメモリカウンタは何を意味していますか?より具体的には、何をしますか:

  • アクティブ
  • 非活性
  • キャッシュ
  • バッファー
  • 有線
  • 自由

...本当に意味?私は 一部の投稿 を見つけましたVMサブシステムが機能することの説明ビットであり、約12年前にこれをすべて理解している "ah-ah!"の瞬間を覚えています、でも忘れてしまった:)忠実なFreeBSDハンドブック 私の質問に答えられなかった ...

2GBにダウングレードできますか?

20
anarcat
  • Active:プロセスが現在使用しているメモリ
  • Inactive:解放されたが、再度使用される可能性があるためキャッシュされているメモリ。さらにFreeメモリが必要な場合は、このメモリをクリアして解放できます。このメモリは必要になる前にクリアされません。「空きメモリは無駄なメモリです」ので、再度必要になった場合に備えて古いデータを保持しておくのにコストはかかりません。
  • Wired:カーネルが使用中のメモリ。このメモリはスワップアウトできません
  • Cache:データのキャッシュに使用されているメモリ。必要に応じてすぐに解放できます
  • Buffers:ディスクキャッシュ
  • Free:完全に解放され、すぐに使用できるメモリ。 InactiveCache、およびBuffersは、クリーンアップされた場合、フリーになる可能性があります。

したがって、InactiveFreeカウントに追加して、未使用と見なすことができます。 Wiredはカーネルが使用しているメモリで、ネットワークスタックが含まれます。ランニング netstat -mは、ネットワークスタックによるメモリ使用量の概要を示します。

グラフに基づいて、3月の初めのwiredメモリの急上昇を除いて、はい、2GBのRAMでそのワークロードを実行できるはずです。その場合、ポインタが64ビットではなく32ビットになるため、各メモリ割り当てに必要なスペースが少なくなるため、AMD64の代わりにi386を実行することを検討してください。

25
Allan Jude