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