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