у меня тестовый бот на PoCoClientHTTP в 1000 сессий CPU загоняет в 99.9%, причем не висит :)<br>но это если KeepAlive не зависнет (часто бывает при работе с Google-поисковиком после 2х часов работы уходит в 99.9 и ничего не происходит)<br>
<br><div class="gmail_quote">11 мая 2008 г. 12:37 пользователь Dmitriy T. <<a href="mailto:403rus@gmail.com">403rus@gmail.com</a>> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div 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. Если в никсах то можешь ещё извне посмотреть где
затык - профайлером или трейсером каким...<div><div></div><div class="Wj3C7c"><br>
<br>
Михаил Монашёв wrote:
<blockquote type="cite">
<pre>Здравствуйте, Дмитрий.
А кроме резолвера в нём какие ещё могут быть проблемы? Потому как в
моём случае хостов всего пяток.
DT> Насколько я помню LWP(который обычный - с Parallel не работал, но думаю
DT> там так же) резолвит хосты без учёта таймаута, отсюда такое и
DT> получается. К тому же если в LWP::Parallel синхронный резолвер и
DT> нагрузки очень большие, то предлагаю искать сразу другой инструментарий
DT> (возможно лучше вообще на C/C++).
DT> Ещё помню как-то когда писал web-парсер(не помню уже на чём) сдуру
DT> выставил обрабатывать бесконечное число редиректов - а там некоторые
DT> страницы редиректили сами на себя, получилось весело...
</pre>
<blockquote type="cite">
<blockquote type="cite">
<pre>LWP::Parallel рабочий модуль?
Таймаут задаю секунду. Запихиваю ему 1000 урлов. Через секунду, да и
через минуту тоже, он всё ещё чего-то там ждёт, и не все урлы
обработаны.
</pre>
</blockquote>
</blockquote>
<pre>--
С уважением,
Михаил Монашёв, SoftSearch.ru
<a href="mailto:postmaster@softsearch.ru" target="_blank">mailto:postmaster@softsearch.ru</a>
ICQ# 166233339
<a href="http://michael.mindmix.ru/" target="_blank">http://michael.mindmix.ru/</a>
Без бэкапа по жизни.
--
Moscow.pm mailing list
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a>
<a href="http://mail.pm.org/mailman/listinfo/moscow-pm" target="_blank">http://mail.pm.org/mailman/listinfo/moscow-pm</a></pre>
</blockquote>
<br>
</div></div></div>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/moscow-pm" target="_blank">http://mail.pm.org/mailman/listinfo/moscow-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>С уважением,<br> Анатолий Шарифулин.