Welcome! Log In Create A New Profile

Advanced

Re: Процессная модель

March 01, 2014 10:42AM
On Feb 27, 2014, at 22:22 , AlexyFrost wrote:

> Anton Yuzhaninov Wrote:
> -------------------------------------------------------
>> On 02/26/14 03:17, AlexyFrost wrote:
>> Мусора в том, что наследуется нет.
>>
>> listen socket нужен.
>> других сокетов, открытых в мастере не должно быть.
>>
>> Обработчики сигналов AFAIK переопределяются, если нужно.
>
> Вот об этом я и говорил: с использованием fork() воркер попадает в сильную
> зависимость от того, что должно и не должно быть инициализировано в мастере,
> т.е., какие контр-действия придётся ему делать (закрытие чего то, отключение
> сигналов etc). Понятное дело, что для компилируемой программы этот аргумент
> не столь важен, но, тем не менее, для большого и сложного проекта, который
> пишет не один человек, такие сайд-эффекты вполне существенны, мне кажется.
>
> К тому же, если форки используются для разных типов воркеров (обработка
> соединений, какой то кеш, какие то сервисные штуки), то у них могут быть
> разные реакции на унаследованные от мастера данные - кому то надо сделать
> то, кому то это, и в случае внесения изменений в мастер (добавили новый
> сигнал?) придётся править код всех воркеров.
>
>> То что worker-ы используют память мастера (через COW) очень даже
>> полезно -
>> большая геобаза загруженная мастером будет использоваться всеми
>> процессами и не
>> надо будет загружать её N раз в каждый worker отдельно.
>
> Для подобных данных можно использовать shared memory, что так же выглядит
> логичнее, чем "копия" данных мастера, да и в случе потребностей горячей
> замены таких данных сделать это будет проще в одном месте.

Shared memory в неродственных процессах сочетании с ASRL превращается в ад.

>> В адресное пространство воркеров попадает часть кода и данных, не
>> нужных
>> worker-ом, но ничего плохого в этом нет.
>
> Меня, в целом, не столько беспокоят "левые" данные мастера в воркере,
> сколько потенциальные проблемы, которые они могут привнести (выше
> перечислял).

Ввиду отсутствия fork()а на Windows, nginx/Windows запускает новые процессы.
Вот там проблемы, так проблемы. Сигналы - это семечки.


--
Igor Sysoev
http://nginx.com
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Процессная модель

AlexyFrost February 25, 2014 06:17PM

Re: Процессная модель

Gena Makhomed February 26, 2014 04:38AM

Re: Процессная модель

Anton Yuzhaninov February 27, 2014 04:36AM

Re: Процессная модель

AlexyFrost February 27, 2014 01:22PM

Re: Процессная модель

Валентин Бартенев February 27, 2014 02:44PM

Re: Процессная модель

Igor Sysoev March 01, 2014 10:42AM

Re[2]: Процессная модель

Михаил Монашёв March 01, 2014 12:48PM

Re: Процессная модель

Anatoly Mikhailov March 03, 2014 04:50AM

Re: Re[2]: Процессная модель

Igor Sysoev March 03, 2014 07:22AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 276
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready