LINUX.ORG.RU

[Perl] Зависание сервера при открытии ~100 пайпов

 


0

0

Приветсвую! При разработке возникла следующая проблема: Я создаю fork'ом N дочерних процессов, каждый из которых связан с родительским процессом пайпом, в который пишется результат работы процесса. Процессы ведут свои логи. При N = 30, всё работает отлично, но увеличение количества процессов, например, до 100, приводит к зависанию сервера. Последнее что показала команда 'top' это было iowait 88,6%. Загрузка проца при 30 процессах примерно 50-70 процентов. При этом тот же код, использующий 1 пайп на все процессы, работает при N=100 тоже без проблем. В связи с чем у меня возник вопрос, действительно ли для ОС так нагрузно создание множества пайпов? Можно ли что-то изменить настройками ОС? OC Red Hat 7.3

anonymous

>Процессы ведут свои логи.
>iowait 88,6%

>OC Red Hat 7.3


Старое железо? Диск в PIO режиме?

>тот же код, использующий 1 пайп на все процессы, работает при N=100 тоже без проблем.


???

>действительно ли для ОС так нагрузно создание множества пайпов?


Нет

sdio ★★★★★
()

Вероятно, из-за слишком крупных блокировок (в vfs, например) происходит tasks starvation. Поновее дистрибутив нет возможности поставить?

mv ★★★★★
()

А вы увереный, что у вас Red Hat 7.3? Если я правильно помню, то в те времена top не показывал iowait, более того в тех ядрах (2.4.7) не было такого параметра.

И в каком состоянии железо? Может у вас просто сервер не может работать под нагрузкой.

mky ★★★★★
()
Ответ на: комментарий от mky

Спасибо за ответы. Машина на которой запускается. 2000 Ghz P4 512 Mb RAM скази HDD Red Hat всё же 7.3 Обновить ОС или как-то повлиять на конфигурацию я не могу (, не в моих полномочиях.

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