anonymous@RULINUX.NET~# Last login: 2024-12-23 02:48:09
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

А что, ulimit/rlimit уже отменили что ли?

Чета файрфокс повадился выжирать по паре десятков гигабайт памяти время от времени. Просто тупо в простое с несколькими сотнями открытых табов ни с того ни с сего - бах и машина вдруг в своп лезет.
Ну попробовал запускать его следующим образом:

bash
prlimit --rss=740000000:740000000  --data=1024000000:1024000000 firefox -no-remote -p %u

Результат - процесс отожрал больше 1024 мегабайт:
bash

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                      
 3354 x3who     20   0 2664832 1.243g 155636 R 117.3  7.9   2:46.28 firefox  
 

Я не понял - prlimit не работает чтоли? Попробовал ещё "--as" добавить - но он с ним сегфолтится не доев память до отведённого объёма, что, наверное, логично.

Вобщем пока цегруппами сделал:
bash

sudo cgcreate -a :wheel -t :wheel -g memory,cpu,cpuset:FF_limited
echo "0" >/sys/fs/cgroup/cpuset/FF_limited/cpuset.mems
echo "3" >/sys/fs/cgroup/cpuset/FF_limited/cpuset.cpus
echo 4g > /sys/fs/cgroup/memory/FF_limited/memory.limit_in_bytes
## memsw.limit_in_bytes = memory.limit_in_bytes + amount in swap file
echo 6g > /sys/fs/cgroup/memory/FF_limited/memory.memsw.limit_in_bytes
cgexec -g memory,cpu,cpuset:FF_limited ls -l /sys/fs/cgroup/memory/FF_limited/
 

Или /etc/cgconfig.conf (ещё не проверял через конф):
bash
group FF_limited {
  perm {
# who can manage limits
    admin {
      gid = wheel;
    }
# who can add tasks to this group
    task {
      gid = wheel;
    }
  }
  cpu {
    cpu.shares = 100;
  }
  cpuset {
    cpuset.mems = 0;
    cpuset.cpus = 3;
  }
  memory {
    memory.limit_in_bytes = 4g;
    memory.memsw.limit_in_bytes = 6g;
  }
}
 


Но тут ресурсы на группу распределяются, а мне хочется чтобы на экземпляр файрфокса можно было ограничения навесить, чтобы каждый из них по выходе за 6ГБ обламывался потому что я запускаю несколько разных экземпляров с разными профилями и не хочу чтобы они друг на друга влияли (например отожрёт память один, а грохнется при попытке распределить память другой, невиновный).

anonymous(*) (2016-05-07 21:14:06)
Отредактировано anonymous по причине "не указана"
Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: А что, ulimit/rlimit уже отменили что ли? от anonymous 2016-05-07 21:14:06
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

Ничего себе что в линуксе делается! Я про такое даже не догадывался. Вот что значит сидеть на 14-й федоре без этих ваших цегрупп с системдэ.

anonymous(*)(2016-05-10 13:23:13)

[#] [Добавить метку] [Редактировать] Ответ на: Re:А что, ulimit/rlimit уже отменили что ли? от anonymous 2016-05-10 13:23:13
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

Ну prlimit у тебя тоже должен быть.

Кстати цегруппы работают нормально. Вчера фокс наконец-то решил снова пошуршать в свопе - ну пошуршал пару секунд и сдох. При чём сдох тот экземпляр, который надо. Запустил его снова с теми же табами - всё хорошо, памяти не надо.

И одного ядра ему хватает, так что не расползается потоками по всем ядрам и субъективно в целом меньше подтормаживает систему за счёт этого. Так что апгрейдь свою федору.

anonymous(*)(2016-05-10 16:28:19)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:А что, ulimit/rlimit уже отменили что ли? от anonymous 2016-05-10 16:28:19
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

А нельзя было сделать то же самое, но только с помощью старого-доброго oom-killer-а? Как только кто-то полез в свап - прибиваем самого жирного огнелиса.

anonymous(*)(2016-05-11 12:10:20)

[#] [Добавить метку] [Редактировать] Ответ на: Re:А что, ulimit/rlimit уже отменили что ли? от anonymous 2016-05-11 12:10:20
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

OOM-киллер выбирает жертву не только по жирности. Например активно работающий процесс имеет меньше шансов быть убитым, а процессс повышенной "хорошестью" (т.е. с высокими niceness, другими словами с пониженным приоритетом) увеличивает свои шансы вдвое, так что фиг тут угадаешь кого убьют в этом хозяйстве:

text

  PID USER    PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 8493 x3who   20   0 2911508 1.270g 156456 S   0.0  8.1   3:15.47 firefox
26826 x3who   20   0 3229908 931356 144520 S   0.0  5.7  60:07.25 firefox
 4357 x3who   20   0 11.048g 807732 230060 S   0.0  4.9  19:16.19 plasmashell
 4308 x3who   39  19 5757824 579504 506584 S   0.0  3.5   0:15.59 baloo_file
 4666 x3who   20   0 1456980 363600 105148 S   0.0  2.2   3:27.70 thunderbird
 5914 root    20   0  906444 251080  18004 S   0.0  1.5   1:16.41 packagekitd
 1846 root    20   0  331132 199960  69392 S   0.0  1.2  12:52.48 Xorg
 ...
 


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

А под cgroups фирефоксы сидят в своей отдельной клетке в которой им дадено четверть всех ресурсов системы. Какой-нить экземпляр взбрыкнул и захотел отожрать больше памяти - ну сам же и сдох. Захотел отожрать больше одного ядра процессора - фиг ему дали. Вся остальная система не страдает от фирефоксовой придури.

anonymous(*)(2016-05-11 16:56:51)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0
[#] [Добавить метку] [Редактировать] Ответ на: А что, ulimit/rlimit уже отменили что ли? от anonymous 2016-05-07 21:14:06
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

Альтернативное решение от Система - теперь на базе nspawn.

anonymous(*)(2016-07-20 21:36:35)

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) QupZilla/2.0.1 Chrome/45.0.2454.101 Safari/537.36
[#] [Добавить метку] [Редактировать] Ответ на: А что, ulimit/rlimit уже отменили что ли? от anonymous 2016-05-07 21:14:06
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

Я не понял, где именно указано, что именно /usr/bin/firefox запускается с такими ограничениями.

И ещё вопрос: это же синтаксис cgroups_v1, не v2?

lockywolf(*)(2019-05-28 08:33:34)

[#] [Добавить метку] [Редактировать] Ответ на: Re:А что, ulimit/rlimit уже отменили что ли? от lockywolf 2019-05-28 08:33:34
avatar
Скрыть

Re:А что, ulimit/rlimit уже отменили что ли?

Там нигде не сказано, там создаётся цэгруппа FF_limited и даются права колесу в ней запускать процессы. В иконке фокса я написал такую хрень: "cgexec -g memory,cpu,cpuset:FF_limited firefox -no-remote -p %u". И стартую его через там.

Да вот поправочка, со временем открыл для себя, что надо memory.memsw.limit_in_bytes делать такой же как и лимит памяти, чтобы при исчерпании RAM он не утраивал треш в свопе: <code land="bash"> memory { memory.limit_in_bytes = 5g; memory.memsw.limit_in_bytes = 5g; } </code>

А я не знаю как определить группу во второй версии. У меня обе версии работают, но v.2 ничего про фокс не знает, с её точки зрения все процессы сидят в одном слайсе.

Кстати, вон для фокса и не только тюрьму выпустили новую: Выпуск системы изоляции приложений Firejail 0.9.60 - может оно и лучше для целей. Народ, к слову плюётся там в обсуждении, пишут что bubblewrap лучше.

anonymous(*)(2019-05-29 03:42:05)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!