【Shell】【tip】 找出目前誰使用swap
who_use_swap.sh
#!/bin/bash
for p in /proc/[0-9]*; do
pid=${p##*/}
swap=$(awk '/VmSwap:/ {print $2}' $p/status 2>/dev/null)
comm=$(tr -d '\0' < $p/comm 2>/dev/null)
[ -n "$swap" ] && [ "$swap" -gt 0 ] && printf "%10s KiB pid=%s %s\n" "$swap" "$pid" "$comm"
done | sort -nr | head -20
[root@localhost shell]# bash who_use_swap.sh
508 KiB pid=31107 java
204 KiB pid=16675 java
136 KiB pid=30500 sentry
116 KiB pid=14021 sentry
104 KiB pid=1040 containerd
88 KiB pid=30650 sentry
72 KiB pid=30508 sentry
52 KiB pid=29817 sentry
52 KiB pid=10666 dockerd
44 KiB pid=30521 sentry
40 KiB pid=30491 sentry
40 KiB pid=12964 sentry
36 KiB pid=338 sentry
28 KiB pid=30082 sentry
24 KiB pid=30615 sentry
20 KiB pid=322 sentry
16 KiB pid=32662 containerd-shim
16 KiB pid=31934 sentry
16 KiB pid=30911 sentry
16 KiB pid=26832 sentry