Проблема. Иногда подвисает комп. Вариантов когда это происходит много, но как выяснилось на это все влияет очень сильно браузер в данном случае Chrome.
Пробую ограничить его работу програмными средствами.
Ограничения Chrome
Для управления памятью можно воспользоваться созданием групповой политики
sudo apt install cgroup-tools cgroup-lite cgroupfs-mount libcgroup1
sudo cgcreate -a $USER:$USER -t $USER:$USER -g memory:groupChromiumMemLimit
sudo cgset -r memory.limit_in_bytes=$((1024*1024*1024)) groupChromiumMemLimit
cgexec -g memory:groupChromiumMemLimit /path/to/chrome
Таким образом создается процесс с ограничесем по памяти. В данном случае ограничение в 1Гб.
Оптимизация памяти
как утверждает на этом сайте можно снизить уровень, а то и отключить вообще использование swap.
- узнать какой уровень сейчас:
cat /proc/sys/vm/swappiness
уровень по-умолчанию: 60 — это значит что при достижении 100-60% загрузки памяти начнется использование swap.
Можно временно (для текущего сеанса) выставить нужные значения, чтобы поэкспериментировать и проверить эффективность применения настроек. - выставить в 10%
sudo sysctl vm.swappiness=10
- отключить вообще
sudo sysctl vm.swappiness=0
Чтобы применить изменения после перезагрузки:
в файле /etc/sysctl.conf
в конце необходимо добавить:
vm.swappiness=0
vm.vfs_cache_pressure = 1000
после перезагрузки необходимо выполнить команду
sudo sysctl -p
Создание, изменение SWAP
Когда оперативной памяти не хватает, система скидывает все в swap. И если swap не хватает — начинается беда. Важно чтобы swap находился на самом быстром носители, тогда скорость скидывания swap будет максимально быстрым.
Есть ли swap в системе:
free -h
В случае отсутсвия swap (файл подкачки) все значения в этой строке будут 0
Посмотреть список swap
swapon --show
Создание SWAP файла
создание файла swap на 1Gb
sudo fallocate -l 1G /swapfile
этот вариант может не подойти, тогда можно использовать вариант
dd if=/dev/zero of=/swap/sw-file bs=1k count=1024
изменение прав файла swap
sudo chmod 600 /swapfile
создание файловой системы
sudo mkswap /swapfile
активация файла swap
sudo swapon /swapfile
Теперь если посмотреть список файлов подкачки, можно увидеть его в списке.
Сохранение после перезагрузки
sudo nano /etc/fstab
добавить строку
/swapfile none swap sw 0 0
Очистка swap
Очистка PageCache
sync; echo 1 > /proc/sys/vm/drop_caches
Перезагрузка cache
sudo swapoff -a && sudo swapon
Тут надо быть внимательным, поскольку при отключении swap всё его содержимое должно быть помещено в память. И если в памяти не хватит места, то результат может быть непредсказуемым.
Источники
- Ускоряем Ubuntu. Оптимизация работы подкачки (swap) в Ubuntu — Linux | it — блог glazdik’a & co.
- Файл подкачки Linux | Losst
- Установка и настройка файла подкачки (SWAP) в Ubuntu – Vscale Community
- Где находится файл подкачки в Linux? | Сеть без проблем
- Как освободить память Linux | Losst
- 4.10. Создание раздела (файла) подкачки. Linux-сервер своими руками