Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСофт и программы

A-Parser: сколько потоков ставить, чтобы не ловить отказы

parser_ru
parser_ru
Ветеран
сообщений 3140
с фев
15 марта, 14:02первое сообщение

Собираю каталог на 180 тысяч карточек, окно ночное, часов восемь. Поставил 300 потоков, к третьему часу пошли пустые ответы, к четвёртому прогон встал.

Понижаю до 80, всё едет ровно, но за ночь не успеваю. Где искать середину? Считать по отклику или тупо подбирать?

Threads: 300
Success: 62%
Avg response: 4.9s
nullbyte
nullbyte
Ветеран
сообщений 2680
с апр
22 августа, 17:19#2

Подбирать не надо, тут арифметика на салфетке.

Берёшь требуемую скорость в запросах за секунду и умножаешь на средний отклик. Восемь часов на 180 тысяч это 6.25 запроса в секунду. При отклике 1.2 секунды выходит 8 соединений. При отклике 4.9, как у тебя, уже 31.

У тебя 300 при потребности в 31. Отсюда и пустые ответы: ты сам себе поднял отклик.

если не воспроизводится, значит не понял
parser_ru
parser_ru
Ветеран
сообщений 3140
с фев
1 января, 08:36#3
nullbyte: ты сам себе поднял отклик

Вот это до меня не доходило. То есть отклик 4.9 это уже следствие, сами исходные данные другие?

nullbyte
nullbyte
Ветеран
сообщений 2680
с апр
8 июня, 11:53#4

Именно. Меряй отклик на спокойном темпе, десять потоков максимум. Вот та цифра и рабочая.

замер на спокойном темпе
замер на спокойном темпе

Медиана 1.31. Считаем: 6.25 × 1.31 = 8.2, округляем вверх и добавляем треть запаса. Пятнадцать потоков. Не триста.

если не воспроизводится, значит не понял
Артём Пчёлкин
Артём Пчёлкин
Ветеран
сообщений 2310
с янв
15 ноября, 14:10#5

Плюсую. Добавлю только, что 180 тысяч карточек за восемь часов это 6.25 в секунду в среднем, а сайт неровный: ночью быстрее, под утро медленнее. Я обычно закладываю полтора раза сверху и ставлю паузу с разбросом.

ЧтоЗначение
Целевая скорость6.25 запроса в секунду
Медиана отклика1.31 с
Голая потребность8 соединений
С запасом в полтора раза12
Пауза между обращениями250-600 мс
kolyan_86
kolyan_86
Участник
сообщений 640
с июл
22 апреля, 17:27#6

а разве потоки не от прокси зависят? у меня пакет на 1000 потоков, я думал надо выжимать

Артём Пчёлкин
Артём Пчёлкин
Ветеран
сообщений 2310
с янв
1 сентября, 08:44#7

Лимит пакета это потолок. Заданием он не работает. Тысяча потоков означает, что тебе не упрутся в лимит, когда задача правда потребует много. Гнать в потолок ради потолка смысла нет: упрёшься в целевой сайт задолго до лимита пакета.

Я под такие прогоны беру приватные серверные адреса с безлимитным трафиком и держу 15-40 соединений. Ровность важнее пика.

Родион Гаев
Родион Гаев
Ветеран
сообщений 2420
с фев
8 февраля, 11:01#8

Отмечу сбоку, раз тема живая. У нас похожая история была на прогоне по маркетплейсу, и там дело оказалось не только в числе соединений. Мы упирались в то, что все запросы уходили ровным пулемётным темпом, без пауз вообще. Сайт такое видит сразу: живой человек так не ходит, у него между страницами то две секунды, то двадцать.

Сделали паузу с разбросом, от 300 до 900 миллисекунд, и добавили редкие длинные остановки, секунд по десять, раз в сотню обращений. Число потоков при этом даже подняли, с двенадцати до двадцати. Отказы ушли совсем, а общая скорость выросла, потому что перестали тратить время на повторы.

Так что связка тут двойная: разумное число соединений плюс неровный ритм. Одно без другого работает хуже.

kolyan_86
kolyan_86
Участник
сообщений 640
с июл
15 июля, 14:18#9

о, про разброс паузы не думал вообще, спасибо

parser_ru
parser_ru
Ветеран
сообщений 3140
с фев
22 декабря, 17:35#10

Перемерил на десяти потоках, медиана 1.28. Поставил 14, пауза 300-700. Идёт четвёртый час, отказов ноль, по графику успеваю к семи утра.

Спасибо, тема закрыта.

sysdiag
sysdiag
Знаток
сообщений 1975
с фев
1 мая, 08:52#11

Оставлю на будущее для тех, кто найдёт поиском: пустые ответы при росте потоков почти всегда значат, что вы перешли порог частоты на стороне сайта. Смотреть надо на коды ответов во времени, софт тут ни при чём.

логи читаю раньше почты