풀 모범 사례
이 문서에서는 풀의 정의와 풀을 가장 잘 구성하는 방법을 설명합니다. 풀을 만드는 방법에 대한 자세한 내용은 풀 구성 참조자료를 참조하세요.
참고 항목
워크로드가 서버리스 컴퓨팅을 지원하는 경우 Databricks는 항상 확장 가능한 컴퓨팅을 활용하기 위해 풀 대신 서버리스 컴퓨팅을 사용하는 것이 좋습니다. 서버리스 컴퓨팅에 연결을 참조하세요.
풀 고려 사항
풀을 만들 때 다음 사항을 고려하세요:
- 대상 워크로드에 따라 인스턴스 유형 및 Azure Databricks Runtime을 사용하여 풀 만들기
- 가능한 경우 스폿 인스턴스로 풀을 채워 비용 줄이기 스폿 풀만 작업자 노드로 사용합니다. 드라이버 노드는 주문형 인스턴스를 사용해야 합니다.
- 짧은 실행 시간과 엄격한 실행 시간 요구 사항을 갖는 작업의 경우 주문형 인스턴스로 풀 채우기
- 풀 태그 및 클러스터 태그를 사용하여 청구 관리하기
- 클러스터에서 인스턴스가 필요할 때 즉시 사용할 수 있도록 풀을 미리 채우기
워크로드에 따라 풀 만들기
조직에서 일반적으로 사용하는 각 인스턴스 유형 및 Azure Databricks Runtime에 대해 풀을 만들면 인스턴스 획득 시간을 최소화할 수 있습니다. 예를 들어, 대부분의 데이터 엔지니어링 클러스터에서 인스턴스 형식 A를 사용하고, 데이터 과학 클러스터에서 인스턴스 형식 B를 사용하며, 분석 클러스터에서 인스턴스 형식 C를 사용하는 경우 각 인스턴스 유형으로 풀을 만듭니다.
스폿 인스턴스 풀 사용
드라이버 노드와 워커 노드의 요구 사항이 서로 다른 경우 각각 다른 풀을 사용하세요.
Azure Databricks는 드라이버 노드에 스폿 인스턴스를 사용하지 않는 것이 좋습니다. 작업자 노드에 스폿 풀을 사용하는 경우 주문형 풀을 드라이버 유형으로 선택합니다.
짧은 실행 시간과 엄격한 실행 시간 요구 사항을 갖는 작업의 경우 주문형 인스턴스를 사용하도록 풀을 구성합니다. 주문형 인스턴스를 사용하여, 획득된 인스턴스가 스폿 시장에서 더 높은 입찰자에게 가는 일을 방지합니다.
대화형 개발을 지원하는 클러스터 또는 안정성보다 비용 절감이 우선되는 작업의 경우 스폿 인스턴스를 사용하도록 풀을 구성합니다.
풀을 태그하여 비용 및 청구 관리하기
풀에 올바른 비용 센터 태그를 지정하면 비용 및 사용량 청구를 관리할 수 있습니다. 여러 개의 사용자 지정 태그를 사용하여 여러 비용 센터를 하나의 풀에 연결할 수 있습니다. 단, 풀에서 클러스터가 만들어질 때 태그가 어떤 식으로 전파되는지를 이해하는 것이 중요합니다. 풀의 태그는 기본 클라우드 공급자 인스턴스로 전파되지만 클러스터의 태그는 전파되지 않습니다. 클라우드 공급자 컴퓨팅 비용의 청구를 관리하는 데 필요한 모든 사용자 지정 태그를 풀에 적용합니다.
풀 태그와 클러스터 태그는 모두 Azure Databricks 청구로 전파됩니다. 클러스터 및 풀 태그의 조합을 사용하여 Azure Databricks 단위의 청구를 관리할 수 있습니다.
자세한 내용은 태그를 사용하여 사용량 모니터링을 참조하세요.
풀을 구성하여 비용 제어하기
..azure-aws:
You can use the following configuration options to help control the cost of pools:
- Set the [Min Idle](/compute/pools.md#minimum-idle-instances) instances to 0 to avoid paying for running instances that aren’t doing work. The tradeoff is a possible increase in time when a cluster needs to acquire a new instance.
- Set the [Max Capacity](/compute/pools.md#maximum-capacity) based on anticipated usage. This sets the ceiling for the maximum number of used and idle instances in the pool. If a job or cluster requests an instance from a pool at its maximum capacity, the request fails, and the cluster doesn't acquire more instances. Therefore, Databricks recommends that you set the maximum capacity only if there is a strict instance quota or budget constraint.
- Set the [Idle Instance Auto Termination](/compute/pools.md#idle-instance-auto-termination) time to provide a buffer between when the instance is released from the cluster and when it’s dropped from the pool. Set this to a period that allows you to minimize cost while ensuring the availability of instances for scheduled jobs. For example, job A is scheduled to run at 8:00 AM and takes 40 minutes to complete. Job B is scheduled to run at 9:00 AM and takes 30 minutes to complete. Set the Idle Instance Auto Termination value to 20 minutes to ensure that instances returned to the pool when job A completes are available when job B starts. Unless they are claimed by another cluster, those instances are terminated 20 minutes after job B ends.
풀 미리 채우기
풀을 완전히 활용하려면 새로 만든 풀을 미리 채우는 것이 좋습니다. 풀 구성에서 최소 유휴 인스턴스를 0보다 큰 값으로 설정합니다. 또는 이 값을 0으로 설정하라는 권장 사항을 따르는 경우에는 새로 만든 풀에 클러스터가 액세스할 수 있는 인스턴스가 있도록 시작 작업을 사용합니다.
시작 작업을 사용하면 유연한 실행 시간 요구 사항을 갖는 작업이 더 엄격한 성능 요구 사항을 갖는 작업 전에 또는 사용자가 대화형 클러스터의 사용을 시작하기 전에 실행되도록 예약할 수 있습니다. 작업이 완료되면 작업에 사용된 인스턴스가 풀로 다시 해제됩니다. 최소 유휴 인스턴스 설정을 0으로 설정하고, 유휴 인스턴스 자동 종료 시간을 유휴 인스턴스를 후속 작업에서 계속 사용할 수 있을 만큼 충분히 높게 설정하세요.
시작 작업을 사용하면 풀 인스턴스를 늘리고, 풀을 채우고, 다운스트림 작업 또는 대화형 클러스터에 계속 사용할 수 있는 상태로 유지할 수 있습니다.