Redhatがプロセスメモリ使用量を探しています

Redhatがプロセスメモリ使用量を探しています

私が見るとき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や他のディスクを読み書きする必要性を減らしたり取り除いたりすることで、データアクセス速度を大幅に向上させることができます。

おすすめ記事