C10k問題


C10k_problem
C10k問題は、最適化の問題であり、ネットワークソケットを同時に多数のクライアントを処理します。 C10kという名前は、1万の接続を同時に処理するための数字です。同時接続は1秒あたりのリクエスト数と同じではないことに注意してください、それらは似ていますが、1秒あたりの多くの要求を処理するには、高いスループット(それらを迅速に処理する)が必要ですが、同時接続の数が多い場合は、接続の効率的なスケジューリングが必要です。つまり、1秒あたりの多くのリクエストの処理はリクエストの処理速度に関係しますが、多数の同時接続を処理できるシステムは必ずしも高速なシステムである必要はなく、各リクエストが決定論的に応答を返すシステムである必要はありません。 (必ずしも固定されているとは限らない)有限の時間内。
Webサーバーが多くのクライアントをサポートできるようにするには、いくつかの要因を考慮する必要があるため、ソケットサーバーの最適化の問題が調査されています。これには、オペレーティングシステムの制約とWebサーバーソフトウェアの制限の組み合わせが含まれる場合が利用できるサービスの範囲とオペレーティングシステムの機能、およびマルチプロセッシング機能などのハードウェアの考慮事項に応じて、マルチスレッドモデルまたはシングルスレッドモデルを選択できます。メモリ管理(通常はオペレーティングシステム関連)に関する考慮事項を含むこの側面と同時に、暗黙の戦略はI / O管理の非常に多様な側面に関連します。

コンテンツ
1 歴史
2 C10Mの問題
3 も参照してください
4 参考文献

歴史
用語C10kは1999年に鋳造されたダンケーゲル、 引用Simtel FTPホスト、cdrom.com一度1オーバーで万クライアントにサービスを提供、毎秒ギガビット イーサネットその年を。それ以来、この用語は多数のクライアントの一般的な問題に使用されており、多数の接続に対して同様の数字が使用されています。最近では2010年代の「C10M」です。
2010年代初頭までに、単一のコモディティ1Uラックマウントサーバーで数百万の接続が可能になりました。200万を超える接続(WhatsApp、24コア、FreeBSDでErlangを使用)、 1,000〜1,200万の接続(MigratoryData、12コア、LinuxでJavaを使用)。
非常に多数の接続の一般的なアプリケーションには、ファイルなど、一度に数千または数百万のユーザーにサービスを提供する必要がある一般的なパブリックサーバー(または、スパースオフィスがVPNを介してそれらのサーバーに接続されている非常に大企業のプライベートサーバー)が含まれますサーバー、ftpサーバー、プロキシサーバー、Webサーバー、ロードバランサーなど。

C10Mの問題
「C10Mの問題は、古典的に関連C10kの問題。単一のマシン上千万の同時接続をサポートするよう定義され、それがWebサーバ用が、任意のためだけでなく、困難な課題のままインターネットサーバー一般的には。」

も参照してください
負荷分散(コンピューティング)
イベント駆動型アーキテクチャ
イベント駆動型プログラミング
リアクターパターン

参考文献
^ “C10K問題”。
^ Liu、D。; Deters、R。(2009)。「サーバー側マッシュアップの逆C10K問題」。サービス指向コンピューティング– ICSOC2008ワークショップ。コンピュータサイエンスの講義ノート。5472。p。166. doi:10.1007 / 978-3-642-01247-1_16。ISBN
 978-3-642-01246-4。
^ Andrew Alexeev(2012)。「§14.nginx;§14.1。なぜ高い同時実行性が重要なのですか?」。エイミーブラウンで; グレッグウィルソン(編)。オープンソースアプリケーションのアーキテクチャ、ボリュームII:構造、規模、およびいくつかの大胆不敵なハック。Lulu.com。ISBN
 9781105571817。約10年前、著名なソフトウェアエンジニアであるDaniel Kegelは、…KegelのC10Kマニフェスト…10,000の同時接続のC10K問題を解決し、nginx …
^ ケーゲル、ダン(1999年5月8日)。「C10K問題」。Kegelcom。1999年5月8日にオリジナルからアーカイブされました。そして、コンピューターも大きいです。1ギガバイトのRAMと6枚の100Mbit /秒イーサネットカードを備えた500MHzのマシンを3000ドル程度で購入できます。見てみましょう-10000クライアントでは、クライアントあたり50KHz、100Kバイト、60Kビット/秒です。ディスクから4キロバイトを取得し、1万クライアントごとに1秒に1回ネットワークに送信するのに、それ以上の馬力は必要ありません。(ちなみに、これはクライアントあたり0.30ドルになります。一部のオペレーティングシステムが請求するクライアントあたり100ドルのライセンス料は、少し重く見え始めています!)したがって、ハードウェアはもはやボトルネックではありません。
^ ミハイロタル(2015-05-20)。「MigratoryDataがC10Mの問題をどのように解決したか:単一のコモディティサーバーでの1,000万の同時接続」。migratorydata.com 。2021-10-15を取得。
^ 「100万はそう2011年です」。WhatsAppブログ。
今回は、ハードウェア、OS、およびソフトウェアに関する技術的な詳細も共有したいと思います。hw.machine:amd64 hw.model:Intel(R)Xeon(R)CPU X5675 @ 3.07GHz hw.ncpu:24 hw.physmem :103062118400 hw.usermem:100556451840
^ リード、リック
「数百万の同時接続へのスケーリング」(PDF)。Erlangファクトリー。p。7. 2012年7月9日にオリジナル(pdf)からアーカイブされました。
^ ミハイロタル(2013-10-10)。「1200万の同時接続へのスケーリング:MigratoryDataがどのようにそれを行ったか」。migratorydata.com 。2021-10-15を取得。
^ Ponnuswamy Sadayappan; マニッシュパラシャール; Ramamurthy Badrinath; Viktor K. Prasanna(2008)。ハイパフォーマンスコンピューティング-HiPC2008。ISBN
 978-3-540-89893-1。2021-10-15を取得。
^ ロタル、ミハイ; オラリウ、フロレンティン; オニカ、エマニュエル; リビエール、エティエンヌ。「MigratoryDataを使用した数百万人のユーザーへの信頼できるメッセージング」(PDF)。第18回ACM / IFIP / USENIXミドルウェア会議の議事録:産業トラック:1–7。土井:10.1145 /3154448.3154449。