Доброго времени всем, Заметил такую беду. Ставлю количество потоков 2000, запускаю парсер, собираю с множества сайтов регуляркой определенную информацию. Процессор загружен на 5-10%, все летает нормально. Но что-то дернуло меня перепроверить данные вручную. Заметил, что на некоторых сайтах необходимая информация присутствует, а парсер ее не смог вытащить. Далее делаю тесты. При запущенном основном парсере запускаю тестовый парсинг, сайт выдает 596 ошибку. Останавливаю основной парсер и вуаля - тестовый парсер вытащил необходимую инфу. Собственно вопрос, что за ерунда такая происходит? Как понимаю, слишком много потоков в работе, из за чего какие-то сайты не открываются. Но процессор ведь не нагружен совершенно, памяти предостаточно. Как понять, какой безопасный лимит потоков, чтобы парсер открывал все сайты и чтобы информация не пропадала ?
Кол-во потоков для парсинга, превышает кол-во потоков в тарифе прокси. Подробнее тут написано https://a-parser.com/wiki/threads/#threads-count
Я не использую прокси. 1 сайт = 1 запрос. Сайтов несколько миллионов, прокси ненужны. Подозреваю, что эта проблема из за лимита по ДНС запросам от Google 8.8.8.8. Собственно вопрос, возможно ли настроить A-parser таким образом, чтобы распределить нагрузку между несколькими разными ДНС серверами?
Запустил парсер в 3000 потоков. Как видно из лога, очень многие сайты отдают ошибку 596. При этом, через браузер захожу на эти сайты - все ОК, открываются. Также, если останавливаю основной многопоточный парсер и запускаю тестовый парсинг для каждого из этих сайтов, там все ОК, по одному сайты парсятся корректно.
Слишком большое кол-во потоков. к примеру если 100 мбит подключение, то 100 * 1024 / 3000 = 34.1333333333333 это значит что каждый сайт должен грузится со скоростью 34кбит\с
Канал на сервере 500мбит. Сейчас вот запустил 200 потоков, 596 ошибок стало сильно меньше (около 5-10% от общего кол-ва), но все равно это ерунда какая-то. Мощный сервер, широкий канал, а парсит через пень-колоду. Все таки думаю, что это проблема с ДНС. Нашел в хелпе такую функцию : Работает ли этот функционал? Можно создать конфиг файл и добавить в него с десяток разных ДНС серверов?