数週間前に、プログラミングの割り当てに単純なマルチスレッドHTTPサーバーを実装しました。この割り当てでは、ユーザーはブラウザーを介してドキュメントサイズを指定し(250バイトの長さのドキュメントの場合はlocalhost:port / 250など)、私のプログラムはそのサイズのhtmlページを作成しました。
そして、apachebenchと呼ばれるベンチマークツールを使用してパフォーマンスをテストしました。パフォーマンスは、ほとんどの場合、マルチスレッドプログラムに期待したものでした。
しかし、興味深いテスト結果があり、しばらくの間私を悩ませています。リクエストの転送速度は、リクエストサイズが大きくなると劇的に低下します。これは、このコマンドライン引数を使用したapachebenchテスト結果のサンプルです。
ab -n 1000 http:// localhost:port / RequestSize
RequestSize TX (バイト)(KB /秒) 70 212,21 150 268,75 250 364,58 350 447,23 500 497,36 650 496,73 800 491,48 1000 432,63 1250 405,17 1750 347,19 3000 241,95 5000 161,46 10000 84,58 20000 44,05
並行性のレベルは、この分布の急勾配を緩和するだけです。
この動作の原因は何ですか?
ありがとう、