Ubuntu 10.04および512Mb RAMを備えたvpsシステムがあります。 mongodbデーモンを実行した後、使用可能なメモリがどれくらいになるかを推測しようとしています。
走ればfree -m
手に入る
total used free shared buffers cached
Mem: 496 489 6 0 4 452
-/+ buffers/cache: 33 462
Swap: 511 4 507
走ればps euf
手に入る
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 948 0.0 0.0 5928 472 tty6 Ss+ Aug25 0:00 /sbin/getty 384
root 947 0.0 0.0 5928 472 tty5 Ss+ Aug25 0:00 /sbin/getty 384
root 946 0.0 0.0 5928 472 tty4 Ss+ Aug25 0:00 /sbin/getty 384
root 945 0.0 0.0 5928 472 tty3 Ss+ Aug25 0:00 /sbin/getty 384
root 944 0.0 0.0 5928 472 tty2 Ss+ Aug25 0:00 /sbin/getty 384
root 943 0.0 0.1 51856 536 hvc0 Ss Aug25 0:00 /bin/login --
root 978 0.0 0.4 20580 2424 hvc0 S Aug25 0:01 \_ -bash TERM=
root 7593 0.0 0.1 10332 524 hvc0 T Aug25 0:00 \_ nano he
root 12576 0.7 3.1 122520 16220 hvc0 Sl 07:42 0:12 \_ ./mongo
root 12599 0.0 0.2 16300 1060 hvc0 R+ 08:09 0:00 \_ ps euf
これはプロセスがメモリの5%未満を使用しているようですが、利用可能なメモリは6MBしかありません。なぜですか?
答え1
バッファとキャッシュサイズは動的に調整されます。プロセスにさらに多くのスペースが必要な場合は、バッファとキャッシュからスペースを取得します。
重要なのは、2行目(「-/+ buffers / cache」)を調べることです。
Mem: 496 489 6 0 4 452
-/+ buffers/cache: 33 462
2行目のfree(462)は、6(free)、4(buffer)、452(cache)の合計です。これは実際の空き容量の量です。この値が低すぎると、システムはメモリ内のプロセスをスワップ空間にスワップし始めます。
実際には33MBのメモリを使用しています。書くことができる462MB - まだいくつかのI / Oバッファが必要なので、少し少ない場合があります。
答え2
正確な説明とは別に寄稿者: alceさらに、あなたの説明には2つの誤解が隠されていますps euf
。
このコマンドは
ps euf
すべてのプロセスをリストするわけではありません。ps axeuf
代わりにこのコマンドを使用する必要があります。ご覧のとおり、各プロセスで使用されているメモリの割合が丸められています
0.1%
。したがって、これを追加すると誤った結果が発生します。 (おおよそ)すべてのプロセスが使用します。一部RAM – 少なくても0.1%
。たとえば、それを使用する20のプロセスがある場合ではなくなるまで0.05%
合計されます。1%
0%