Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Как узнать, что забивает swap?

#linux #swap


Обычно раздел подкачки пустой и заполняется лишь при работе с очень большими графическими
файлами. Но уже второй день творится какой-то непорядок. Можно решить проблему выходом
и повторным входом в учётную запись, но мне интересно узнать, что именно забивает swap.
Как это узнать?

Кроме браузеров, NetBeans, аудио, видео и виртуальной машины ничего не запускал.
Ничего особенного не делал — все как всегда.

Раньше я по две  недели не выходил из системы и все было хорошо.


    


Ответы

Ответ 1



Найдено где-то на просторах и немного допилено под свою среду. Возможно, придётся допиливать тоже, главное - понять принцип: #!/bin/sh for dir in $(find /proc/ -maxdepth 1 -type d |grep -E "[0-9]+"); do pid=$(echo $dir |cut -d/ -f3) cmd=$(ps h -o comm -p $pid) swap=$(grep VmSwap $dir/status 2> /dev/null |awk '{print $2}') if [ ! -z $swap ] && [ $swap -ne 0 ]; then echo "pid: $pid command: $cmd swap: $swap KB" fi done | sort -rnk6 | column -t

Ответ 2



Можно запустить top и нажать f - отобразится список параметров, которые он (top) может выводить. Выбери отображение SWAP - и ты увидишь какие процессы сколько данных там держат. А отсортировать по этой колонке можно нажав F.

Ответ 3



Еще один вариант: #!/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 echo "PID=$PID - Swap used: $SUM - ($PROGNAME )" let OVERALL=$OVERALL+$SUM SUM=0 done echo "Overall swap used: $OVERALL" Найден тут http://northernmost.org/blog/find-out-what-is-using-your-swap/ Хочу ответить откуда взялась проблема с swap-space. Это мог бы быть этот баг http://osdir.com/ml/ubuntu-bugs/2016-03/msg00360.html , но у меня версия 14.04, так что это не мой случай. У меня в системе так xuser@mh:~$ df -h Файл.система Размер Использовано Дост Использовано% Cмонтировано в udev 3,9G 4,0K 3,9G 1% /dev tmpfs 799M 1,3M 798M 1% /run /dev/sda2 54G 12G 39G 23% / none 4,0K 0 4,0K 0% /sys/fs/cgroup tmpfs 1,0G 183M 842M 18% /tmp none 5,0M 0 5,0M 0% /run/lock none 3,9G 1,4M 3,9G 1% /run/shm none 100M 20K 100M 1% /run/user tmpfs 1,5G 291M 1,2G 20% /home/xuser/.cache tmpfs 512M 199M 314M 39% /home/xuser/.mozilla tmpfs 5,0G 0 5,0G 0% /home/xuser/torTmp /dev/sdb1 230G 108G 111G 50% /media/xuser/9bd1fae0-bcb9-4677-9f1a-28ac7079dccc xuser@mh:~$ Я запускал виртуальную машину и забыл очистить папку /home/xuser/torTmp а она у меня предназначена для торрентов и образа виртуальной машины. swapoff -a писало ошибку о том что не может распределить память. Я потом и догадался что нужно глянуть что же у меня в системе с памятью происходит. Конец истории :).

Комментариев нет:

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