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コマンドから抜けることが出来ます。