LINUX.ORG.RU

Сервер


0

0

Пишу сервер(на перле), к которому будут очень большим потоком обращатся клиенты(порядка 10 000 000 в день) это довольно много. Так вот вопрос как лучше построить сервер? - я вижу два варианта первый предпочтителен - это разветвлять сервак перед работой а потом смотреть как умирают дети и рожать новых(Perl CookBook) можно конечно по другому разветвлять сервер при запросе, но тут сразу появляется раздолье для хакеров, которуе просто забьют мне таблицу процессов. Наверно есть ещё варианты ? Но реализация первого варианта у меня хромает - дело в том что при достаточно большём потоке дети не успеваюто "дорожатся" и получается ерунда. Может кто делал похожие вещи - банерные сети, расчёты курса доллара или ещё какую херню помогите советом или может кто знает форум (можно англ.) специализированный на преле и UNIX-девелопменте. Спасибо.

вообще-то fork на перле в таких количествах штука достаточно
дорогая. у меня предложение следующее:
1. весь ввод-вывод обрабатывается при помощи select.
2. для accept сделать signal driven I/O и обрабатывать его в
SIGIO signal handler

а еще можно просто запускать сервер из под inetd, кстати в inetd.conf
можно задать и макс количество соединений на порту в минуту. этот вариант очень даже ничего, особенно если для твоего юникса есть
программа undump.

Z0termaNN
()

Пишу на С такую же байду. Но число обращений намного меньше. Поэтому выбрал рождать детей после accept'a. Но проблемма: после того как child отработает я деляю exit(EXIT_SUCCESS) при этом child дохнет и становится zombie. Как этого избежать??? Thanks.

anonymous
()

Да с зомби у меня тоже когдато прпоблемм хватало. Но тут надо перепрограммировать сигнал CHLID в перле я его стывил на IGNORE а в Си попробуй его для начала вообще отключить. Но тут я не уверен - думаю что ничего не выйдет. Если так то наверно единственный выход это писать килера зомби и вызывать его по сигналу CHILD. Всего хорошего что получится или не получится пиши так как мне эти знания тоже нужны вместе разобратся лучше. hierezia@aport.ru

hierezia
() автор топика

vi chego gonite nado delat' wait ili waitpid i ne budet zombi

trol
()

Tolko delat eto nado po signalu SIGCHLD , a to demon budet zastuvat do tex por poka zombie ne sdoxnet.

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