View a markdown version of this page

Konfigurasikan batas permintaan untuk penerapan model HyperPod inferensi Anda - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan batas permintaan untuk penerapan model HyperPod inferensi Anda

Anda dapat mengonfigurasi pembatasan permintaan pada penerapan model SageMaker HyperPod inferensi Amazon untuk mengontrol jumlah permintaan bersamaan yang diterima setiap pod. Ketika batas tercapai, permintaan berlebih menerima respons kesalahan HTTP yang dapat dikonfigurasi, memungkinkan perilaku cepat gagal dan memungkinkan penyeimbang beban untuk mengarahkan lalu lintas ke pod lain.

Pembatasan permintaan diberlakukan oleh proxy sidecar nginx yang berjalan di samping wadah model Anda. Ini membutuhkan metrik untuk diaktifkan pada penerapan Anda.

Prasyarat

Sebelum mengonfigurasi batas permintaan, verifikasi bahwa:

  • Metrik diaktifkan pada deployment () metrics.enabled: true Anda. Proxy sidecar nginx yang memberlakukan batas permintaan hanya dibuat saat metrik diaktifkan.

Konfigurasikan batas permintaan di YAMM penerapan Anda

Tambahkan requestLimits bagian worker di bawah InferenceEndpointConfig YAMAL Anda. Contoh berikut membatasi setiap pod untuk 10 permintaan bersamaan dengan antrian 5, mengembalikan HTTP 503 ketika batas terlampaui.

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"

Penjelasan bidang

maxConcurrentRequests(Opsional, Integer)

Jumlah maksimum permintaan bersamaan yang diterima proxy sidecar nginx per pod. Ketika batas tercapai, permintaan baru akan antri (jika maxQueueSize dikonfigurasi) atau segera ditolak dengan kode status overflow. Minimal: 1. Jika tidak disetel atau disetel ke 0, tidak ada batasan konkurensi yang diberlakukan.

maxQueueSize(Opsional, Integer)

Jumlah maksimum permintaan untuk mengantri ketika batas permintaan bersamaan tercapai. Permintaan antrian menunggu hingga permintaan dalam penerbangan selesai. Saat antrian penuh, permintaan baru menerima respons kode status overflow. Minimal: 0. Jika tidak disetel atau disetel ke 0, tidak ada antrian yang diterapkan — permintaan segera ditolak saat batas permintaan bersamaan tercapai.

overflowStatusCode(Opsional, Integer)

Kode status HTTP dikembalikan ketika batas permintaan terlampaui. Harus antara 400 dan 599. Default: 429 (Terlalu Banyak Permintaan). Nilai umum:

  • 429— Terlalu Banyak Permintaan (default). Status HTTP standar untuk pembatasan tarif.

  • 503— Layanan Tidak Tersedia. Berguna saat Anda ingin penyeimbang beban mencoba lagi pada pod yang berbeda.

Cara kerja pembatasan permintaan

Saat permintaan inferensi tiba di proxy sespan nginx:

  1. Jika jumlah permintaan aktif di bawahmaxConcurrentRequests, permintaan diteruskan ke wadah model.

  2. Jika batas tercapai dan maxQueueSize lebih besar dari 0, permintaan akan diantrian dan menunggu (hingga 60 detik) agar slot aktif tersedia.

  3. Jika antrian penuh (atau tidak ada antrian yang dikonfigurasi), permintaan segera ditolak dengan dikonfigurasi overflowStatusCode dan respons kesalahan JSON:

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

Contoh

Batas konkurensi yang ketat tanpa antrian

Untuk segera menolak permintaan berlebih tanpa mengantri:

requestLimits: maxConcurrentRequests: 5 overflowStatusCode: 429

Batas konkurensi dengan antrian

Untuk mengizinkan antrian kecil sebelum menolak:

requestLimits: maxConcurrentRequests: 10 maxQueueSize: 5 overflowStatusCode: 503

Dalam konfigurasi ini, hingga 10 permintaan diproses secara bersamaan. Ketika permintaan ke-11 hingga ke-15 tiba, mereka mengantri dan menunggu slot aktif. Permintaan ke-16 dan seterusnya menerima HTTP 503.