Модераторы: ginnie, korob2001

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помгите создать дочерние процессы, Почему не создается более 64 процессов 
:(
    Опции темы
StealtH
Дата 4.10.2004, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Такая возникла трабла, нужно создать несколько дочерних процессов, точнее 255, а создается только 64. С чем это связано, и как это можно исправить. Подскажите пожалуйста, или подкинте ссылочку на документацию, плиз
PM MAIL   Вверх
chaos
Дата 4.10.2004, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



Возник вопросик нах тебе столько процессов??? rolleyes.gif
PM WWW   Вверх
StealtH
Дата 4.10.2004, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата(chaos @ 4.10.2004, 09:48)
Возник вопросик нах тебе столько процессов??? rolleyes.gif

Ну о-о-о-о-о-чень нужно biggrin.gif
PM MAIL   Вверх
GoodBoy
Дата 4.10.2004, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



StealtH
А ты уверен, что другова пути нет????


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
ElectricalStorm
Дата 4.10.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 1
Всего: 9



ключевые слова: fork, use threads, use Threads;


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
StealtH
Дата 4.10.2004, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата(GoodBoy @ 4.10.2004, 11:03)
StealtH
А ты уверен, что другова пути нет????

Пробовал делать через дескрипторы файлов, через system, через обратные кавычки, везде один и тотже результат, может это операционка накладывает свои ограничения, если так, то где почитать как с этим бороться.
Добавлено @ 18:05
Цитата(ElectricalStorm @ 4.10.2004, 13:07)
ключевые слова: fork, use threads, use Threads;

Не помогаетsad.gif
PM MAIL   Вверх
GoodBoy
Дата 4.10.2004, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



StealtH
Нет, ты не понял!!!!! Опиши задачу!!! Может есть другой путь решения, чем плодить процессы!!!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
StealtH
Дата 5.10.2004, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата(GoodBoy @ 4.10.2004, 18:06)
StealtH
Нет, ты не понял!!!!! Опиши задачу!!! Может есть другой путь решения, чем плодить процессы!!!!!

Вообщем суть дела такова. Есть определенный диапазон IP-адресов(большой), который нужно отслеживать на наличие различных сервисов(Apache, фтп, и т.д.). Есть скрипт, который все это прекрасно делает(сам написал), суть работы такова, сначала пингуем хост, а потом производим с ним остальные действия. Т.к. хостов много около 1000, то, нужно, чтоб сервер их пинговал сразу и по многу, т.е. брал маску адреса(типа 192.168.100.) а остальные цифры последнего актета подставлял сам скрипт, и результаты выбрасывал в текстовый файл с именем аналогичным хосту, потом берет из папки с результатами(т.е. файлами результатов пинга) обрабатывает. Почему нужно много и сразу, потому что результаты должны обновлятся через короткие промежутки времени. Пробовал использовать Net::Ping, но результаты пинга больше чем в реале раза в два-три, это(как мне объяснили) результат того, что используются библиотеки перла, которые перед трансляцией подгружаются, поэтому именно из-за этого вариант сразу отпал. Выход единственный - пинговать системной командой, и для этого запускать ее как отдельный процесс. С порождением нужного количества процессов на моем серваке(Linux Interprase)проблем нет, у меня там права рута, но в конечном итоге скрипт будет работать на сервере, где у меня таких прав не будет, да и скрипту их никто не даст(он будет работать с консольном режиме и запускаться через crontab). Поэтому вот и приходится находить другие пути. Вот в принципе практически все.
PM MAIL   Вверх
GoodBoy
Дата 5.10.2004, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



Цитата(StealtH @ 5.10.2004, 03:21)
Пробовал использовать Net::Ping, но результаты пинга больше чем в реале раза в два-три, это(как мне объяснили) результат того, что используются библиотеки перла, которые перед трансляцией подгружаются, поэтому именно из-за этого вариант сразу отпал.

Цитата(StealtH @ 5.10.2004, 03:21)
С порождением нужного количества процессов на моем серваке(Linux Interprase)проблем нет

А теперь представь СКОЛЬКО системных ресурсов тебе надо, чтобы запустить 256 клонов своего скрипта, КАЖДЫЙ из которых запустит свою версию интерпретатора Перл... Ты уверен, что fork 256 процессов - это единственный выход???


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
StealtH
Дата 5.10.2004, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата(GoodBoy @ 5.10.2004, 10:10)
А теперь представь СКОЛЬКО системных ресурсов тебе надо, чтобы запустить 256 клонов своего скрипта, КАЖДЫЙ из которых запустит свою версию интерпретатора Перл... Ты уверен, что fork 256 процессов - это единственный выход???

Ну если какой-нить другой выход есть, то подскажи пожалуйста, буду признателен.
PM MAIL   Вверх
GoodBoy
Дата 5.10.2004, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



Могу предложить тебе, ну скажем к примеру, запускать 8 или 16 процессов и поделить между ними всё адресное пространство... Тогда и нагрузка на сервер будет не очень высокая и скорость работы возрастёт по сравнению с одним процессом...


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Nobody
Дата 5.10.2004, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

Репутация: нет
Всего: 16



Эээ... А старый добрый nmap не устраивает?


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
StealtH
Дата 5.10.2004, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата(GoodBoy @ 5.10.2004, 13:06)
Могу предложить тебе, ну скажем к примеру, запускать 8 или 16 процессов и поделить между ними всё адресное пространство... Тогда и нагрузка на сервер будет не очень высокая и скорость работы возрастёт по сравнению с одним процессом...

По подробнее если можно, потому что я с этим не сталкивался, и понятия не имею, или ссылочку где почитать по данному поводу.
PM MAIL   Вверх
GoodBoy
Дата 6.10.2004, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



StealtH
Ну смотри, есть у тебя скрипт, который опрашивает удалённый хост. К примеру по крону ты запускаешь 8 экземпляров этого скрипта с параметрами:
Код
./search.pl 0 31
./search.pl 32 63
./search.pl 64 96
       ...
./search.pl 223 255

а в самом скрипте читаешь начальное и конечное значение последнего сегмента адреса

Код
my $start = shift @ARGV;
my $end = shift @ARGV;

и дальше простейший цикл:
Код
for (my $last_addr=$start; $last_addr<=$end; $last_addr++) {
       my $full_addr = "192.168.100.$last_addr";

# И вперед - делать всё, что нужно!!!

}

Таким образом каждый из 8 процессов обработает свои 32 хоста...


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
StealtH
Дата 6.10.2004, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата(GoodBoy @ 6.10.2004, 10:01)
StealtH
Ну смотри, есть у тебя скрипт, который опрашивает удалённый хост. К примеру по крону ты запускаешь 8 экземпляров этого скрипта с параметрами:
Код
./search.pl 0 31
./search.pl 32 63
./search.pl 64 96
       ...
./search.pl 223 255

а в самом скрипте читаешь начальное и конечное значение последнего сегмента адреса

Код
my $start = shift @ARGV;
my $end = shift @ARGV;

и дальше простейший цикл:
Код
for (my $last_addr=$start; $last_addr<=$end; $last_addr++) {
       my $full_addr = "192.168.100.$last_addr";

# И вперед - делать всё, что нужно!!!

}

Таким образом каждый из 8 процессов обработает свои 32 хоста...

Т.е. таким образом постараться объеденить несколько задач в одну, используя входные параметры скрипта.

Но тогда при этом, снизится скорость работы скрипта. Вообщем неплохая идея, где про это можно более подробно почитать?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0957 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.