가져오기를 위한 Sidekiq 구성
Offering: GitLab Self-Managed
가져오기 도구는 그룹 및 프로젝트의 가져오기와 내보내기를 처리하기 위해 Sidekiq 작업에 크게 의존합니다. 이 문제를 해결하려면 가져오기 도구 작업을 전용 Sidekiq 큐로 라우팅하고 해당 큐를 처리하기 위해 전용 Sidekiq 프로세스를 할당해야 합니다.
가져오기 도구는 그룹 및 프로젝트의 가져오기와 내보내기를 처리하기 위해 Sidekiq 작업에 크게 의존합니다. 이러한 작업 중 일부는 상당한 리소스(CPU 및 메모리)를 소비하고 완료하는 데 시간이 오래 걸릴 수 있어 다른 작업의 실행에 영향을 줄 수 있습니다.
이 문제를 해결하려면 가져오기 도구 작업을 전용 Sidekiq 큐로 라우팅하고 해당 큐를 처리하기 위해 전용 Sidekiq 프로세스를 할당해야 합니다.
예를 들어, 다음 구성을 사용할 수 있습니다:
sidekiq['concurrency'] = 20
sidekiq['routing_rules'] = [
# Route import and export jobs to the importer queue
['feature_category=importers', 'importers'],
# Route all other jobs to the default queue by using wildcard matching
['*', 'default']
]
sidekiq['queue_groups'] = [
# Run a dedicated process for the importer queue
'importers',
# Run a separate process for the default and mailer queues
'default,mailers'
]
이 설정에서:
- 전용 Sidekiq 프로세스가 importer 큐를 통해 가져오기 및 내보내기 작업을 처리합니다.
- 다른 Sidekiq 프로세스가 다른 모든 작업(기본 및 메일러 큐)을 처리합니다.
- 두 Sidekiq 프로세스 모두 기본적으로 20개의 동시 스레드로 실행되도록 구성됩니다. 메모리가 제한된 환경에서는 이 수를 줄일 수 있습니다.
추가 프로세스 구성#
인스턴스에 더 많은 동시 작업을 지원하기에 충분한 리소스가 있는 경우, 마이그레이션을 가속화하기 위해 추가 Sidekiq 프로세스를 구성할 수 있습니다.
최대 Sidekiq 프로세스 수를 위해 다음을 고려합니다:
- 프로세스 수가 사용 가능한 CPU 코어 수를 초과해서는 안 됩니다.
- 각 프로세스는 최대 2 GB의 메모리를 사용할 수 있으므로 인스턴스에 추가 프로세스를 위한 충분한 메모리가 있는지 확인합니다.
- 각 프로세스는
sidekiq['concurrency']에 정의된 스레드당 하나의 데이터베이스 연결을 추가합니다.
예를 들어:
sidekiq['queue_groups'] = [
# Run three processes for importer jobs
'importers',
'importers',
'importers',
# Run a separate process for the default and mailer queues
'default,mailers'
]
이 설정으로 여러 Sidekiq 프로세스가 가져오기 및 내보내기 작업을 동시에 처리하여 인스턴스에 충분한 리소스가 있는 한 마이그레이션 속도를 높입니다.
