14.5. 최적화 목표 개요


최적화 목표는 Kafka 클러스터의 워크로드 재배포 및 리소스 사용률에 대한 제약입니다. Kafka 클러스터를 재조정하기 위해 Cruise Control은 최적화 목표를 사용하여 최적화 제안을 생성합니다.

14.5.1. 우선 순위의 목표 순서

Red Hat Enterprise Linux의 AMQ Streams는 Cruise Control 프로젝트에서 개발한 모든 최적화 목표를 지원합니다. 지원되는 목표는 기본 우선순위 내림차순으로 다음과 같습니다.

  1. Rack-awareness
  2. 주제 집합의 브로커당 최소 리더 복제본 수
  3. 복제본 용량
  4. 용량: 디스크 용량, 네트워크 인바운드 용량, 네트워크 아웃 바운드 용량
  5. CPU 용량
  6. 복제본 배포
  7. 잠재적인 네트워크 출력
  8. 리소스 배포: 디스크 사용률 배포, 네트워크 인바운드 사용률 배포, 네트워크 아웃 바운드 사용 배포
  9. Leader bytes-in rate distribution
  10. 주제 복제본 배포
  11. CPU 사용량 배포
  12. 리더 복제본 배포
  13. 선호하는 리더 선택
  14. Kafka Assigner 디스크 사용량 배포
  15. Intra-broker 디스크 용량
  16. Intra-broker 디스크 사용량

각 최적화 목표에 대한 자세한 내용은 Cruise Control Wiki목표를 참조하십시오.

14.5.2. Cruise Control 속성 파일의 설정 목표

cruisecontrol.properties 파일에서 cruise-control/config/ 디렉터리에 최적화 목표를 구성합니다. 크루즈 컨트롤에는 주요, 기본값 및 사용자 제공 최적화 목표를 충족해야 하는 하드 최적화 목표에 대한 구성이 있습니다.

다음 구성에서 다음 최적화 목표를 지정할 수 있습니다.

  • 주요 목적 Cryostat- cruisecontrol.properties 파일
  • 하드 목적 Cryostat- cruisecontrol.properties 파일
  • 기본 목적 Cryostat- cruisecontrol.properties 파일
  • 사용자 제공 목표 Cryostat - Cryostatruntime 매개변수

선택적으로 사용자 제공 최적화 목표는 런타임 시 /rebalance 엔드포인트에 대한 요청의 매개변수로 설정됩니다.

최적화 목표는 브로커 리소스에 대한 모든 용량 제한 의 적용을 받습니다.

14.5.3. 하드 및 소프트 최적화 목표

하드 목표는 최적화 제안에 충족해야 하는 목표입니다. 하드 목표로 구성되지 않은 목표는 소프트 목표 라고 합니다. 소프트 목표는 최선의 노력 목표로 생각할 수 있습니다: 최적화 제안에 만족 할 필요는 없지만 최적화 계산에 포함됩니다.

크루즈 컨트롤은 가능한 한 많은 하드 목표와 가능한 많은 소프트 목표를 충족하는 최적화 제안을 계산합니다. 모든 하드 목표를 충족하지 않는 최적화 제안은 Analyzer에 의해 거부되며 사용자에게 전송되지 않습니다.

참고

예를 들어 클러스터에 주제의 복제본을 균등하게 분배하는 소프트 목표를 가질 수 있습니다(복제 복제본 배포 목표 참조). 크루즈 컨트롤은 구성된 모든 하드 목표를 달성할 수 있도록 하는 경우 이 목표를 무시합니다.

Cruise Control에서 다음과 같은 주요 최적화 목표는 하드 목표로 사전 설정됩니다.

RackAwareGoal; MinTopicLeadersPerBrokerGoal; ReplicaCapacityGoal; DiskCapacityGoal; NetworkInboundCapacityGoal; NetworkOutboundCapacityGoal; CpuCapacityGoal

하드 목표를 변경하려면 cruisecontrol.properties 파일의 hard.goals 속성을 편집하고 정규화된 도메인 이름을 사용하여 목표를 지정합니다.

하드 목표의 수를 늘리면 Cruise Control이 계산되고 유효한 최적화 제안을 생성할 가능성이 줄어듭니다.

14.5.4. 주요 최적화 목표

주요 최적화 목표는 모든 사용자가 사용할 수 있습니다. 주요 최적화 목표에 나열되지 않은 목표는 Cruise Control 작업에서 사용할 수 없습니다.

다음의 주요 최적화 목표는 cruisecontrol.properties 파일의 목적 속성에 내림차순으로 사전 설정됩니다.

RackAwareGoal; MinTopicLeadersPerBrokerGoal; ReplicaCapacityGoal; DiskCapacityGoal; NetworkInboundCapacityGoal; NetworkOutboundCapacityGoal; ReplicaDistributionGoal; PotentialNwOutGoal; DiskUsageDistributionGoal; NetworkInboundUsageDistributionGoal; NetworkOutboundUsageDistributionGoal; CpuUsageDistributionGoal; TopicReplicaDistributionGoal; LeaderReplicaDistributionGoal; LeaderBytesInDistributionGoal; PreferredLeaderElectionGoal

복잡성을 줄이기 위해 최적화 제안을 생성하기 위해 하나 이상의 목표를 완전히 제외할 필요가 없는 경우 사전 설정된 기본 최적화 목표를 변경하지 않는 것이 좋습니다. 기본 최적화 목표의 우선 순위 순서는 기본 최적화 목표를 위해 구성에서 수정할 수 있습니다.

사전 설정된 기본 최적화 목표를 수정하려면 목표 속성의 목표 목록을 내림차순으로 지정합니다. cruisecontrol.properties 파일에 표시된 대로 정규화된 도메인 이름을 사용합니다.

하나 이상의 주요 목표를 지정하거나 Cruise Control이 충돌합니다.

참고

사전 설정된 기본 최적화 목표를 변경하는 경우 구성된 hard.goals 가 구성한 기본 최적화 목표의 하위 집합인지 확인해야 합니다. 그렇지 않으면 최적화 제안을 생성할 때 오류가 발생합니다.

14.5.5. 기본 최적화 목표

cruise Control은 기본 최적화 목표 목록을 사용하여 캐시된 최적화 제안을 생성합니다. 자세한 내용은 14.6절. “최적화 제안 개요”의 내용을 참조하십시오.

사용자 제공 최적화 목표를 설정하여 런타임 시 기본 최적화 목표를 재정의할 수 있습니다.

다음 기본 최적화 목표는 cruisecontrol.properties 파일의 default.goals 속성에 내림차순으로 사전 설정됩니다.

RackAwareGoal; MinTopicLeadersPerBrokerGoal; ReplicaCapacityGoal; DiskCapacityGoal; NetworkInboundCapacityGoal; NetworkOutboundCapacityGoal; CpuCapacityGoal; ReplicaDistributionGoal; PotentialNwOutGoal; DiskUsageDistributionGoal; NetworkInboundUsageDistributionGoal; NetworkOutboundUsageDistributionGoal; CpuUsageDistributionGoal; TopicReplicaDistributionGoal; LeaderReplicaDistributionGoal; LeaderBytesInDistributionGoal

하나 이상의 기본 목표를 지정해야 합니다. 그렇지 않으면 Cruise Control이 충돌합니다.

기본 최적화 목표를 수정하려면 default.goals 속성의 목표 목록을 내림차순으로 지정합니다. 기본 목표는 기본 최적화 목표의 하위 집합이어야 합니다. 정규화된 도메인 이름을 사용합니다.

14.5.6. 사용자 제공 최적화 목표

사용자 제공 최적화 목표는 특정 최적화 제안에 대해 구성된 기본 목표를 좁힙니다. 필요에 따라 /rebalance 엔드포인트에 대한 HTTP 요청의 매개변수로 설정할 수 있습니다. 자세한 내용은 14.9절. “최적화 제안 생성”의 내용을 참조하십시오.

사용자 제공 최적화 목표는 다양한 시나리오에 대한 최적화 제안을 생성할 수 있습니다. 예를 들어 디스크 용량 또는 디스크 사용률을 고려하지 않고 Kafka 클러스터에서 리더 복제본 배포를 최적화할 수 있습니다. 따라서 리더 복제본 배포를 위한 단일 목표를 포함하는 /rebalance 엔드포인트에 요청을 보냅니다.

사용자 제공 최적화 목표는 다음과 같아야 합니다.

최적화 제안에서 구성된 하드 목표를 무시하려면 skip_hard_goals_check=true 매개변수를 요청에 추가합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.