일반 Geo 오류 문제 해결
Geo 문제를 진단하고 해결하는 방법으로, 상태 점검, 데이터베이스 복제 문제, 사이트 연결 및 오류 해결 절차를 다룹니다.
기본 문제 해결 # 더 고급 문제 해결을 시도하기 전에 다음을 확인합니다. Geo 사이트 상태 를 점검합니다. PostgreSQL 복제 작동 여부 를 확인합니다. Geo 사이트 간 요청 추적 # Geo 문제를 해결할 때는 보조 사이트에서 기본 사이트로, 또는 그 반대 방향으로 오가는 요청을 추적해야 할 수 있습니다. GitLab은 상관 관계 ID를 사용해 여러 서비스에 걸친 관련 로그 항목을 연결합니다. 기본적으로 각 사이트는 요청을 받을 때 자체 상관 관계 ID를 생성합니다. 두 사이트에 걸친 하나의 요청을 같은 상관 관계 ID로 추적하려면, 요청을 받는 각 사이트의 Workhorse가 다른 Geo 사이트에서 들어오는 상관 관계 ID를 수용하도록 구성해야 합니다. 모든 Geo 사이트에서 다음을 수행합니다. Linux package (Omnibus) Helm chart (Kubernetes) /etc/gitlab/gitlab.rb 를 편집합니다: gitlab_workhorse[ 'propagate_correlation_id' ] = true gitlab_workhorse[ 'trusted_cidrs_for_propagation' ] = %w(<secondary-site-ip>/32) 파일을 저장하고 GitLab을 재구성합니다: sudo gitlab-ctl reconfigure Helm 값을 갱신합니다: gitlab: webservice: workhorse: extraArgs: "-propagateCorrelationID" trustedCIDRsForPropagation: [ "<secondary-site-ip>/32" ] 변경 사항을 적용합니다. 이 설정을 활성화하면 보조 사이트에서 기본 사이트로 보낸 요청이 로그에서 같은 상관 관계 ID를 공유하므로, 두 사이트에 걸쳐 요청을 추적할 수 있습니다. Geo 사이트 상태 점검 # 기본 사이트에서 다음을 수행합니다. 오른쪽 상단에서 Admin 을 선택합니다. 왼쪽 사이드바에서 Geo > Sites 를 선택합니다. GitLab은 문제가 있는지 파악할 수 있도록 각 보조 사이트에 대해 다음 상태 점검을 수행합니다. 사이트 실행 여부 보조 사이트 데이터베이스의 스트리밍 복제 구성 여부 보조 사이트 추적 데이터베이스의 구성 여부 보조 사이트 추적 데이터베이스의 연결 여부 보조 사이트 추적 데이터베이스의 최신 상태 여부 보조 사이트 상태 정보가 1시간 이내인지 여부 사이트 상태 정보가 1시간보다 오래되면 사이트가 "Unhealthy"로 표시됩니다. 이 경우 해당 보조 사이트의 Rails 콘솔 에서 다음을 실행합니다: Geo::MetricsUpdateWorker .new.perform 오류가 발생하면 그 오류가 job 완료도 막고 있을 가능성이 큽니다. 실행에 1시간 이상 걸리면, 상태가 간간이 갱신되더라도 "Unhealthy"가 오락가락하거나 계속 유지될 수 있습니다. 사용량 증가, 시간 경과에 따른 데이터 증가, 또는 데이터베이스 인덱스 누락 같은 성능 버그가 원인일 수 있습니다.