Разделы · Парсеры и сбор данных
Делюсь разбором и заодно спрашиваю, кто как обходит.
На маленьком объёме всё работает, разница начинается после ста тысяч. Проверял на двух версиях программы, поведение одинаковое. Логи ведутся, в них видно, что запросы уходят, а ответы приходят короткие.
$ ./sbor --potokov 120 --spisok chast-01.txt --proksi pool.txt обработано: 48 210 / 50 000 пустых ответов: 1 842
Хочется услышать цифры от практиков.
Осторожнее с этим выводом, он верен не всегда.
Перед большим прогоном всегда гоняю пробу на тысяче адресов. Три минуты времени, и сразу видно, где посыплется.
Если данные отдаются скриптом, обычный сбор их не увидит. Смотрите, откуда страница берёт содержимое: часто рядом есть простой запрос, который отдаёт то же самое в удобном виде.
Отпишитесь, чем закончится, тема полезная.
Расскажу, чем закончилось у меня.
Скорость упирается не в программу, а в темп, который держит площадка. Ставить 300 потоков на 20 адресов бессмысленно, отказы съедят весь выигрыш.
Почти так, но одна деталь меняет вывод.
Скорость упирается не в программу, а в темп, который держит площадка. Ставить 300 потоков на 20 адресов бессмысленно, отказы съедят весь выигрыш.
Потери записей чаще всего идут из-за коротких ответов, которые программа считает успешными. Заведите проверку на минимальный размер ответа и на наличие обязательного куска разметки.
Разбейте прогон на части, станет ровнее.
На другой машине воспроизводится?
Расскажу, чем закончилось у меня.
Память ест не число потоков, а хранение всего собранного в памяти до конца прогона. Пишите результат на диск пачками, и потолок пропадёт.
Тут легко перепутать два разных момента.
Большие каталоги не надо гонять одним куском. Разбейте на части по пятьдесят тысяч, каждую с отдельным состоянием, и падение одной части перестанет ронять весь прогон.
$ ./sbor --potokov 120 --spisok chast-01.txt --proksi pool.txt обработано: 48 210 / 50 000 пустых ответов: 1 842
Начинал с того же, потом переделал.
Память ест не число потоков, а хранение всего собранного в памяти до конца прогона. Пишите результат на диск пачками, и потолок пропадёт.
Перед большим прогоном всегда гоняю пробу на тысяче адресов. Три минуты времени, и сразу видно, где посыплется.
$ ./sbor --potokov 120 --spisok chast-01.txt --proksi pool.txt обработано: 48 210 / 50 000 пустых ответов: 1 842