Чтобы создать крупномасштабный сканер, вам придется столкнуться с некоторыми проблемами, такими как:
• Невозможность хранить всю информацию в одной базе данных.
• Недостаточно ОЗУ для обработки огромных индексов
• Многопоточная производительность и параллелизм
• Ловушки сканера (бесконечный цикл, созданный путем изменения URL, календарей, идентификаторов сеансов ...) и дублированного содержимого.
• Сканирование с нескольких компьютеров
• Неправильные коды HTML
• Постоянные ошибки http с серверов
• Базы данных без сжатия, которые увеличивают ваше пространство примерно в 8 раз.
• Процедуры и приоритеты повторного сканирования.
• Использовать запросы со сжатием (Deflate / gzip) (подходит для любого типа сканера).
И некоторые важные вещи
• Респект robots.txt
• И задержка сканера при каждом запросе, чтобы не задушить веб-серверы.
Оптимальная конфигурация потока будет зависеть от вашего кода. Я запускаю 100 процессов с .net. Я рекомендую вам использовать класс расписания, чтобы избежать ненужных открытых тем.
PS. Если вы используете 5 потоков, вам понадобятся годы, чтобы достичь «крупномасштабного» веб-сканирования.