Python selenium chromedriver высокая загрузка процессора при параллельном выполнении
Мне нужно запустить несколько (например, 100) параллельных сканирований с помощью selenium, но из-за высокого использования процессора мой сервер очень быстро падает. Я хотел бы знать, как я могу значительно снизить высокое использование процессора, потому что даже если я запускаю 5 сканирований одновременно, использование процессора все равно превышает 50%? Должен ли я использовать другой webdriver или я могу как-то замедлить время сканирования, но сохранить мощность процессора (т.е. применить ограничения)? Я применил некоторые опции для снижения загрузки процессора, но это не помогло. Ниже приведены опции хрома
def get_chrome_options():
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1200x600')
options.page_load_strategy = 'normal'
options.add_argument('--no-sandbox')
options.add_argument("--disable-setuid-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument('--disable-gpu')
options.add_argument("--disable-extensions")
options.add_argument('--ignore-certificate-errors')
options.add_argument("--FontRenderHinting[none]")
return options
Мне нужно создать и запустить веб-драйвер из моего веб-приложения (Django), поэтому я должен создавать новый веб-драйвер каждый раз, когда я делаю HTTP-запрос, и я не могу повторно использовать один и тот же веб-драйвер. Ниже приведен пример
def run_scan(request, url):
driver = webdriver.Chrome(executable_path=settings.CHROME_DRIVER, options=get_chrome_options())
driver.get(url)
print(driver.page_source)
Нижеприведенная информация описывает мое текущее окружение
Python - 3.9.7
Selenium - 3.141.0
Chromedriver - 93.0.4577.82
OS - alpine linux