Find out which processes are using swap space
Script สำหรับตรวจสอบว่ามี process ไหนบ้างที่ใช้งาน SWAP บน server ซึ่ง script นี้สามารถแสดงรายละเอียดของ process และ จำนวนเนื้อที่ที่ process นั้นๆใช้งาน
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash # Get current swap usage for all running processes 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" |
หรือถ้าหากไม่สามารถรันได้ให้ใช้ script ด้านล่างแทนครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#! /bin/bash # Get current swap usage for all running processes 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 SUM=$(($SUM+$SWAP)) done if [ $SUM -gt 0 ]; then echo "PID=$PID swapped $SUM KB ($PROGNAME)" fi OVERALL=$(($OVERALL+$SUM)) SUM=0 done echo "Overall swap used: $OVERALL KB" |
ตัวอย่าง ผลการรันคำสั่งตรวจสอบ process ที่ใช้งาน SWAP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
PID=1 swapped 100 KB (init) PID=538 swapped 696 KB (udevd) PID=871 swapped 684 KB (udevd) PID=1166 swapped 104 KB (named) PID=1238 swapped 4 KB (lldpad) PID=1272 swapped 24 KB (sshd) PID=3622 swapped 1388 KB (mysqld) PID=3693 swapped 72 KB (java) PID=4736 swapped 692 KB (udevd) PID=4971 swapped 188 KB (sudo) PID=24633 swapped 1748 KB (swatch) PID=24638 swapped 136 KB (perl) Overall swap used: 5836 KB |