Voor AWS-beheerders die SageMaker Training-capaciteit over teams of projecten willen verdelen, biedt AWS Batch quota shares binnen een geschikte Job Queue. Elke share is een virtuele wachtrij. De gekozen strategie bepaalt of ongebruikte capaciteit gereserveerd blijft, wordt uitgeleend of ook kan worden geleend. Het gaat om verdeling binnen een queue, niet om een verhoging van accountbrede AWS-servicequota. AWS Batch legt uit hoe quotabeheer werkt.

Kies hoe shares ongebruikte capaciteit behandelen

StrategieWat gebeurt er met ongebruikte capaciteit?Gevolg voor de shares
RESERVEDe capaciteit blijft gereserveerd voor jobs in de eigen share.Andere shares kunnen deze ongebruikte capaciteit niet gebruiken.
LENDDe capaciteit kan worden uitgeleend aan andere shares.Andere shares kunnen er gebruik van maken zolang die capaciteit ongebruikt is.
LEND_AND_BORROWDe capaciteit kan worden uitgeleend; jobs in de eigen share mogen ook ongebruikte capaciteit lenen, binnen een ingestelde leenlimiet.De share kan capaciteit uitlenen en lenen.

Een configuratievoorbeeld van AWS stelt drie projectshares elk in op max_capacity=1 voor ml.g5.xlarge en geeft de Service Environment een maximale capaciteit van 3 voor hetzelfde instancetype. De shares gebruiken achtereenvolgens LEND_AND_BORROW, LEND en RESERVE. Dit is een voorbeeldconfiguratie, geen garantie dat dezelfde verdeling bij elke workload past.

Houd rekening met de sharelimieten

Een Job Queue kan maximaal 20 quota shares bevatten. Per share zijn 1 tot 5 capaciteitslimieten mogelijk. AWS drukt die limieten uit in instancetypen die SageMaker Training ondersteunt. De AWS-documentatie over quota shares geeft deze grenzen en strategieën.

OnderdeelGrensBetekenis voor het ontwerp
Quota shares per Job QueueMaximaal 20Deel de teams of projecten in binnen dit maximum.
Capaciteitslimieten per shareMinimaal 1, maximaal 5Leg de capaciteit vast met ondersteunde instancetypen.

Richt de resources in

Je hebt IAM-rechten nodig om AWS Batch Job Queues, Scheduling Policies en Service Environments aan te maken en te beheren. De resources moeten compatibel zijn met quotabeheer. AWS beschrijft de vereiste instellingen en controles.

  1. Maak een quota-compatibele Scheduling Policy. De policy moet een quotaSharePolicy bevatten.
  2. Maak een Service Environment van het type SAGEMAKER_TRAINING. Gebruik capaciteitslimieten op basis van instancetypen die SageMaker Training accepteert. AWS Batch verwacht instancetypen, geen limiet met NUM_INSTANCES.
  3. Maak een passende Job Queue en koppel de policy en Service Environment. De queue moet het type SAGEMAKER_TRAINING hebben. Een quotabeheerde Service Environment kan aan één quotabeheerde Job Queue worden gekoppeld.
  4. Maak de quota shares binnen de queue aan. Wijs de geplande capaciteit toe en kies per share de passende strategie.
  5. Controleer de status van de Job Queue. AWS noemt ENABLED als vereiste status, met VALID en JobQueue Healthy als status en reden.

Wanneer kan AWS Batch capaciteit terughalen?

Als een share capaciteit heeft uitgeleend en die zelf nodig krijgt, kan AWS Batch geleende capaciteit terughalen door jobs in andere shares te preëmpten. Bij de keuze welke jobs worden onderbroken, weegt AWS Batch het aantal en type geleende instanties, de relatieve jobprioriteiten en de jobduur mee.

Binnen een share kan optionele preëmptie jobs met een lagere prioriteit verdringen. AWS beschrijft dit voor jobs met de status SCHEDULED, STARTING of RUNNING. De beheerder kan ook een capaciteitslimiet verlagen. Als een share daardoor meer capaciteit gebruikt dan de nieuwe limiet toestaat, kunnen jobs in die share voor preëmptie in aanmerking komen, zelfs bij LEND of RESERVE. Zet een limietverlaging dus niet gelijk aan een ingreep zonder gevolgen voor lopende jobs.