Как понять причину высокой нагрузки на оперативную память на сервере Ubuntu 14?
Есть сервер на Digital Ocean, 2гб оперативки + swap на 8гб. Сайт не особо тяжелый, посетителей не сильно много. Работал спокойно больше полугода, вдруг начались дикие нагрузки на процессор. Через top вижу стабильно картину, что процесс kswapd0 сжирает весь процессор.
Как я понимаю, этот процесс отвечает за то, что если не хватает оперативной памяти чтобы она бралась из физической. Но как понять почему вдруг ни с того, ни с сего выросла нагрузка? Перезагрузка сервера/апача не дает результат, хотя иногда помогает. Проблема длится уже второй день. Иногда перезагрузишь и всё нормально на несколько часов, потом опять тоже самое начинается.
В администрировании серверов толком ничего не понимаю, то что нагуглил не помогает. Как понять какой файл берет на себя всю оперативку, в чем может быть дело, если ничего не менялось, но вдруг появилась такая картина?
Спасибо за ответы, особенно pcdesign . Решил проблемы переустановкой всей системы. Так и не понял в чем была причина, но времени разбираться уже не было.
zend@work:work$ cat get_swap.sh
#!/bin/bash
# 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 )"
let OVERALL=$OVERALL+$SUM
fi
SUM=0
done
echo "Overall swap used: $OVERALL"
zend@work:work$