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: trueAnda. 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
maxQueueSizedikonfigurasi) 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:
-
Jika jumlah permintaan aktif di bawah
maxConcurrentRequests, permintaan diteruskan ke wadah model. -
Jika batas tercapai dan
maxQueueSizelebih besar dari 0, permintaan akan diantrian dan menunggu (hingga 60 detik) agar slot aktif tersedia. -
Jika antrian penuh (atau tidak ada antrian yang dikonfigurasi), permintaan segera ditolak dengan dikonfigurasi
overflowStatusCodedan 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.