togatttiのエンジニアメモ

過度な期待はしないでください.

Swapを使っているプロセスを特定する

Swapを使っているプロセスを特定する方法をメモしておく。

使用しているOSは、Ubuntu18.04。

結論からいうと、以下でOK。

# grep VmSwap /proc/*/status | sort -n -k 2 -r

オペレーションの流れ

swapが使われていることを確認する。

# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.0G        1.9G        1.5M        4.9G        6.5G
Swap:          1.5G        748M        772M

swapを使っているプロセスを特定する。

# grep VmSwap /proc/*/status | sort -n -k 2 -r | head -5
/proc/18845/status:VmSwap:        747488 kB
/proc/20946/status:VmSwap:          8156 kB
/proc/19001/status:VmSwap:          2340 kB
/proc/20985/status:VmSwap:          1232 kB
/proc/20983/status:VmSwap:          1232 kB

原因は、netdataだった。

# ps -p 18845 uwww
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
netdata  18845  0.7  6.8 1490180 562492 ?      Ssl  Feb20 1162:59 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D -W set global process scheduling policy keep -W set global OOM score keep