LINUX.ORG.RU
ФорумAdmin

Куда девается кусок swap?!...

 


0

3

Всем добрый вечер! Никак не могу взять в толк. Есть вот такой скрипт:

#!/bin/bash 

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 VmSwap $DIR/status 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"

Он говорит, что система держит 60 мегабайт в swap-разделе А команда free говорит, что 70. Кто знает, от чего такая неслабая разница?

ОС Centos 7.0, но не думаю, что это принципиально.

Для начала нужно проверить, что данные от free совпадают с /proc/meminfo и /proc/swaps.

Потом, tmpfs может оказаться в swap'е и, вроде как, нет средств определить сколько swap'а занято tmpfs'ом. Может быть, если при достаточном объёме свободного ОЗУ прочитать все файлы на tmpfs, то они уйдут из swap'а...

И, ещё пишут, что, SwapCached (из meminfo) это тот объём свопа, который есть и в ОЗУ и на диске. При этом система считает его занятым в swap'е, но в /proc/PID/status он не показывается. Хотя у меня это не так.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.