

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configure los límites de solicitud para la implementación de su modelo de HyperPod inferencia
<a name="sagemaker-hyperpod-model-deployment-request-limits"></a>

Puede configurar la limitación de solicitudes en las implementaciones del modelo de SageMaker HyperPod inferencia de Amazon para controlar la cantidad de solicitudes simultáneas que acepta cada pod. Cuando se alcanza el límite, el exceso de solicitudes recibe una respuesta de error HTTP configurable, lo que permite un comportamiento a prueba de errores y permite que el balanceador de cargas redirija el tráfico a otros pods.

El proxy sidecar nginx que se ejecuta junto con el contenedor de modelos impone la limitación de solicitudes. Esto requiere que las métricas estén habilitadas en tu implementación.

## Requisitos previos
<a name="sagemaker-hyperpod-model-deployment-request-limits-prereqs"></a>

Antes de configurar los límites de solicitudes, compruebe que:
+ Las métricas están habilitadas en su implementación (`metrics.enabled: true`). El proxy sidecar nginx que impone los límites de solicitud solo se crea cuando las métricas están habilitadas.

## Configura los límites de solicitudes en tu implementación (YAML).
<a name="sagemaker-hyperpod-model-deployment-request-limits-configure"></a>

Agrega la siguiente `requestLimits` sección `worker` en tu `InferenceEndpointConfig` YAML. El siguiente ejemplo limita cada pod a 10 solicitudes simultáneas con una cola de 5, y devuelve HTTP 503 cuando se superan los límites.

```
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"
```

## Explicación de los campos
<a name="sagemaker-hyperpod-model-deployment-request-limits-fields"></a>

`maxConcurrentRequests` (opcional, entero)  
Número máximo de solicitudes simultáneas que el proxy sidecar nginx acepta por pod. Cuando se alcanza el límite, las nuevas solicitudes se ponen en cola (si están configuradas) o `maxQueueSize` se rechazan inmediatamente con el código de estado de desbordamiento. Mínimo: 1. Si no se establece o se establece en 0, no se aplica ningún límite de simultaneidad.

`maxQueueSize` (opcional, entero)  
Número máximo de solicitudes que se pondrán en cola cuando se alcance el límite de solicitudes simultáneas. Las solicitudes en cola esperan hasta que se complete una solicitud en curso. Cuando la cola está llena, las nuevas solicitudes reciben la respuesta del código de estado desbordante. Mínimo: 0. Si no se establece o se establece en 0, no se aplica ninguna cola: las solicitudes se rechazan inmediatamente cuando se alcanza el límite de solicitudes simultáneas.

`overflowStatusCode` (opcional, entero)  
Se devuelve el código de estado HTTP cuando se superan los límites de solicitudes. Debe estar entre 400 y 599. Predeterminado: 429 (demasiadas solicitudes). Valores comunes:  
+ `429`— Demasiadas solicitudes (predeterminado). Estado HTTP estándar para limitar la velocidad.
+ `503`— Servicio no disponible. Útil cuando quieres que el balanceador de carga se vuelva a intentar en un pod diferente.

## Cómo funciona la limitación de solicitudes
<a name="sagemaker-hyperpod-model-deployment-request-limits-how-it-works"></a>

Cuando llega una solicitud de inferencia al proxy de sidecar de nginx:

1. Si el número de solicitudes activas es inferior`maxConcurrentRequests`, la solicitud se reenvía al contenedor modelo.

1. Si se alcanza el límite y `maxQueueSize` es superior a 0, la solicitud se pone en cola y espera (hasta 60 segundos) a que quede disponible un espacio activo.

1. Si la cola está llena (o no hay ninguna cola configurada), la solicitud se rechaza inmediatamente con la configuración `overflowStatusCode` y una respuesta de error de JSON:

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

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

**Límite estricto de simultaneidad sin hacer cola**

Para rechazar inmediatamente el exceso de solicitudes sin hacer cola:

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

**Límite de simultaneidad con las colas**

Para permitir una cola pequeña antes de rechazar:

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

En esta configuración, se procesan hasta 10 solicitudes de forma simultánea. Cuando llegan las solicitudes undécima a decimoquinta, se ponen en cola y esperan a que se active un espacio. La decimosexta solicitud y las posteriores reciben HTTP 503.