[Pythhon] Windows에서 Firefox(+Selenium) 디스크 액세스 억제

개시하다


Windows 11에서 Firefox를 Selenium을 통해 자동으로 조작하는 경우가 있습니다.
뒷면에서 그 조작을 시작하면 시스템(프로세스 ID=4)의 디스크 접근이 100%가 되어 PC가 정상적으로 작동하지 못하는 경우가 많다.
작업 관리자 등을 통해 확인한 후 Sytem 처리는 디스크 액세스가 됩니다.
따라서 액세스한 파일이 Firefox 구성 파일임에도 불구하고 OS 측 문제로 여겨져 왔다.
최근에 Firefox의 문제를 깨달았습니다. 몇 번을 시도한 후에 디스크 캐시를 닫으면 디스크 접근을 억제할 수 있다는 것을 발견했습니다.

컨디션


Windows
エディション	Windows 11 Pro
バージョン	21H2
OS ビルド	22000.556
エクスペリエンス	Windows 機能エクスペリエンス パック 1000.22000.556.0
システムの種類	64 ビット オペレーティング システム、x64 ベース プロセッサ
Python
Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)]
Firefox
Firefox 98.0.2 (64 ビット)
Selenium
selenium           4.1.0
Geckodriver
'moz:geckodriverVersion': '0.30.0'

대책: Firefox 디스크 캐시 해제


수동 수정


Firefox의 디스크 캐시를 수동으로 닫으려면 다음과 같이 하십시오.
  • 주소 표시줄에 about:config
  • 입력
  • 검색 창에 browser.cache.disk.enable
  • 입력
  • 값을 false
  • 로 설정합니다.
  • Firefox
  • 재부팅

    Selenium을 사용하여 디스크 캐시를 닫고 Firefox를 시작합니다.


    Selenium Auto를 사용할 때는 구성 파일을 지정하고 를 시작해야 합니다.
    예를 들면 다음과 같습니다.
    python
    import os.path
    
    from selenium import webdriver
    from selenium.webdriver.firefox.service import Service as FirefoxService
    from selenium.webdriver.firefox.options import Options as FirefoxOptions
    
    options = FirefoxOptions()
    options.add_argument('-safe-mode')
    options.set_preference("browser.cache.disk.enable", False)
    service = FirefoxService(executable_path="geckodriver.exe", log_path=os.path.devnull)
    driver = webdriver.Firefox(service=service, options=options)
    
    driver.get("https://www.google.com/")
    

    최후


    디스크 캐시가 일시적으로 꺼졌지만 디스크 접근이 현저히 줄어들어 편안해졌다.
    왜 메모리 사용량이 이전보다 떨어졌는지 모르겠다.
    어쩌면 자신의 환경만 있을지도 모른다.
    원래 메모리 환경이 좋지 않아서 디스크 접근량도 늘어나지만 어쩔 수 없다고 생각합니다.
    Windows 11도 문제가 있는 것 같습니다.

    좋은 웹페이지 즐겨찾기