libcurl マルチプロキシ転送: 接続の上限と待ち行列
CONNECT はサポートされています。ホストが埋まっている場合や接続の総上限に達した場合、ソケットを試みる前に転送が待たされることがあります。
マルチプロキシ転送がブロックするという報告には、libcurl のリリースと TLS バックエンドが必要です。それは、すべての CONNECT 転送が OS スレッドを必要とすることを示すものではありません。
| 待ち | 確認すべき点 |
|---|---|
| 1 つのエンドポイントに対する枠 | CURLMOPT_MAX_HOST_CONNECTIONS は転送先サイトが異なってもプロキシをホストとして数えます |
| multi ハンドル全体の枠 | 接続の総上限がさらに別の待ち行列を生むことがあります |
| 接続試行の後 | 実際のプロキシ応答、またはリリース固有のブロック動作 |
イベントループとの統合、上限、タイムアウトの予算を、インストール済みリリースのインターフェースと比較してください。並列度を上げても、原因を直さないまま待ち行列がプロキシ側へ移るだけのことがあります。
アプリケーションの並列アーキテクチャを変える前に、クライアント側の待ち行列、遅い応答、実装固有のブロックのどれなのかを特定してください。