![]() |
Модераторы: ginnie, korob2001 |
![]() ![]() ![]() |
|
StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Такая возникла трабла, нужно создать несколько дочерних процессов, точнее 255, а создается только 64. С чем это связано, и как это можно исправить. Подскажите пожалуйста, или подкинте ссылочку на документацию, плиз
|
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 3 Всего: 44 |
Возник вопросик нах тебе столько процессов???
![]() |
|||
|
||||
StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Ну о-о-о-о-о-чень нужно ![]() |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
StealtH
А ты уверен, что другова пути нет???? |
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
ключевые слова: fork, use threads, use Threads;
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
StealtH |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Пробовал делать через дескрипторы файлов, через system, через обратные кавычки, везде один и тотже результат, может это операционка накладывает свои ограничения, если так, то где почитать как с этим бороться. Добавлено @ 18:05
Не помогает ![]() |
||||
|
|||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
StealtH
Нет, ты не понял!!!!! Опиши задачу!!! Может есть другой путь решения, чем плодить процессы!!!!! |
|||
|
||||
StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Вообщем суть дела такова. Есть определенный диапазон IP-адресов(большой), который нужно отслеживать на наличие различных сервисов(Apache, фтп, и т.д.). Есть скрипт, который все это прекрасно делает(сам написал), суть работы такова, сначала пингуем хост, а потом производим с ним остальные действия. Т.к. хостов много около 1000, то, нужно, чтоб сервер их пинговал сразу и по многу, т.е. брал маску адреса(типа 192.168.100.) а остальные цифры последнего актета подставлял сам скрипт, и результаты выбрасывал в текстовый файл с именем аналогичным хосту, потом берет из папки с результатами(т.е. файлами результатов пинга) обрабатывает. Почему нужно много и сразу, потому что результаты должны обновлятся через короткие промежутки времени. Пробовал использовать Net::Ping, но результаты пинга больше чем в реале раза в два-три, это(как мне объяснили) результат того, что используются библиотеки перла, которые перед трансляцией подгружаются, поэтому именно из-за этого вариант сразу отпал. Выход единственный - пинговать системной командой, и для этого запускать ее как отдельный процесс. С порождением нужного количества процессов на моем серваке(Linux Interprase)проблем нет, у меня там права рута, но в конечном итоге скрипт будет работать на сервере, где у меня таких прав не будет, да и скрипту их никто не даст(он будет работать с консольном режиме и запускаться через crontab). Поэтому вот и приходится находить другие пути. Вот в принципе практически все. |
|||
|
||||
GoodBoy |
|
||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
А теперь представь СКОЛЬКО системных ресурсов тебе надо, чтобы запустить 256 клонов своего скрипта, КАЖДЫЙ из которых запустит свою версию интерпретатора Перл... Ты уверен, что fork 256 процессов - это единственный выход??? |
||||
|
|||||
StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Ну если какой-нить другой выход есть, то подскажи пожалуйста, буду признателен. |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
Могу предложить тебе, ну скажем к примеру, запускать 8 или 16 процессов и поделить между ними всё адресное пространство... Тогда и нагрузка на сервер будет не очень высокая и скорость работы возрастёт по сравнению с одним процессом...
|
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: нет Всего: 16 |
Эээ... А старый добрый nmap не устраивает?
-------------------- |
|||
|
||||
StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
По подробнее если можно, потому что я с этим не сталкивался, и понятия не имею, или ссылочку где почитать по данному поводу. |
|||
|
||||
GoodBoy |
|
||||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
StealtH
Ну смотри, есть у тебя скрипт, который опрашивает удалённый хост. К примеру по крону ты запускаешь 8 экземпляров этого скрипта с параметрами:
а в самом скрипте читаешь начальное и конечное значение последнего сегмента адреса
и дальше простейший цикл:
Таким образом каждый из 8 процессов обработает свои 32 хоста... |
||||||
|
|||||||
StealtH |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Т.е. таким образом постараться объеденить несколько задач в одну, используя входные параметры скрипта. Но тогда при этом, снизится скорость работы скрипта. Вообщем неплохая идея, где про это можно более подробно почитать? |
||||||||
|
|||||||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
Ну, как ты можешь сам догадаться, нельзя одновременно кушать рыбу и карабкаться на дерево... ![]() |
|||
|
||||
StealtH |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Вообщем смысл такой, сервак от количества процессов загнуться не должен(я так думаю), но самое главное точность и скорость, это основной принцип работы скрипта. Да и вот еще маленький ньюанс, скорее я бы даже сказал просьба, подкинь ссылочку, если таковая имеется, на ресурс, где можно почитать про разделение памяти между процессами, если там будут примеры будет ваще рульно, моя признательность не будет знать границ(в будующем сочтемся) Да и еще чуть не забыл, ресурсы не важно, но только вот чтоб траблов с доступом к ним не было в связи с тем, что запускаться скрипт будет не от рута, это тоже не мало важный ньюанс. Это сообщение отредактировал(а) StealtH - 7.10.2004, 13:02 |
||||
|
|||||
GoodBoy |
|
||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
тогда запусти 64 процесса, и каждый из них пусть обработает по 4 хоста!!!!
Сорри, не знаю... |
||||
|
|||||
StealtH |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Ты наверное не понял сути вопроса, мне нужно именно пинг запустить в таком количестве экземпляров, результаты пинга складываются в файлик, а потом сканить порты на запущенные серивы, тоже в несколько потоков. В итоге сервак надрывается меньше минуты и сразу выдает результат.
Я почему так решил, потому-что обработать 200kb(при самом боьшом количестве хостов) гораздо проще и менее ресурсоемко, чем делать это все в каком-то цикле(сначала пинговать, а потом обрабатывать результат) дольше по времени и неизвестно как себя может повести скрипт при каких-либо ошибках(я имею ввиду какую-нить непредвиденную ситуевину, всего ведь не предусмотришь). Системного пинга в чем плюс, в том, что он выводит именно те результаты, которые есть на самом деле, а перловый пинг меня чо-то разочаровал(результаты в 3-4 раза больше чем от системного). Тем более что скрипт будет запускаться кроном и контролировать его работу будет довольно-таки сложно, а в логах его работы потом ковыряться мне особо эта перспектива не прильщает(долго и скучно).
Ну тады Яndex - найдется ф-ф-ф-ф-се ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |