<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=KOI8-R" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Позволю предположить что проблемы могут быть если создатели
вдохновлялись обычной LWP . Потому что LWP это пожалуй наиболее
отвратно сделанная библиотека среди популярных из тех что я видел.
Другое дело что для простых задач эти проблемы могут быть
несущественные(что вобщем и есть с LWP - тупо скачать страницу с
помощью неё можно без проблем, что вобщем и надо 99,99% пользователей,
косяк с хедерами который никто не мог исправить годами(ожет уже
исправили - не знаю), неправильным POST'ом в определённых ситуациях их
не волнуют, так как они с этим просто не сталкиваются).<br>
<br>
Второе: посмотрел по диагонали исходник - если я правильно понял то
сделан LWP::Parallel на селекте, что вобщем нормально если количество
одновременно открытых коннектов не более 1000 (цифра по памяти - может
плюс минус километр оказаться, да и зависит например от операционки).
Если нужно больше коннектов, то надо точно смотреть в сторону C/C++ с
epoll/kqueue. Правда 1000 коннектов (да даже 100-200 если качать с
тормозных сайтов) на хорошем канале я думаю сожрут 100% CPU(одного ядра
если их много) если в LWP::Parallel по этому поводу не
заморачивались... Ну или смотреть как тут советовали на всякие перловые
nonblocking костыли - я в своё время пересмотрел парочку и плюнул, так
как оказалось проще на c++ написать чем бороться с утечками и граблями
в чужих библиотеках. Но может для твоих задач их вполне хватит и грабли
пройдут мимо. К тому же с тех пор их появилось много - может есть уже
нормальное что-нибудь...<br>
<br>
Вобщем посмотри при работе как у тебя жрётся CPU и хватает ли канала.
Если CPU жрётся меньше 15-20% и канала достаточно - то значит чего-то
криво в LWP::Parallel. Если в никсах то можешь ещё извне посмотреть где
затык - профайлером или трейсером каким...<br>
<br>
Михаил Монашёв wrote:
<blockquote cite="mid:248079573.20080511113401@softsearch.ru"
type="cite">
<pre wrap="">Здравствуйте, Дмитрий.
А кроме резолвера в нём какие ещё могут быть проблемы? Потому как в
моём случае хостов всего пяток.
DT> Насколько я помню LWP(который обычный - с Parallel не работал, но думаю
DT> там так же) резолвит хосты без учёта таймаута, отсюда такое и
DT> получается. К тому же если в LWP::Parallel синхронный резолвер и
DT> нагрузки очень большие, то предлагаю искать сразу другой инструментарий
DT> (возможно лучше вообще на C/C++).
DT> Ещё помню как-то когда писал web-парсер(не помню уже на чём) сдуру
DT> выставил обрабатывать бесконечное число редиректов - а там некоторые
DT> страницы редиректили сами на себя, получилось весело...
</pre>
<blockquote type="cite">
<blockquote type="cite">
<pre wrap="">LWP::Parallel рабочий модуль?
Таймаут задаю секунду. Запихиваю ему 1000 урлов. Через секунду, да и
через минуту тоже, он всё ещё чего-то там ждёт, и не все урлы
обработаны.
</pre>
</blockquote>
</blockquote>
<pre wrap=""><!---->
--
С уважением,
Михаил Монашёв, SoftSearch.ru
<a class="moz-txt-link-freetext" href="mailto:postmaster@softsearch.ru">mailto:postmaster@softsearch.ru</a>
ICQ# 166233339
<a class="moz-txt-link-freetext" href="http://michael.mindmix.ru/">http://michael.mindmix.ru/</a>
Без бэкапа по жизни.
--
Moscow.pm mailing list
<a class="moz-txt-link-abbreviated" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a class="moz-txt-link-freetext" href="http://moscow.pm.org">http://moscow.pm.org</a>
<a class="moz-txt-link-freetext" href="http://mail.pm.org/mailman/listinfo/moscow-pm">http://mail.pm.org/mailman/listinfo/moscow-pm</a></pre>
</blockquote>
<br>
</body>
</html>