Linux find what processes are swapping

Here is a handy script that will check all processes and report what is swapping

#!/bin/bash
for pid in `ps x|awk '{print $1}'`; do
result=`cat /proc/$pid/status|grep VmSwap|awk '{print $2}'|grep -v ^"0"`
if [ ! -z "$result" ]; then
 programresult=`ps x|grep $pid|grep -v grep`
 if [ $? == 0 ]; then
     program=`echo $programresult|awk '{print $5}'|grep -v ^grep`
 fi
 echo "$pid $program swap = $result kB"


fi
done

You can also pipe the output like this to sort the largest swap processes:

|sort -nr -k4

 

The old way that never worked very well:

 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND      
 7371 on       20   0 1558m 1148  740 S    0  0.0   0:00.02 1.5g services.exe 
 7369 on       20   0 1558m 1084  708 S    0  0.0   0:00.02 1.5g wineboot.exe

Run top then press 'O' (capital letter o) followed by 'p' then 'enter'. Now processes should be sorted by their swap usage.

 


Tags:

linux, processes, swappinghere, swapping, bin, bash, pid, ps, awk, proc, grep, vmswap, quot, z, programresult, echo, fi, swap, kb, output, largest, nr, user, pr, ni, virt, res, shr, cpu, mem, exe, wineboot, sorted, usage,

Latest Articles

  • Linux Ubuntu Cannot Print Large Images
  • Cannot Print PDF Solution and Howto Resize
  • Linux Console Login Screen TTY Change Message
  • Apache Cannot Start Listening Already on 0.0.0.0
  • MySQL Bash Query to pipe input directly without using heredoc trick
  • CentOS 6 and 7 / RHEL Persistent DHCP Solution
  • Debian Ubuntu Mint rc-local service startup error solution rc-local.service: Failed at step EXEC spawning /etc/rc.local: Exec format error
  • MySQL Cheatsheet Guide and Tutorial
  • bash script kill whois or other command that is running for too long
  • Linux tftp listens on all interfaces and IPs by DEFAULT Security Risk Hole Solution
  • python import docx error
  • Cisco Unified Communications Manager Express Cheatsheet CUCME CME
  • Linux Ubuntu Debian Missing privilege separation directory: /var/run/sshd
  • bash how to count the number of columns or words in a line
  • bash if statement how to test program output without assigning to variable
  • RTNETLINK answers: Network is unreachable
  • Centos 7 how to save iptables rules like Centos 6
  • nfs tuning maximum amount of connections
  • qemu-kvm error "Could not initialize SDL(No available video device) - exiting"
  • Centos 7 tftpd will not work with selinux enabled