ארכיון יומי: 13 אוקטובר, 2011

מי משתמש לי בswap ?

SWAP היא דרך לניהול זיכרון במערכות הפעלה, על ידי יצירת מערכת "דפים" אשר שומרת על הזיכרון בדיסק ובכך יוצרת זיכרון ווירטואלי.

מצאתי תכנית מאוד פשוטה שמציגה לי מי משתמש בswap בלינוקס, אבל לדעתי היא היתה צריכה שיפצור אחד, שעשיתי לה:

#!/bin/sh
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/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 - Swap used: $SUM - ($PROGNAME)"
  fi
  let OVERALL=$OVERALL+$SUM
  SUM=0

done
echo "Overall swap used: $OVERALL"

במקון להציג את כל התכנות – לפי הקוד המקורי, אני מציג רק את אלו שבפועל משתמשים ב swap עצמו.