목록 보기
Scaling PhantomJS With Ghost Town
백엔드

Scaling PhantomJS With Ghost Town

버즈빌
버즈빌
2014년 5월 29일

두줄요약

Ghost Town으로 PhantomJS의 크래시와 메모리 문제를 견디는 이미지 렌더링 구조를 설계했습니다.\n작업 큐, 워커 재할당, 프로세스 재시작으로 자동 확장과 복구를 지원합니다.

문제 상황

  • PhantomJS의 빈번한 크래시·프리징, 높은 메모리 사용량, 느린 시작 시간
  • 다양한 이미지의 저지연 렌더링과 높은 동시성 요구
  • 수동 확장과 방치된 PhantomJS·phantomjs-node 생태계

구조와 흐름

  • 마스터 큐에 작업 저장 후 가용 워커에 할당하는 클러스터 처리
  • 타임아웃 또는 워커 실패 작업의 자동 재큐잉
  • 워커별 독립 PhantomJS 프로세스와 페이지 생성 횟수 기준 주기적 재시작

해결 방법

  • PhantomJS 실행·관리와 작업 큐잉을 담당하는 Node.js 모듈 Ghost Town 설계
  • 자동 확장과 크래시 복구를 통한 안정적 이미지 렌더링
  • Node.js cluster 모듈과 유사한 마스터·워커 구현 방식

성능/운영 포인트

  • 워커별 프로세스 격리로 메모리 누수 완화
  • 설정 옵션을 통한 런타임과 효율성 조정

다음 읽기

#PhantomJS 주제를 이어서 읽기

PhantomJS를 Puppeteer 전환하며

모바일 잠금화면 콘텐츠 이미지를 실시간 생성하는 PhantomJS 렌더링 서버를 운영했습니다. 대규모 이미지 생성과 스케일링 이슈를 배경으로 Puppeteer 전환을 다룹니다.

버즈빌
버즈빌
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...