Всем привет!
Есть необходимость парсинга большого объёма данных. Был написан парсер на python (multiprocessing, request), всё работает как надо, но столкнулся с проблемой, каждый поток выедает много процессора и оперативки (даже не ожидал что будет такая нагрузка).
Логика работы следующая:
- Берём url (например построчное чтение из файла)
- Выкачиваем
- Записываем ответ в файлик
Логика вроде примитивная и по идее грузиться ничего не должно, но уже при 20-30 потоках сервер еле шевелится (домашний ПК, средний проц, 16gb оперативки, ubuntu server, кроме парсера ничго не запускается, в диск по данным iotop не упираюсь).
Собственно интересует:
На чём обычно пишут промышленные парсеры, чтобы было быстро, многопоточно и адекватно по ресурсам (предполагаю моя проблема в использовании связки python,multiprocessing,request). Пока это видится в виде чего-то вроде C++ либо я просто не умею готовить python? :)