[Moscow.pm] LWP::Parallel

Anatoly Sharifulin sharifulin на gmail.com
Вс Май 11 07:41:09 PDT 2008


у меня тестовый бот на PoCoClientHTTP в 1000 сессий CPU загоняет в 99.9%,
причем не висит :)
но это если KeepAlive не зависнет (часто бывает при работе с
Google-поисковиком после 2х часов работы уходит в 99.9 и ничего не
происходит)

11 мая 2008 г. 12:37 пользователь Dmitriy T. <403rus на gmail.com> написал:

>  Позволю предположить что проблемы могут быть если создатели вдохновлялись
> обычной LWP . Потому что LWP это пожалуй наиболее  отвратно сделанная
> библиотека среди популярных из тех что я видел. Другое дело что для простых
> задач эти проблемы могут быть несущественные(что вобщем и есть с LWP - тупо
> скачать страницу с помощью неё можно без проблем, что вобщем и надо 99,99%
> пользователей, косяк с хедерами который никто не мог исправить годами(ожет
> уже исправили - не знаю), неправильным POST'ом в определённых ситуациях их
> не волнуют, так как они с этим просто не сталкиваются).
>
> Второе: посмотрел по диагонали исходник - если я правильно понял то сделан
> LWP::Parallel на селекте, что вобщем нормально если количество одновременно
> открытых коннектов не более 1000 (цифра по памяти - может плюс минус
> километр оказаться, да и зависит например от операционки). Если нужно больше
> коннектов, то надо точно смотреть в сторону C/C++ с epoll/kqueue. Правда
> 1000 коннектов (да даже 100-200 если качать с тормозных сайтов) на хорошем
> канале я думаю сожрут 100% CPU(одного ядра если их много) если в
> LWP::Parallel по этому поводу не заморачивались... Ну или смотреть как тут
> советовали на всякие перловые nonblocking костыли - я в своё время
> пересмотрел парочку и плюнул, так как оказалось проще на c++ написать чем
> бороться с утечками и граблями в чужих библиотеках. Но может для твоих задач
> их вполне хватит и грабли пройдут мимо. К тому же с тех пор их появилось
> много - может есть уже нормальное что-нибудь...
>
> Вобщем посмотри при работе как у тебя жрётся CPU и хватает ли канала. Если
> CPU жрётся меньше 15-20% и канала достаточно - то значит чего-то криво в
> LWP::Parallel. Если в никсах то можешь ещё извне посмотреть где затык -
> профайлером или трейсером каким...
>
>
> Михаил Монашёв wrote:
>
> Здравствуйте, Дмитрий.
>
> А кроме резолвера в нём какие ещё могут быть проблемы? Потому как в
> моём случае хостов всего пяток.
>
> DT> Насколько я помню LWP(который обычный - с Parallel не работал, но думаю
> DT> там так же) резолвит хосты без учёта таймаута, отсюда такое и
> DT> получается. К тому же если в LWP::Parallel синхронный резолвер и
> DT> нагрузки очень большие, то предлагаю искать сразу другой инструментарий
> DT> (возможно лучше вообще на C/C++).
>
> DT> Ещё помню как-то когда писал web-парсер(не помню уже на чём) сдуру
> DT> выставил обрабатывать бесконечное число редиректов - а там некоторые
> DT> страницы редиректили сами на себя, получилось весело...
>
>
>
>  LWP::Parallel рабочий модуль?
>
> Таймаут  задаю  секунду. Запихиваю ему 1000 урлов. Через секунду, да и
> через  минуту  тоже,  он  всё  ещё  чего-то  там  ждёт,  и не все урлы
> обработаны.
>
>
>  --
>
> С уважением,
> Михаил Монашёв, SoftSearch.rumailto:postmaster на softsearch.ru <postmaster на softsearch.ru>
> ICQ# 166233339http://michael.mindmix.ru/
> Без бэкапа по жизни.
>
> --
> Moscow.pm mailing listmoscow-pm на pm.org | http://moscow.pm.orghttp://mail.pm.org/mailman/listinfo/moscow-pm
>
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> http://mail.pm.org/mailman/listinfo/moscow-pm
>



-- 
С уважением,
Анатолий Шарифулин.
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20080511/4491cd13/attachment-0001.html 


Подробная информация о списке рассылки Moscow-pm