Алексей Ляшков объявил (http://docs.freebsd.org/cgi/mid.cgi?1158407656.3215.33.camel) о доступности для тестирования новой версии патчей jail2. В новой версии:
- своё пространство SYSV IPC объектов в каждом jail;
- свой список пользователей для каждого jail (не пересекающийся с host-системой), как следствие - возможность задания раздельных лимитов для пользователей в host-системе и в jail;
- возможность для jail задавать лимиты на:
- количество объектов SYSV IPC;
- количество процессов;
- количество файловых дескрипторов.
<br/>Код jail2 теперь включается опцией ядра JAIL.URL: http://docs.freebsd.org/cgi/mid.cgi?1158407656.3215.33.camel
Новость: http://www.opennet.me/opennews/art.shtml?num=8346
вот это уже интереснее!!! что с лемином на память?
Память ограничивать можно?
Лимит на память делается в рамках SoC. вот сделают - посмотрим, как получилось.
Пока что то как там сделано через kernel thread который контролирует количество памяти в jail - мне не нравится.
А так - следующий этап развития, CPU limit - как пожалуй самое простое и виртуализация именованых семафоров - которые щас никак не защищены и из одного jail можно добраться к именованому семафору другого jail.
Так вроде уже сделали. По крайней мере, примерно месяц назад чудо-патчи для 6 ветки (или линки на них) выкладывались в hackers для тестов.
ps: Вот, нашёл: http://www.mail-archive.com/freebsd-hackers@freebsd.org...
сделали. в той реализации _как_ это сделано в SoC для контроля используемой памяти рождается один кернельный тред на каждый jail который раз в HZ проходит по списку всех процессов проверая используемю RAM, выбирает те которые относятся к этому jail, сумирует и повторно проходя по списку задач помечает как требуемые к выгрузке в своп. И в какой точке это оптимально? типовой vps hosting это порядка 60-100 jail per host в каждом порядка 100 процессов. Вот и считаем - 100 доп кернельных нитей и проход по односвязаному списку из 10к задач. не страшно еще?
С другой стороны - если мы посмотрим на то как это реализовано в OpenVZ/FreeVPS/Linux-VServer - увидим что учитываются/контролируются или LIMIT_AS (openvz/linux-vserver) или учет в точках реального выделения страниц памяти (FreeVPS).
И то и другое требует большей проработки на этапе планирования, но уводит от столь объемных процесорных затрат при работе.
Лимит памяти на основе LIMIT_AS делается вобще тривильно - а дальше дается команда стандартному paging daemon который будет разбираться с памятью..
SoC - это что?
Google Summer Of Code
а у меня этот патч из soc не лимитил память или мне так показалось. запустил форкбомбу в jail под рутом. тачка нормально работала, не тормозило,другие процессы пашут, но вскоре кончилась рама и своп:( тачка упала