ブログ - C10K問題
Splunkの2020年問題を見て重台したのだけれど,C10K問題というのがありました.
「クライアントが1万台を超えると,サーバのリソースに余裕があってもレスポンスが悪くなる」という問題.
Apache HTTP Serverのバージョン1.3くらいまでは,プリプロセスで1接続に1プロセスが割り当てるタイプでkeepaliveしない状態が高速動作していたけれど,それは瞬間同時256接続まで.1万台のオーダーになると,まずプロセス起動用のメモリが仮想記憶を入れても不足してくるし,メモリが足りたとしてもプロセスIDの番号発番も番号が枯渇してしまうので割り当てられない.
ネットワークのポート番号もそう.物理的に65535ポートまでしかないわけだから1クライアントが古いInternet Explorerだと4接続だったけれど,単純計算だけであっぷあっぷ.
それに,接続の再利用可能時間とかもあるから,もっと制限はきつくなる.これはもうアーキテクチャの限界なんだなぁ.それを効率よく使えるようにしたのが,仮想サーバなわけだが.
「クライアントが1万台を超えると,サーバのリソースに余裕があってもレスポンスが悪くなる」という問題.
Apache HTTP Serverのバージョン1.3くらいまでは,プリプロセスで1接続に1プロセスが割り当てるタイプでkeepaliveしない状態が高速動作していたけれど,それは瞬間同時256接続まで.1万台のオーダーになると,まずプロセス起動用のメモリが仮想記憶を入れても不足してくるし,メモリが足りたとしてもプロセスIDの番号発番も番号が枯渇してしまうので割り当てられない.
ネットワークのポート番号もそう.物理的に65535ポートまでしかないわけだから1クライアントが古いInternet Explorerだと4接続だったけれど,単純計算だけであっぷあっぷ.
それに,接続の再利用可能時間とかもあるから,もっと制限はきつくなる.これはもうアーキテクチャの限界なんだなぁ.それを効率よく使えるようにしたのが,仮想サーバなわけだが.