AWS Batch dzieli pojemność obliczeniową SageMaker Training na udziały przypisane do kolejki SAGEMAKER_TRAINING. W każdym udziale możesz zatrzymać niewykorzystane zasoby dla własnych zadań, udostępniać je innym udziałom albo połączyć udostępnianie z pożyczaniem. Zanim wybierzesz strategię, przygotuj zgodną politykę planowania, środowisko usług i kolejkę. AWS opisuje zasady zarządzania limitami.
Wybierz sposób wykorzystania bezczynnej pojemności
Strategia określa, co AWS Batch robi z zasobami, których dany udział chwilowo nie używa. Dokumentacja AWS Batch opisuje trzy tryby:
| Strategia | Co dzieje się z bezczynną pojemnością | Czy inne udziały mogą ją pożyczyć? | Skutek dla zespołu |
RESERVE | Pozostaje zarezerwowana dla zadań tego udziału. | Nie. | Zasoby czekają na własne zadania zamiast trafiać do innych udziałów. |
LEND | Może zostać udostępniona innym udziałom. | Tak. | Gdy udział ponownie potrzebuje zasobów, AWS Batch może odzyskać pożyczoną pojemność przez wywłaszczenie zadań. |
LEND_AND_BORROW | Może zostać udostępniona innym udziałom. | Tak; zadania tego udziału również mogą pożyczać zasoby w granicach skonfigurowanego limitu. | Udział może korzystać z bezczynnych zasobów innych, ale pożyczona pojemność może zostać odzyskana. |
Sprawdź limity i powiązania zasobów
Zarządzanie limitami działa tylko w kolejkach połączonych ze środowiskiem usług SAGEMAKER_TRAINING. Udziały są wirtualnymi kolejkami zagnieżdżonymi w jednej Job Queue. AWS podaje następujące ograniczenia:
| Element | Udokumentowany limit lub wymóg | Znaczenie przy projektowaniu |
| Udziały w jednej Job Queue | Maksymalnie 20 | Zaplanuj podział zespołów i projektów w ramach tego limitu. |
| Limity pojemności jednego udziału | Od 1 do 5, według typów instancji obsługiwanych przez SageMaker Training | Ustal, jakie typy instancji i limity będą potrzebne danemu udziałowi. |
| Środowisko usług z zarządzaniem limitami | Może być połączone z jedną Job Queue z zarządzaniem limitami | Nie przypisuj tego samego środowiska do kolejnej takiej kolejki. |
Przygotuj politykę, środowisko i kolejkę
Konfiguracja wymaga uprawnień IAM do tworzenia i zarządzania kolejkami AWS Batch, politykami planowania oraz środowiskami usług. Przewodnik AWS dotyczący tworzenia zasobów opisuje następującą kolejność:
- Utwórz zgodną Scheduling Policy. Polityka musi zawierać
quotaSharePolicy, aby kolejka mogła korzystać z zarządzania limitami. - Utwórz Service Environment typu
SAGEMAKER_TRAINING. Określ co najmniej jeden limit pojemności, używając typu instancji akceptowanego przez SageMaker Training. AWS Batch wymaga limitów wyrażonych typami instancji, a nieNUM_INSTANCES. - Utwórz Job Queue typu
SAGEMAKER_TRAINING. Połącz ją z przygotowaną polityką i środowiskiem usług. Środowisko nie może być już przypisane do innej kolejki z zarządzaniem limitami. - Utwórz udziały i przypisz im limity. Dla każdego udziału określ co najmniej jeden limit pojemności, a następnie wybierz
RESERVE,LENDalboLEND_AND_BORROW.
AWS przedstawia przykładową konfigurację z trzema udziałami, z których każdy ma limit jednej instancji ml.g5.xlarge; maksymalna pojemność środowiska usług wynosi w niej 3 dla tego typu. Pierwszy udział korzysta z LEND_AND_BORROW, drugi z LEND, a trzeci z RESERVE. To przykład podziału zasobów między projekty, nie uniwersalna wartość dla każdej kolejki.
Uwzględnij wywłaszczanie przy zmianie limitów
Gdy udział pożycza zasoby innym, AWS Batch może odzyskać je, kiedy pojawią się zadania potrzebujące tej pojemności. Przy wyborze zadań do wywłaszczenia system bierze pod uwagę liczbę i typ pożyczonych instancji, priorytety zadań oraz ich czas trwania, stosując własną heurystykę.
Obniżenie limitu pojemności może sprawić, że zadania w stanach SCHEDULED, STARTING lub RUNNING staną się kwalifikowane do wywłaszczenia, jeśli udział zużywa więcej zasobów, niż dopuszcza nowy limit. Może to dotyczyć również strategii LEND i RESERVE. W obrębie udziału można też skonfigurować wywłaszczanie zadań o niższym priorytecie na rzecz zadań o wyższym priorytecie.
Sprawdź stan utworzonej kolejki
Po utworzeniu kolejki sprawdź jej stan i status. AWS wskazuje ENABLED jako wymagany stan oraz VALID i JobQueue Healthy jako status i jego przyczynę. Dzięki temu weryfikujesz, czy kolejka osiągnęła wymagany stan przed skierowaniem do niej zadań.