Форум сайта python.su
Я конечно понимаю это извращение но допустим создать 1000 процесов с 2 потоками, для эфективного парсинга или непарить себя и просто создать 2к процессов.
Офлайн
Особого смысла создавать столько процессов нет. Оптимальное число примерно равно количеству ядер процессора. Если же обработка не сильно нагружает процессор, а основное время тратится на IO, от многопроцессорности будет только оверхед на передачу данных между процессами.
При таком количестве потоков уже нужно смотреть в сторону асинхронного IO. Например, gevent + grequests, scrapy или grab spider.
Офлайн
juche-songunА вы проблему опишите если она есть. А так мы посоветуем не парить себя и делать все в одном потоке и одном процессе.
или непарить себя
Отредактировано doza_and (Ноя. 3, 2012 08:36:49)
Офлайн
простой парсер, конетнта есть 5 лямов ссылок. пхп их проходит за сутки, охото перенести его на питон с максимальной загрузкой CPU, хотел сделать через треды но урлиб и прочее очень часто выдавали ДНС ошибки или таймаут, насколько я понял на создать 8 процессов на 8 ядер и использовать асинхронку на каждый процесс?
Офлайн
Можно больше 8, поскольку пока выполняется запрос поток и ядро будут простаивать.
Офлайн
не спец по парсингу сайтов но может это поможет прояснить ситуацию:
http://habrahabr.ru/post/134918/
Офлайн
прописываю автору Erlang
Офлайн
Ребята, вы “наркоманы штоле?” ей богу, я спрашивал про потоки, а не про то чем парсить!
Допустим будет ли эффективен 1000 процессов с грабом или другим асинхронным парсером, и чем можно замерить эффективность?
Офлайн
Ребята, вы “наркоманы штоле?” ей богу, я спрашивал про потоки, а не про то чем парсить!
Допустим будет ли эффективен 1000 процессов с грабом или другим асинхронным парсером, и чем можно замерить эффективность?
Офлайн
juche-songunСчитать количество обработанных данных/запросов в секунду (в коде); смотреть на загруженность канала, процессора, памяти (в системе).
чем можно замерить эффективность?
juche-songunЕсли для обработки полученных данных нужно много ресурсов процессора (математика, большие html/xml) или канал большой и один процесс его не загружает, то есть смысл использовать несколько процессов (в районе количества ядер). Или сделать 1(2) процесс(а) асинхронных скраперов для сбора данных, остальные для обработки. Но тут уже может в базу/диск упереться.
насколько я понял на создать 8 процессов на 8 ядер и использовать асинхронку на каждый процесс?
juche-songunЭто наверное сайту плохо.
хотел сделать через треды но урлиб и прочее очень часто выдавали ДНС ошибки или таймаут
Офлайн