Mac 부팅이 5%에서 멈추는 문제 (헤드리스 Chrome 앱 복제본 누적)

(news.hada.io)
GeekNews개발자 도구
Mac 부팅이 5%에서 멈추는 문제 (헤드리스 Chrome 앱 복제본 누적)

macOS에서 헤드리스 Chrome 사용 시 프로세스 강제 종료로 인해 누적된 앱 복제본이 부팅 지연을 유발할 수 있으며, 이는 자동화 환경의 인프라 관리 및 프로세스 생명주기 관리의 중요성을 시사합니다.

이 글의 핵심 포인트

  • 1Chrome은 업데이트 시 코드 서명 일관성을 위해 앱 전체를 `/var/folders`에 복제함
  • 2SIGKILL이나 크래시로 프로세스가 종료될 경우 복제된 파일이 삭제되지 않고 누적됨
  • 3작성자의 사례에서 약 37,856개의 복제본이 쌓여 부팅 시 최대 40분간 지연 발생
  • 4macOS 재설치로도 해결되지 않는데, 이는 `/var/folders`가 재설치 시에도 유지되기 때문임
  • 5해결 방법으로 `--disable-features=MacAppCodeSignClone` 옵션을 사용하여 복제 방지 가능

이 글에 대한 공공지능 분석

왜 중요한가?

단순한 소프트웨어 버그를 넘어, 자동화된 인프라 환경(CI/CD, 크롤링 서버 등)에서 프로세스 관리 미흡이 어떻게 시스템 전체의 가용성을 파괴할 수 있는지 보여주는 사례이기 때문입니다.

어떤 배경과 맥락이 있나?

Chrome은 업데이트 중 코드 서명 불일치를 방지하기 위해 실행 시 앱을 `/var/folders`에 복제(clonefile)합니다. 정상 종료 시에는 이 복제본이 삭제되지만, Playwright나 Puppeteer 환경에서 흔히 쓰이는 SIGKILL 방식은 이 정화 과정을 생략하게 만듭니다.

업계에 어떤 영향을 주나?

헤드리스 브라우저를 활용해 대규모 데이터 수집이나 자동화 테스트를 수행하는 기업은 프로세스 종료 로직(SIGTERM 권장)을 재점검해야 하며, 파일 시스템의 엔트리 개수 증가가 시스템 부팅 성능에 미치는 영향을 고려해야 합니다.

한국 시장에 어떤 시사점이 있나?

웹 크롤링 및 데이터 기반 서비스를 운영하는 한국의 많은 스타트업은 인프라 비용 절감을 위해 단일 서버 내 다중 프로세스 운영을 선호하는데, 이러한 환경에서 발생할 수 있는 '보이지 않는 기술 부채'에 대한 모니터링 체계가 필요합니다.

이 글에 대한 큐레이터 의견

이 문제는 개발자가 제어할 수 없는 '추상화된 레이어(OS와 브라우저의 상호작용)'에서 발생하는 전형적인 사이드 이펙트입니다. 개발자는 브라우저를 단순한 도구로 보지만, 브라우저가 OS의 파일 시스템과 상호작용하는 방식이 시스템 전체의 안정성을 위협할 수 있음을 인지해야 합니다. 특히 디스크 용량이 아닌 '파일 엔트리 개수'가 병목의 원인이 되었다는 점은 인프라 모니터링의 새로운 관점을 제시합니다.

물론 `--disable-features=MacAppCodeSignClone` 옵션을 사용하는 것은 즉각적인 해결책이 될 수 있으나, 이는 Chrome의 핵심적인 업데이트 메커니즘을 우회하는 것이므로 보안 업데이트나 코드 서명 검증의 무결성을 해칠 수 있는 트레이드오프가 존재합니다. 따라서 근본적인 해결책은 프로세스 종료 방식을 SIGTERM으로 전환하여 정화 프로세스를 보장하는 것이며, 인프라 운영 측면에서는 `/var/folders`와 같은 시스템 디렉토리의 상태를 주기적으로 점검하는 관측 가능성(Observability)을 확보하는 것이 중요합니다.

원문 보기 →

관련 뉴스

댓글

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.