0

最近 Knative の調査を開始し、同時実行と自動スケーリングがどのように機能するかを理解しようとしています。(ターゲット) 同時実行数とは、特定のリビジョンの 1 つの Pod に同時にスケジュールできるリクエストの数を指すことを理解しています。

ただし、同時実行数の値が 1 より大きい場合の影響を理解しているかどうかはわかりません。N 個のリクエストが同じ Pod にスケジュールされている場合はどうなりますか? それらは FIFO 順で一度に 1 つずつ処理されますか? 複数のスレッドが生成され、並行して処理されますか (CPU リソースをめぐって競合する可能性があります)?

concurrency=1 に設定し、複数の Pod を介して複数のリクエストを処理するために自動スケーリングに頼りたくなりましたが、これは最善の方法ではないと思います。

前もって感謝します

4

1 に答える 1

0

containerConcurrencyコンテナが一度に処理できるリクエストの数を示す Knative インフラストラクチャへの引数です。

AWS Lambda およびその他の Function-as-a-Service オファリングでは、各インスタンスは単一のリクエストのみを処理します。これは管理が簡単ですが、一部の言語 (Java や Golang など) では、スレッド化されたリクエスト モデルを使用して複数のリクエストを同時に簡単にサポートできます。Cloud Foundry や App Engine などのプラットフォームは、このより大きな同時実行をサポートしていますが、コード変換の「関数」モデルはサポートしていません。

Knative はこれら 2 つの間のどこかにあります。独自のコンテナを持ち込むことができるため、Lambda が期待するようにシングルスレッドでcontainerConcurrency1 に設定されたアプリケーション コンテナを構築するか、マルチスレッド コンテナを作成してcontainerConcurrencyより高く設定することができます。

于 2021-06-03T13:49:40.833 に答える