Ограничения и оптимизация по памяти в Ubuntu

Проблема. Иногда подвисает комп. Вариантов когда это происходит много, но как выяснилось на это все влияет очень сильно браузер в данном случае 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 всё его содержимое должно быть помещено в память. И если в памяти не хватит места, то результат может быть непредсказуемым.

Источники

Leave a comment

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.