在平常管理中,咱們常常會遇到swap分區使用比較多,那麼致使是那些進程使用的呢,其實咱們能夠經過/proc/pid/下的smaps來得到。使用下面的命令能夠列出全部進程佔用的swap分區的大小,分別咱們分析問題。
for i in $(cd /proc;ls | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head
獲取到佔用Swap分區比較多的PID,而後就能夠經過PID獲取到進程的相關信息了。
ps aux | grep ${pid}ide