From 4fe20ce6c9a3248a3c15abb9a30ee19607212910 Mon Sep 17 00:00:00 2001 From: Doncho Gunchev Date: Mon, 12 Oct 2020 00:21:13 +0300 Subject: [PATCH] A script that shows swap used by process. Keep in mind there are shared pages, so the overall/summary will be higher than the actual. --- SWAP_USED | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 SWAP_USED diff --git a/SWAP_USED b/SWAP_USED new file mode 100755 index 0000000..b622b4c --- /dev/null +++ b/SWAP_USED @@ -0,0 +1,29 @@ +#!/bin/bash +# Get current swap usage for all running processes +# Erik Ljungstrom 27/05/2011 +# Modified by Mikko Rantalainen 2012-08-09 +# Pipe the output to "sort -nk3" to get sorted output +# Enhanced by Doncho Gunchev to use sudo 2012-12-18 18:16:02 +# see http://stackoverflow.com/questions/479953/how-to-find-out-which-processes-are-swapping-in-linux + +if [ "$UID" != "0" ]; then + exec sudo "$0" "$@" +fi + +SUM=0 +OVERALL=0 +for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"` +do + PID=`echo $DIR | cut -d / -f 3` + PROGNAME=`ps -p $PID -o comm --no-headers` + for SWAP in `grep Swap $DIR/smaps 2>/dev/null | awk '{ print $2 }'` + do + let SUM=$SUM+$SWAP + done + if (( $SUM > 0 )); then + echo "PID=$PID swapped $SUM KB ($PROGNAME)" + fi + let OVERALL=$OVERALL+$SUM + SUM=0 +done +echo "Overall swap used: $OVERALL KB"