PR

Linux上で実行しているプロセスのメモリ量を確認する方法

スポンサーリンク
Linux

Linux上で実行しているプロセスのメモリを確認する2つの方法を紹介します。

/proc/<PID>/status を確認する方法

今回はmysqld(MySQLデーモン)が使用しているメモリ量を確認してみます。

まずはps -efコマンドでmysqldのPIDを確認します。

[root@cent77 ~]# ps -ef |grep mysqld |grep -v grep
mysql     1114     1  1 23:41 ?        00:00:02 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

/proc/<PID>/status をcatで確認します。

[root@cent77 ~]# cat /proc/1114/status |grep Vm
VmPeak:  1187868 kB
VmSize:  1135688 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    195596 kB
VmRSS:    195596 kB
VmData:  1076908 kB
VmStk:       132 kB
VmExe:     25664 kB
VmLib:      4264 kB
VmPTE:       620 kB
VmSwap:        0 kB

メモリに関するそれぞれの項目の説明は以下の通りです。

VmPeak ピーク時の仮想メモリ使用サイズ
VmSize 現在の仮想メモリ使用サイズ
VmLck 現在ロックされているメモリサイズ
VmHWM ピーク時の実メモリ使用サイズ
VmRSS 現在の実メモリ使用サイズ
VmData データセグメントサイズ
VmStk スタックのサイズ
VmExe textセグメントのサイズ
VmLib 共有ライブラリの利用サイズ
VmPTE ページテーブルエントリのサイズ
VmSwap スワップ使用サイズ

応用例ですが、以下のコマンドで現在実メモリを多く使用しているプロセス(PID)順に表示することができます。

grep VmRSS /proc/*/status |sort -k 2 -r

[root@cent77 ~]# grep VmRSS /proc/*/status |sort -k 2 -r
/proc/1114/status:VmRSS:          195672 kB
/proc/712/status:VmRSS:    29768 kB
/proc/773/status:VmRSS:    15068 kB
/proc/730/status:VmRSS:     8704 kB
/proc/1159/status:VmRSS:            6268 kB
/proc/688/status:VmRSS:     5692 kB
/proc/690/status:VmRSS:     4884 kB
/proc/1086/status:VmRSS:            4320 kB
/proc/1/status:VmRSS:       3860 kB
/proc/1088/status:VmRSS:            3520 kB
/proc/698/status:VmRSS:     3204 kB
/proc/1161/status:VmRSS:            2912 kB
/proc/697/status:VmRSS:     2876 kB
/proc/699/status:VmRSS:     2556 kB
/proc/495/status:VmRSS:     2312 kB
/proc/520/status:VmRSS:     1960 kB
/proc/681/status:VmRSS:     1748 kB
/proc/702/status:VmRSS:     1668 kB
/proc/716/status:VmRSS:     1620 kB
/proc/516/status:VmRSS:     1316 kB
/proc/686/status:VmRSS:     1192 kB
/proc/714/status:VmRSS:      936 kB
/proc/657/status:VmRSS:      888 kB
/proc/727/status:VmRSS:      856 kB
/proc/685/status:VmRSS:      824 kB
/proc/1311/status:VmRSS:             768 kB
/proc/self/status:VmRSS:             668 kB
/proc/1310/status:VmRSS:             668 kB

topコマンドで確認する方法

topコマンドを実行します。

[root@cent77 ~]# top

以下の画面で [Shift] + [m] を押下するとメモリ使用量順にソートできます。

top - 23:48:23 up 7 min,  1 user,  load average: 0.04, 0.06, 0.05
Tasks:  96 total,   1 running,  95 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.9 us,  4.3 sy,  0.0 ni, 91.3 id,  0.0 wa,  0.0 hi,  1.4 si,  0.0 st
KiB Mem :  1014824 total,   495524 free,   301348 used,   217952 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   570780 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1114 mysql     20   0 1135688 195672   8616 S  0.0 19.3   0:02.75 mysqld
  712 root      20   0  359092  29768   7236 S  0.0  2.9   0:01.85 firewalld
  773 polkitd   20   0  615104  15068   4928 S  0.0  1.5   0:00.14 polkitd
  730 root      20   0  474788   8704   6724 S  0.0  0.9   0:00.27 NetworkManager
 1159 root      20   0  163616   6268   4876 S  4.4  0.6   0:00.58 sshd

メモリに関する項目の説明は以下の通りです。

VIRT 現在の仮想メモリ使用量 (単位はkB)
RES 現在の仮想メモリ使用量 (単位はkB)

[q]を押下すればtopコマンドから抜けることが出来ます。