swap占用过高时 如何查看哪个经常占用了swap

  • Post author:
  • Post category:其他


近日发现swap告警。。。

[root@hs-72 mysql]# free -h

total        used        free      shared  buff/cache   available

Mem:            62G         39G         20G        1.5G        2.9G         20G

Swap:           63G         19G         44G

如上 swap 使用了 19g

此刻 如果我想知道 swap主要是被哪个经常占用。。。

因为 我这是一台mysql服务器。。如果不是被mysql占用 我理论上 可以不去处理这个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 2>/dev/null ; done | sort -k2nr | head -10

输出如下值  第一列是pid

head -10

18906 12385.2M

3755 431.055M

38125 400.004M

37271 63.0781M

37852 60.9492M

376