InfoGrab Docs

메모리 사용량 줄이기

Sidekiq 메모리 킬러를 사용하여 메모리를 과도하게 소비하는 백그라운드 job 프로세스를 자동으로 관리합니다.

Sidekiq 메모리 킬러는 메모리를 과도하게 소비하는 백그라운드 job 프로세스를 자동으로 관리합니다. 이 기능은 워커 프로세스를 모니터링하고 Linux 메모리 킬러가 개입하기 전에 재시작하여 백그라운드 job이 정상적으로 종료되기 전에 완료될 수 있도록 합니다. 이러한 이벤트를 로그에 기록함으로써 높은 메모리 사용량을 유발하는 job을 식별하기 쉽게 합니다. Sidekiq 메모리 모니터링 방법 # GitLab은 기본적으로 Linux 패키지 또는 Docker 설치에서만 사용 가능한 RSS 제한을 모니터링합니다. 그 이유는 GitLab이 메모리로 인한 종료 후 Sidekiq를 재시작하기 위해 runit에 의존하는데, 직접 컴파일 설치 및 Helm 차트 설치는 runit 또는 동등한 도구를 사용하지 않기 때문입니다. 기본 설정을 사용하면 Sidekiq는 15분에 한 번 이상 재시작되지 않으며, 재시작으로 인해 들어오는 백그라운드 job에 약 1분의 지연이 발생합니다. 일부 백그라운드 job은 장시간 실행되는 외부 프로세스에 의존합니다. Sidekiq가 재시작될 때 이러한 프로세스가 정리되어 종료되도록 하려면 각 Sidekiq 프로세스를 프로세스 그룹 리더로 실행해야 합니다(예: chpst -P 사용). Linux 패키지 설치 또는 runit 이 설치된 bin/background_jobs 스크립트를 사용하는 경우 이 작업은 자동으로 처리됩니다. 제한 구성 # Sidekiq 메모리 제한은 환경 변수 를 사용하여 제어됩니다. SIDEKIQ_MEMORY_KILLER_MAX_RSS (KB): 허용된 RSS에 대한 Sidekiq 프로세스 소프트 제한을 정의합니다. Sidekiq 프로세스 RSS(킬로바이트로 표시)가 SIDEKIQ_MEMORY_KILLER_MAX_RSS 를 초과하여 SIDEKIQ_MEMORY_KILLER_GRACE_TIME 보다 오래 지속되면 정상 재시작이 트리거됩니다. SIDEKIQ_MEMORY_KILLER_MAX_RSS 가 설정되지 않았거나 값이 0으로 설정된 경우 소프트 제한이 모니터링되지 않습니다. SIDEKIQ_MEMORY_KILLER_MAX_RSS 의 기본값은 2000000 입니다. SIDEKIQ_MEMORY_KILLER_GRACE_TIME : Sidekiq 프로세스가 허용된 RSS 소프트 제한을 초과하여 실행되도록 허용되는 유예 기간(초)을 정의합니다. Sidekiq 프로세스가 SIDEKIQ_MEMORY_KILLER_GRACE_TIME 내에 허용된 RSS(소프트 제한) 아래로 내려가면 재시작이 중단됩니다. 기본값은 900초(15분)입니다. SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS (KB): 허용된 RSS에 대한 Sidekiq 프로세스 하드 제한을 정의합니다. Sidekiq 프로세스 RSS(킬로바이트로 표시)가 SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS 를 초과하면 Sidekiq의 즉각적인 정상 재시작이 트리거됩니다. 이 값이 설정되지 않았거나 0으로 설정된 경우 하드 제한이