поиск процессов, занимающих место в paging space

Небольшой скрипт, выводящий Top-10 процессов, больше всех отожравших paging space.

 

#!/usr/bin/ksh -pLANG=C
PATH=/usr/bin:/usr/sbin
printf “%-16st%-16st%-16st%sn” “Segment” “Memory in PS” “PID” “Process”
svmon -S -O sortseg=pgsp -t 10 | grep -v ‘^$’ | awk ‘
/Unit/ {}
/Vsid/ {}
$1 ~ /^[0-9a-f]+/ { print $1 }
‘ | while read sid ; do
        printf “%-16st%-16st” “$sid” $(svmon -S $sid | grep -v ‘^$’ | awk ‘
/Unit/ {}
/Vsid/ {}
$1 ~ /^[0-9a-f]+/ { pgsp=NF-1; print $pgsp*4″KB” }
‘)
        s=$(svmon -S $sid -lrj | tail -1 | tr -d ‘ ‘ | cut -f2 -d=)
        if [[ “$s” == “Systemsegment” ]] ; then
                prog=”System Segment”
                pid=0
        else
                prog=$(ps -efo pid,args | awk ‘$1 == ‘$s’ {print $0}’ | sed -e ‘s/^[ ]*//’ | cut -f2 -d’ ‘)
                pid=$s
        fi
        printf “%-16st%-16sn” “$pid” “$prog”
done

Оставьте комментарий