Skip to main content

클러스터 워크로드 리밸런싱

GitHub Enterprise Server 클러스터가 클러스터 노드의 워크로드에 대한 작업 할당을 균등하게 분산하도록 강제할 수 있습니다.

누가 이 기능을 사용할 수 있는 있나요?

People with administrative SSH access to a GitHub Enterprise Server instance can rebalance cluster workloads on the instance.

GitHub은(는) 클러스터링 자격을 결정하며 인스턴스의 라이선스 구성을 사용하도록 설정해야 합니다. 클러스터링은 신중하게 계획해야 하며 관리 오버헤드가 추가로 필요합니다. 자세한 내용은 "클러스터링 정보"을 참조하세요.

GitHub Enterprise Server 클러스터의 워크로드 밸런스 정보

클러스터 구성의 GitHub Enterprise Server 인스턴스는 노드의 역할에 따라 각 작업을 노드에 할당합니다. 이 할당을 할당(allocation)이라고 합니다.

하드웨어 또는 소프트웨어 오류로 인해 다른 노드에서 클러스터 노드에 연결할 수 없는 경우 인스턴스는 비정상 노드로부터, 워크로드를 처리할 수 있는 다른 노드로 작업을 분산하는 새 할당을 만듭니다. 경우에 따라 이 분산이 자동으로 발생하지 않고 단일 노드가 예상보다 많은 작업을 실행할 수 있습니다.

ghe-cluster-balance 유틸리티를 사용하여 할당을 관리할 수 있습니다. 이 유틸리티는 기존 할당의 상태를 표시하거나 인스턴스가 할당을 밸런싱하도록 강제할 수 있습니다. 예를 들어 클러스터에 새 노드를 추가한 후에는 할당을 밸런싱해야 합니다. 필요에 따라 정기적인 밸런싱을 예약할 수 있습니다.

관리 셸을 사용하여 클러스터의 모든 노드에서 다음 명령을 실행할 수 있습니다. 자세한 내용은 “관리 셸(SSH) 액세스”를 참조하세요.

클러스터 작업 배포 확인

하드웨어 오류가 발생한 등의 경우에 할당을 관리하는 기본 소프트웨어는 비정상 노드에서 정상 노드로 작업을 마이그레이션합니다. 비정상 노드가 복구되면 작업이 복구된 노드에 할당된 상태로 남게 되어 부하가 분산되지 않을 수 있습니다. 할당이 불균형하고 추가 노드가 실패하면 작업 실패 위험이 높아질 수 있습니다. ghe-cluster-balance status 유틸리티를 사용하여 할당 분산 상태를 확인할 수 있습니다.

  1. 모든 할당의 목록을 보려면 다음 명령을 실행합니다. 이 유틸리티는 정상 할당을 녹색으로 표시합니다. 작업이 제대로 분산되지 않은 경우 이 유틸리티는 할당 수를 빨간색으로 표시합니다.

    Shell
    ghe-cluster-balance status
    
  2. 작업이 제대로 분산되지 않은 경우 다음 명령을 실행하여 할당을 검사합니다. JOB을 단일 작업 또는 쉼표로 구분된 작업 목록으로 바꿉니다.

    Shell
     ghe-cluster-balance status -j JOB
    

    예를 들어 인스턴스의 HTTP 서버 및 권한 부여 서비스에 대한 할당 상태 보려면 ghe-cluster-balance status -j github-unicorn,authzd를 실행하면 됩니다.

할당 리밸런싱

클러스터 노드 전반에 걸쳐 불균형한 작업을 확인한 후에는 ghe-cluster-balance rebalance 유틸리티를 사용하여 할당을 리밸런싱할 수 있습니다. 이 유틸리티는 기존 작업의 분산 상태를 검사합니다. 작업이 불균형하게 분산된 경우 이 유틸리티는 해당 작업을 표시하고 계속할지 여부를 묻습니다. 계속하면 유틸리티가 새 할당을 만들어 작업을 다시 분산합니다.

  1. 시험 실행을 수행하고 변경 없이 리밸런싱 결과를 보려면 다음 명령을 실행합니다. JOB을 단일 작업 또는 쉼표로 구분된 작업 목록으로 바꿉니다.

    Shell
    ghe-cluster-balance rebalance --dry-run -j JOB
    

    예를 들어 인스턴스의 HTTP 서버 및 권한 부여 서비스에 대해 리밸런싱 작업의 시험 실행을 수행하려면 ghe-cluster-balance rebalance --dry-run -j github-unicorn,authzd를 실행하면 됩니다.

  2. 리밸런싱하려면 다음 명령을 실행합니다. JOB을 단일 작업 또는 쉼표로 구분된 작업 목록으로 바꿉니다.

    Shell
    ghe-cluster-balance rebalance -j JOB
    

할당 리밸런싱 예약

GitHub Enterprise Server 인스턴스에 대한 구성 값을 설정하고 적용하여 클러스터에서 작업의 리밸런싱을 예약할 수 있습니다.

참고: 현재는 HTTP 서버 github-unicorn에 대한 작업 재할당만 예약할 수 있습니다.

  1. 작업의 자동 시간별 밸런싱을 구성하려면 다음 명령을 실행합니다.

    Shell
    ghe-config app.cluster-rebalance.enabled true
    
  2. 필요에 따라 cron 식을 정의하여 기본 일정을 재정의할 수 있습니다. 예를 들어 3시간마다 작업을 밸런싱하려면 다음 명령을 실행합니다.

    Shell
    ghe-config app.cluster-rebalance.schedule '0 */3 * * *'
    
  3. 구성을 적용하려면 다음 명령을 실행합니다.

    참고: 구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  4. 구성 실행이 완료될 때까지 기다립니다.

추가 참고 자료