

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configure os limites de solicitação para a implantação do seu modelo de HyperPod inferência
<a name="sagemaker-hyperpod-model-deployment-request-limits"></a>

Você pode configurar a limitação de solicitações nas implantações do modelo de SageMaker HyperPod inferência da Amazon para controlar o número de solicitações simultâneas que cada pod aceita. Quando o limite é atingido, as solicitações em excesso recebem uma resposta de erro HTTP configurável, permitindo um comportamento rápido e permitindo que o balanceador de carga redirecione o tráfego para outros pods.

A limitação de solicitações é imposta pelo proxy auxiliar nginx que é executado junto com o contêiner do modelo. Isso exige que as métricas sejam habilitadas em sua implantação.

## Pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-request-limits-prereqs"></a>

Antes de configurar os limites da solicitação, verifique se:
+ As métricas estão habilitadas em sua implantação (`metrics.enabled: true`). O proxy nginx sidecar que impõe limites de solicitação só é criado quando as métricas estão habilitadas.

## Configure os limites de solicitação em seu YAML de implantação
<a name="sagemaker-hyperpod-model-deployment-request-limits-configure"></a>

Adicione a `requestLimits` seção abaixo `worker` em seu `InferenceEndpointConfig` YAML. O exemplo a seguir limita cada pod a 10 solicitações simultâneas com uma fila de 5, retornando HTTP 503 quando os limites são excedidos.

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: my-model
  namespace: ns-team-a
spec:
  modelName: my-model-name
  instanceType: ml.g5.8xlarge
  invocationEndpoint: invocations
  modelSourceConfig:
    modelSourceType: s3
    s3Storage:
      bucketName: my-model-bucket
      region: us-east-2
      modelLocation: models/my-model
  worker:
    image: my-model-image:latest
    modelInvocationPort:
      containerPort: 8080
      name: http
    modelVolumeMount:
      mountPath: /opt/ml/model
      name: model-weights
    resources:
      limits:
        nvidia.com/gpu: "1"
      requests:
        cpu: "4"
        memory: "32Gi"
        nvidia.com/gpu: "1"
    requestLimits:
      maxConcurrentRequests: 10
      maxQueueSize: 5
      overflowStatusCode: 503
  metrics:
    enabled: true
  tlsConfig:
    tlsCertificateOutputS3Uri: "s3://my-tls-bucket/certs"
```

## Explicação dos campos
<a name="sagemaker-hyperpod-model-deployment-request-limits-fields"></a>

`maxConcurrentRequests` (opcional, inteiro)  
Número máximo de solicitações simultâneas que o proxy nginx sidecar aceita por pod. Quando o limite é atingido, as novas solicitações são enfileiradas (se estiverem `maxQueueSize` configuradas) ou imediatamente rejeitadas com o código de status de estouro. Mínimo: 1. Se não for definido ou definido como 0, nenhum limite de simultaneidade será imposto.

`maxQueueSize` (opcional, inteiro)  
Número máximo de solicitações na fila quando o limite de solicitações simultâneas é atingido. Solicitações em fila aguardam até que uma solicitação em voo seja concluída. Quando a fila está cheia, as novas solicitações recebem a resposta do código de status de estouro. Mínimo: 0. Se não for definido ou definido como 0, nenhum enfileiramento será aplicado — as solicitações serão rejeitadas imediatamente quando o limite de solicitações simultâneas for atingido.

`overflowStatusCode` (opcional, inteiro)  
Código de status HTTP retornado quando os limites da solicitação são excedidos. Deve estar entre 400 e 599. Padrão: 429 (muitas solicitações). Valores comuns:  
+ `429`— Muitas solicitações (padrão). Status HTTP padrão para limitação de taxa.
+ `503`— Serviço indisponível. Útil quando você quer que o balanceador de carga tente novamente em um pod diferente.

## Como funciona a limitação de solicitações
<a name="sagemaker-hyperpod-model-deployment-request-limits-how-it-works"></a>

Quando uma solicitação de inferência chega ao proxy secundário nginx:

1. Se o número de solicitações ativas estiver abaixo`maxConcurrentRequests`, a solicitação será encaminhada para o contêiner modelo.

1. Se o limite for atingido e `maxQueueSize` for maior que 0, a solicitação será enfileirada e aguardará (até 60 segundos) até que um slot ativo fique disponível.

1. Se a fila estiver cheia (ou nenhuma fila estiver configurada), a solicitação será imediatamente rejeitada com a resposta de erro configurada `overflowStatusCode` e JSON:

   ```
   {
     "error": "Too many concurrent requests",
     "max_concurrent": 10,
     "max_queue_size": 5,
     "current": 10
   }
   ```

## Exemplos
<a name="sagemaker-hyperpod-model-deployment-request-limits-examples"></a>

**Limite estrito de simultaneidade sem filas**

Para rejeitar solicitações em excesso imediatamente sem enfileirar:

```
requestLimits:
  maxConcurrentRequests: 5
  overflowStatusCode: 429
```

**Limite de simultaneidade com filas**

Para permitir uma fila pequena antes de rejeitar:

```
requestLimits:
  maxConcurrentRequests: 10
  maxQueueSize: 5
  overflowStatusCode: 503
```

Nessa configuração, até 10 solicitações são processadas simultaneamente. Quando as solicitações da 11ª à 15ª chegam, elas são colocadas na fila e aguardam por um slot ativo. A 16ª solicitação e versões posteriores recebem HTTP 503.