{"id":296,"date":"2013-06-05T06:15:22","date_gmt":"2013-06-05T06:15:22","guid":{"rendered":"https:\/\/www.nicktailor.com\/?p=296"},"modified":"2022-10-21T11:59:54","modified_gmt":"2022-10-21T11:59:54","slug":"how-to-check-what-processes-are-using-your-swap","status":"publish","type":"post","link":"https:\/\/nicktailor.com\/tech-blog\/how-to-check-what-processes-are-using-your-swap\/","title":{"rendered":"How to check what processes are using your swap"},"content":{"rendered":"<p>Here is a little script that will show you what processes are using your swap<\/p>\n<p>https:\/\/www.nicktailor.com\/files\/swapusage<\/p>\n<p>vi swapusage &amp;&amp; chmod +x swapusage<\/p>\n<p>copy paste below &amp; save<\/p>\n<p>.\/swapusage (to run)<\/p>\n<p>#!\/bin\/bash<\/p>\n<p># find-out-what-is-using-your-swap.sh<br \/>\n# &#8212; Get current swap usage for all running processes&nbsp;output<br \/>\n# &#8212; rev.0.1, 2011-05-27, Erik Ljungstrom &#8211; initial version<br \/>\nSCRIPT_NAME=`basename $0`;<br \/>\nSORT=&#8221;kb&#8221;; # {pid|kB|name} as first parameter, [default: kb]<br \/>\n[ &#8220;$1&#8221; != &#8220;&#8221; ] &amp;&amp; { SORT=&#8221;$1&#8243;; }<\/p>\n<p>[ ! -x `which mktemp` ] &amp;&amp; { echo &#8220;ERROR: mktemp is not available!&#8221;; exit; }<br \/>\nMKTEMP=`which mktemp`;<br \/>\nTMP=`${MKTEMP} -d`;<br \/>\n[ ! -d &#8220;${TMP}&#8221; ] &amp;&amp; { echo &#8220;ERROR: unable to create temp dir!&#8221;; exit; }<\/p>\n<p>&gt;${TMP}\/${SCRIPT_NAME}.pid;<br \/>\n&gt;${TMP}\/${SCRIPT_NAME}.kb;<br \/>\n&gt;${TMP}\/${SCRIPT_NAME}.name;<\/p>\n<p>SUM=0;<br \/>\nOVERALL=0;<br \/>\necho &#8220;${OVERALL}&#8221; &gt; ${TMP}\/${SCRIPT_NAME}.overal;<\/p>\n<p>for DIR in `find \/proc\/ -maxdepth 1 -type d -regex &#8220;^\/proc\/[0-9]+&#8221;`;<br \/>\ndo<br \/>\nPID=`echo $DIR | cut -d \/ -f 3`<br \/>\nPROGNAME=`ps -p $PID -o comm &#8211;no-headers`<\/p>\n<p>for SWAP in `grep Swap $DIR\/smaps 2&gt;\/dev\/null| awk &#8216;{ print $2 }&#8217;`<br \/>\ndo<br \/>\nlet SUM=$SUM+$SWAP<br \/>\ndone<\/p>\n<p>if (( $SUM &gt; 0 ));<br \/>\nthen<br \/>\necho -n &#8220;.&#8221;;<br \/>\necho -e &#8220;${PID}\\t${SUM}\\t${PROGNAME}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.pid;<br \/>\necho -e &#8220;${SUM}\\t${PID}\\t${PROGNAME}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.kb;<br \/>\necho -e &#8220;${PROGNAME}\\t${SUM}\\t${PID}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.name;<br \/>\nfi<br \/>\nlet OVERALL=$OVERALL+$SUM<br \/>\nSUM=0<br \/>\ndone<br \/>\necho &#8220;${OVERALL}&#8221; &gt; ${TMP}\/${SCRIPT_NAME}.overal;<br \/>\necho;<br \/>\necho &#8220;Overall swap used: ${OVERALL} kB&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncase &#8220;${SORT}&#8221; in<br \/>\nname )<br \/>\necho -e &#8220;name\\tkB\\tpid&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.name|sort -r;<br \/>\n;;<\/p>\n<p>kb )<br \/>\necho -e &#8220;kB\\tpid\\tname&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.kb|sort -rh;<br \/>\n;;<\/p>\n<p>pid | * )<br \/>\necho -e &#8220;pid\\tkB\\tname&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.pid|sort -rh;<br \/>\n;;<br \/>\nesac<br \/>\nrm -fR &#8220;${TMP}\/&#8221;;<\/p>\n<p>#!\/bin\/bash<\/p>\n<p># find-out-what-is-using-your-swap.sh<br \/>\n# &#8212; Get current swap usage for all running processes<br \/>\n# &#8212;<br \/>\n# &#8212; rev.0.3, 2012-09-03, Jan Smid &#8211; alignment and intendation, sorting<br \/>\n# &#8212; rev.0.2, 2012-08-09, Mikko Rantalainen &#8211; pipe the output to &#8220;sort -nk3&#8243; to get sorted output<br \/>\n# &#8212; rev.0.1, 2011-05-27, Erik Ljungstrom &#8211; initial version<br \/>\nSCRIPT_NAME=`basename $0`;<br \/>\nSORT=&#8221;kb&#8221;; # {pid|kB|name} as first parameter, [default: kb]<br \/>\n[ &#8220;$1&#8221; != &#8220;&#8221; ] &amp;&amp; { SORT=&#8221;$1&#8243;; }<\/p>\n<p>[ ! -x `which mktemp` ] &amp;&amp; { echo &#8220;ERROR: mktemp is not available!&#8221;; exit; }<br \/>\nMKTEMP=`which mktemp`;<br \/>\nTMP=`${MKTEMP} -d`;<br \/>\n[ ! -d &#8220;${TMP}&#8221; ] &amp;&amp; { echo &#8220;ERROR: unable to create temp dir!&#8221;; exit; }<\/p>\n<p>&gt;${TMP}\/${SCRIPT_NAME}.pid;<br \/>\n&gt;${TMP}\/${SCRIPT_NAME}.kb;<br \/>\n&gt;${TMP}\/${SCRIPT_NAME}.name;<\/p>\n<p>SUM=0;<br \/>\nOVERALL=0;<br \/>\necho &#8220;${OVERALL}&#8221; &gt; ${TMP}\/${SCRIPT_NAME}.overal;<\/p>\n<p>for DIR in `find \/proc\/ -maxdepth 1 -type d -regex &#8220;^\/proc\/[0-9]+&#8221;`;<br \/>\ndo<br \/>\nPID=`echo $DIR | cut -d \/ -f 3`<br \/>\nPROGNAME=`ps -p $PID -o comm &#8211;no-headers`<\/p>\n<p>for SWAP in `grep Swap $DIR\/smaps 2&gt;\/dev\/null| awk &#8216;{ print $2 }&#8217;`<br \/>\ndo<br \/>\nlet SUM=$SUM+$SWAP<br \/>\ndone<\/p>\n<p>if (( $SUM &gt; 0 ));<br \/>\nthen<br \/>\necho -n &#8220;.&#8221;;<br \/>\necho -e &#8220;${PID}\\t${SUM}\\t${PROGNAME}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.pid;<br \/>\necho -e &#8220;${SUM}\\t${PID}\\t${PROGNAME}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.kb;<br \/>\necho -e &#8220;${PROGNAME}\\t${SUM}\\t${PID}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.name;<br \/>\nfi<br \/>\nlet OVERALL=$OVERALL+$SUM<br \/>\nSUM=0<br \/>\ndone<br \/>\necho &#8220;${OVERALL}&#8221; &gt; ${TMP}\/${SCRIPT_NAME}.overal;<br \/>\necho;<br \/>\necho &#8220;Overall swap used: ${OVERALL} kB&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncase &#8220;${SORT}&#8221; in<br \/>\nname )<br \/>\necho -e &#8220;name\\tkB\\tpid&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.name|sort -r;<br \/>\n;;<\/p>\n<p>kb )<br \/>\necho -e &#8220;kB\\tpid\\tname&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.kb|sort -rh;<br \/>\n;;<\/p>\n<p>pid | * )<br \/>\necho -e &#8220;pid\\tkB\\tname&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.pid|sort -rh;<br \/>\n;;<br \/>\nesac<br \/>\nrm -fR &#8220;${TMP}\/&#8221;;<\/p>\n<p>#!\/bin\/bash<\/p>\n<p># find-out-what-is-using-your-swap.sh<br \/>\n# &#8212; Get current swap usage for all running processes<br \/>\n# &#8212;<br \/>\nSCRIPT_NAME=`basename $0`;<\/p>\n<p>SORT=&#8221;kb&#8221;; # {pid|kB|name} as first parameter, [default: kb]<br \/>\n[ &#8220;$1&#8221; != &#8220;&#8221; ] &amp;&amp; { SORT=&#8221;$1&#8243;; }<\/p>\n<p>[ ! -x `which mktemp` ] &amp;&amp; { echo &#8220;ERROR: mktemp is not available!&#8221;; exit; }<br \/>\nMKTEMP=`which mktemp`;<br \/>\nTMP=`${MKTEMP} -d`;<br \/>\n[ ! -d &#8220;${TMP}&#8221; ] &amp;&amp; { echo &#8220;ERROR: unable to create temp dir!&#8221;; exit; }<\/p>\n<p>&gt;${TMP}\/${SCRIPT_NAME}.pid;<br \/>\n&gt;${TMP}\/${SCRIPT_NAME}.kb;<br \/>\n&gt;${TMP}\/${SCRIPT_NAME}.name;<\/p>\n<p>SUM=0;<br \/>\nOVERALL=0;<br \/>\necho &#8220;${OVERALL}&#8221; &gt; ${TMP}\/${SCRIPT_NAME}.overal;<\/p>\n<p>for DIR in `find \/proc\/ -maxdepth 1 -type d -regex &#8220;^\/proc\/[0-9]+&#8221;`;<br \/>\ndo<br \/>\nPID=`echo $DIR | cut -d \/ -f 3`<br \/>\nPROGNAME=`ps -p $PID -o comm &#8211;no-headers`<\/p>\n<p>for SWAP in `grep Swap $DIR\/smaps 2&gt;\/dev\/null| awk &#8216;{ print $2 }&#8217;`<br \/>\ndo<br \/>\nlet SUM=$SUM+$SWAP<br \/>\ndone<\/p>\n<p>if (( $SUM &gt; 0 ));<br \/>\nthen<br \/>\necho -n &#8220;.&#8221;;<br \/>\necho -e &#8220;${PID}\\t${SUM}\\t${PROGNAME}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.pid;<br \/>\necho -e &#8220;${SUM}\\t${PID}\\t${PROGNAME}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.kb;<br \/>\necho -e &#8220;${PROGNAME}\\t${SUM}\\t${PID}&#8221; &gt;&gt; ${TMP}\/${SCRIPT_NAME}.name;<br \/>\nfi<br \/>\nlet OVERALL=$OVERALL+$SUM<br \/>\nSUM=0<br \/>\ndone<br \/>\necho &#8220;${OVERALL}&#8221; &gt; ${TMP}\/${SCRIPT_NAME}.overal;<br \/>\necho;<br \/>\necho &#8220;Overall swap used: ${OVERALL} kB&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncase &#8220;${SORT}&#8221; in<br \/>\nname )<br \/>\necho -e &#8220;name\\tkB\\tpid&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.name|sort -r;<br \/>\n;;<\/p>\n<p>kb )<br \/>\necho -e &#8220;kB\\tpid\\tname&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.kb|sort -rh;<br \/>\n;;<\/p>\n<p>pid | * )<br \/>\necho -e &#8220;pid\\tkB\\tname&#8221;;<br \/>\necho &#8220;========================================&#8221;;<br \/>\ncat ${TMP}\/${SCRIPT_NAME}.pid|sort -rh;<br \/>\n;;<br \/>\nesac<br \/>\nrm -fR &#8220;${TMP}\/&#8221;;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here is a little script that will show you what processes are using your swap https:\/\/www.nicktailor.com\/files\/swapusage vi swapusage &amp;&amp; chmod +x swapusage copy paste below &amp; save .\/swapusage (to run) #!\/bin\/bash # find-out-what-is-using-your-swap.sh # &#8212; Get current swap usage for all running processes&nbsp;output # &#8212; rev.0.1, 2011-05-27, Erik Ljungstrom &#8211; initial version SCRIPT_NAME=`basename $0`; SORT=&#8221;kb&#8221;; # {pid|kB|name} as first parameter,<a href=\"https:\/\/nicktailor.com\/tech-blog\/how-to-check-what-processes-are-using-your-swap\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58,138],"tags":[],"class_list":["post-296","post","type-post","status-publish","format-standard","hentry","category-centos","category-linux"],"_links":{"self":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts\/296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=296"}],"version-history":[{"count":7,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts\/296\/revisions"}],"predecessor-version":[{"id":1617,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/posts\/296\/revisions\/1617"}],"wp:attachment":[{"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nicktailor.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}