InfoGrab DocsInfoGrab Docs

가져오기를 위한 Sidekiq 구성

GitLab 가져오기 또는 마이그레이션을 위한 Sidekiq 구성 최적화.

가져오기 도구는 그룹과 프로젝트의 가져오기·내보내기를 처리하기 위해 Sidekiq job에 크게 의존합니다. 이 가운데 일부 job은 CPU와 메모리를 많이 소모하고 완료까지 오래 걸리기 때문에 다른 job의 실행에 영향을 줄 수 있습니다. 이 문제를 해결하려면 가져오기 도구 job을 전용 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 큐를 통해 가져오기·내보내기 job을 처리합니다. 다른 Sidekiq 프로세스가 나머지 job 전부(default 및 mailer 큐)를 처리합니다. 두 Sidekiq 프로세스 모두 기본적으로 20개의 동시 스레드로 실행되도록 구성됩니다. 메모리가 넉넉하지 않은 환경에서는 이 값을 줄이는 방안을 검토합니다. 추가 프로세스 구성 # 인스턴스 리소스가 더 많은 동시 job을 감당할 수 있다면, 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 프로세스가 가져오기·내보내기 job을 동시에 처리하므로, 인스턴스 리소스가 충분한 한 마이그레이션 속도가 빨라집니다. 관련 주제 # GitLab으로 가져오기 및 마이그레이션 . 가져오기 및 내보