TL; DR 1
サーバーは、ある種のvirtuozzo / openvz / virtualization-du-jourコンテナー内にあります。メモリ使用量の意味を理解しようとすることは、風車で傾いています。
TL; DR 2
LinuxはRAMを食べました!しかし、それは大丈夫です、それは皆にそれをします。
ロングストーリー
分解しましょう!
でMem:
セクション我々は持っています:
$n total
:マシンの物理RAMの量
$n used
:プロセスの合計だけでなく、Linuxが消費しているメモリの量。
$n free
:Linuxが消費していないRAMの量。これは、キャッシュされたメモリとバッファされたメモリが本質的に「無料」であることを考慮していません。
$n buffers
:バッファスペースは、読み取り済みまたは書き込み保留中のディスクI / Oのブロックが格納される場所です。バッファは、単一のディスクブロックのRAM表現です。
でSwap:
セクション我々は持っています:
$n total
:自明です。ページをスワップするために使用可能なディスク容量。
$n used
:自明です。使用されているディスクスワップ領域の量。
$n free
:Herp Derp。
$n cache
:上記のバッファと密接に関連しています。それは実際にはページキャッシュの一部であり、それ自体は物理ディスク上にスペースを持ちません。この会話の詳細について心配する必要はありません。
あなたが走るとき面白い部分が来ますfree -m
。3行が表示され、すべての数値がtopと相関します。例として自分のPCを挙げます。
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
Memの行は、ショー(メガバイト単位の合計RAM $n total
(使用されているどのくらいのトップで)、 $n used
(無料でどれだけ上位に)、$n free
共有されているどのくらいのトップに)、(これを無視する)、そして今、良い部分が来ます!列相関させるために、予想通り、と。しかし、その2行目で始まる行を見てください。数学は、使用量が実際に(合計)-((used-buffers)-cached)であることを示しています。無料は(合計)-(theNewUsed)です。buffers
cached
free -m
$n buffers
$n cache
free -m
-/+ buffers/cache:
これはどういう意味ですか?LinuxがRAMを食べたということです!簡単に言えば、Linuxカーネルはディスクキャッシングに使用可能なRAMを消費するということです。カスタムカーネルをコンパイルしようと思わない限り、それに対してできることは何もありません。プロのヒント:しないでください。
RAMは実際に存在し、プロセスが自由に使用できるようになっています。それがの-/+ buffers/cache:
行の意味free -m
です。ただし、ハイパーバイザー以外の仮想化コンテナの内部にいるため、物事が少し面倒になります。この時点では、バイト精度でメモリを確保することはできません。ただし、非常に異常な動作は見られません。
冷静に、戦い続けよ。また、物理サーバーを取得します(KreskinがSysAdminのように見えるメモリ統計が好きでない限り)。