LINUX.ORG.RU

Принудительное использование swap при привышении лимита памяти

 , , ,


0

1

Всем привет! Существуетли возможность установить потолок использования ram и застваить программу активно использовать swap при привышении этого лимита?

Нужно запускать в фоне несколько инстанций веб-браузера, но нужно ограничить выделенные каждой из них рессурсы ПК. Использую для этого chromium, основной веб-браузер - Firefox. Получается ограничить CPU, а вот с памятью выходит сложнее, браузеры очень жручи со временем, память забивается под 100% и невозможно продолжать пользоваться компьютером. Хочу ограничить использование быстрой ram и «грязный» кэш браузера хранить в swap на ssd. zSWAP/zRAM не спасают ситуацию.

Выглядит это примерно так:

limit_run{
chromium --user-data-dir=$DATADIR/$1 --app=$2
killall cpulimit
for ii in $(ps -e | grep chromium | awk {'print $1'})
do
cpulimit --pid=$ii --limit=25 &
done
}

В этом случае процессор свободен на ~50% (AMD FX-8300), а вот 8Gb ram - забита на все 100, что мешает комфортной работе системы (при этом хромиумы на старте и первые пол часа вполне уживаются в 6GB, и FF-у хватает остатка с лихвой). Система amd64, если использовать x86_32 то ram хватает уже на час+, но, в итоге, всё то же. Вариант «купить 2 планки по 8Gb и заменить нынешние 2x4Gb» рассматривается как крайний, вопрос скорее в оптимизации потребления руссурсов, а не распылении.



Последнее исправление: bkarm (всего исправлений: 1)

Ответ на: Так есть же подробный пример для cgroups от Mike_RM

с памятью, вроде, получилось, спасибо!

cat /sys/fs/cgroup/memory/g1/memory.{limit,usage}_in_bytes 
536870912
531222528

Сейчас разбираюсь с процессорным временем, там хардкапы и софткапы всякие, но, думаю, тоже нормально пойдёт, вместо cpulimit.

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