web-dev-qa-db-ja.com

Linuxの「トップ」コマンドからの出力を解釈する方法は?

[〜#〜]ここ[〜#〜]PHP-FPMがメモリを消費する方法についての議論に続き、topコマンドでメモリを読み取る際に問題が発生しました。これは、PHP-FPMを再起動した直後のtopのスクリーンショットです。すべて正常です。約20のPHP-FPMプロセスは、それぞれ5.5MBのメモリを消費します(合計の0.3%)。

enter image description here

PHP-FPMを再起動する直前のサーバー(前回の再起動から1日後)を次に示します。ここでも、約25のPHP-FPMがあり、メモリ使用量は2倍です(10MBは合計の0.5%を示します)。したがって、使用されるメモリの合計は600〜700 MBになります。では、なぜ1.6GBのメモリが使われたのでしょうか?

enter image description here

27
Googlebot

Topは、メモリ使用量を確認するための最良の方法ではありません。ただし、 私の質問 はこの質問の重複としてマークされたので、ここに私の解決策を投稿します。

forum を読み、ps_mem.pyがメモリ使用量をチェックします。

リポジトリ: https://github.com/pixelb/ps_mem/

ダウンロード:

pip install ps_mem

使用法:

ps_mem

出力:

# ps_mem
 Private  +   Shared  =  RAM used   Program

  4.0 KiB +  15.5 KiB =  19.5 KiB   udevd
  4.0 KiB +  16.0 KiB =  20.0 KiB   mysqld_safe
  4.0 KiB +  25.5 KiB =  29.5 KiB   dbus-daemon
  4.0 KiB +  27.5 KiB =  31.5 KiB   xinetd
 60.0 KiB +  14.5 KiB =  74.5 KiB   epmd
108.0 KiB +  23.0 KiB = 131.0 KiB   init
  8.0 KiB + 135.0 KiB = 143.0 KiB   saslauthd (2)
180.0 KiB +  34.0 KiB = 214.0 KiB   check_scripts.s
796.0 KiB +  41.0 KiB = 837.0 KiB   bash
528.0 KiB + 359.0 KiB = 887.0 KiB   crond (7)
  1.2 MiB + 218.0 KiB =   1.4 MiB   sshd (2)
  1.6 MiB +  45.0 KiB =   1.6 MiB   rsyslogd
  2.0 MiB + 133.0 KiB =   2.1 MiB   beam.smp
  1.3 MiB +   2.3 MiB =   3.6 MiB   httpd (8)
 12.8 MiB + 956.0 KiB =  13.8 MiB   sendmail.sendmail (7)
 53.5 MiB + 114.0 KiB =  53.7 MiB   mysqld
317.6 MiB +   2.3 MiB = 320.0 MiB   python (6)
---------------------------------
                        398.5 MiB
=================================
1
User