私が見るときcat /proc/meminfo
:
MemTotal: 1048576 kB
MemFree: 11136 kB
Buffers: 0 kB
Cached: 0 kB
SwapCached: 0 kB
Active: 0 kB
Inactive: 0 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 1048576 kB
LowFree: 11136 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 88 kB
Writeback: 0 kB
AnonPages: 0 kB
Mapped: 0 kB
Slab: 0 kB
PageTables: 0 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 0 kB
Committed_AS: 0 kB
VmallocTotal: 0 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
これを実行してtop
メモリごとに並べ替えると、次のようになります。
%MEM TIME+ COMMAND
%22.9 0:44.11 java
% 0.1 0:04.57 init
% 2.9 0:02.52 /usr/local/cpan
% 0.3 0:00.50 sshd
% 1.5 0:00.14 mysqld
% 0.5 0:00.13 leechprotect
% 0.1 0:00.12 bash
% 0.4 0:00.11 httpd
% 0.3 0:00.07 queueprocd - wa
% 0.4 0:00.06 tailwatchd
% 0.8 0:00.02 cpsrvd-ssl
% 0.1 0:00.02 top
% 0.1 0:00.01 syslogd
% 0.4 0:00.01 named
% 0.1 0:00.00 udevd
% 0.0 0:00.00 klogd
% 0.0 0:00.00 courierlogger
% 0.1 0:00.00 authdaemond
% 0.0 0:00.00 authdaemond
% 0.0 0:00.00 authdaemond
% 0.1 0:00.00 sshd
% 0.1 0:00.00 xinetd
% 0.1 0:00.00 mysqld_safe
% 0.0 0:00.00 courierlogger
% 0.1 0:00.00 couriertcpd
% 0.1 0:00.00 exim
% 0.1 0:00.00 pure-ftpd
% 0.1 0:00.00 pure-authd
% 0.1 0:00.00 crond
% 0.0 0:00.00 atd
% 0.2 0:00.00 cPhulkd - proce
% 2.8 0:00.00 spamd child
% 0.8 0:00.00 cpdavd - accept
% 0.4 0:00.00 httpd
% 0.4 0:00.00 httpd
% 0.4 0:00.00 httpd
% 0.4 0:00.00 httpd
% 0.4 0:00.00 httpd
% 0.2 0:00.00 cpanellogd - sl
% 0.1 0:00.00 saslauthd
% 0.0 0:00.00 saslauthd
% 0.1 0:00.00 ssh-agent
実際には、1000MBのうち900MBを使用するのに上部に〜38%使用されたと表示されるのはなぜですか?各プロセスが使用するメモリ量をどのように知ることができますか?
ベストアンサー1
Linuxを初めて使い始めると、メモリ使用量が混乱する可能性があります。一般に、Linuxでは、RAMをプロセス用に予約するのではなく、すべてのRAMを使用する必要があるという観点があります。
したがって、RAMは両方のプロセスで使用され、ファイルがハードドライブからロードされるとファイルキャッシュとして機能します。free
次のコマンドを使用すると、これをよりよく表示できます。
# free output in MBs
$ free -m
total used free shared buffers cached
Mem: 7800 6724 1075 0 397 1952
-/+ buffers/cache: 4374 3425
Swap: 5823 27 5796
これは、約7.8GBのRAMがあり、そのうち約6.7GBが使用されており、約1GBの空き容量が残っていることを示しています。
Mem: 7800 6724 1075 0 397 1952
次の行は、実際に何が起こっているのかについてのアイデアを提供します。
-/+ buffers/cache: 4374 3425
この行は、最初の行が「使用済み」と報告された〜6.7 GBを示しています。バッファとキャッシュを混合から除外すると、実際には ~4.4GB だけ使用しているのです。だから実際には〜3.4GBの空きメモリがあります。
バッファとキャッシュは、パフォーマンスを向上させるためにカーネルがHDDからRAMにロードするファイルです。
から抜粋linfo.org
データの2行目は-/+ buffers/cacheで始まり、現在のシステムバッファキャッシュに専用に使用されている物理メモリの量を示します。これは、システムコールを使用して実行されるシステムファイルからアクセスされるすべてのデータがこのキャッシュを通過する
read()
ため、アプリケーションにとって特に意味があります。write()
このキャッシュは、HDDや他のディスクを読み書きする必要性を減らしたり取り除いたりすることで、データアクセス速度を大幅に向上させることができます。