C10kの問題

フリー百科事典ウィキペディアより
ナビゲーションにジャンプ 検索にジャンプ

C10k問題は、多数のクライアントを同時に処理するためにネットワーク ソケットを最適化する問題です。[1] C10kという名前は、1 万の接続を同時に処理するための数秘術です。[2]多数の同時接続の処理は、1 秒あたりの多数の要求の処理とは別の問題です。後者には高いスループット (迅速に処理する) が必要ですが、前者は高速である必要はありませんが、接続の効率的なスケジューリングが必要です。

Web サーバーが多くのクライアントをサポートできるようにするには、多くの要因を考慮する必要があるため、ソケット サーバーの最適化の問題が研究されています。これには、オペレーティング システムの制約と Web サーバー ソフトウェアの制限の組み合わせが関係する場合があります。提供されるサービスの範囲、オペレーティング システムの機能、およびマルチプロセッシング機能などのハードウェアの考慮事項に応じて、マルチスレッド モデルまたはシングル スレッドモデルが優先される場合があります。メモリ管理 (通常はオペレーティング システムに関連する) に関する考慮事項を含むこの側面と同時に、暗示される戦略は、I/O 管理の非常に多様な側面に関連しています。[2]

歴史

C10kという用語は、ソフトウェア エンジニアの Dan Kegel によって 1999 年に造語され、[3] [4] Simtel FTP ホストcdrom.comを引用し、その年に毎秒 1 ギガビットの イーサネットで一度に 10,000 のクライアントにサービスを提供しました。[1]それ以来、この用語は多数のクライアントの一般的な問題に対して使用されており、より多数の接続に対して同様のニュメロニムが使用されており、最近では 2010 年代に「C10M」が 1000 万の同時接続を指すようになりました。[5]

2010 年代初頭までに、単一コモディティ1Uラックマウント サーバーで数百万接続が可能になりまし LinuxでのJava使用)。[5] [8]

接続数が非常に多い一般的なアプリケーションには、一般的なパブリック サーバー、または非常に大企業のプライベート サーバーが含まれます。これらのサーバーには、仮想プライベート ネットワークを介して接続されたまばらなオフィスがあり、一度に数千または数百万のユーザーにサービスを提供する必要があります。ファイル サーバーFTP サーバープロキシ サーバー、Web サーバー、ロード バランサーなど。[9] [5]

も参照

参考文献

  1. ^ a b 「C10K問題」 . 2013-07-22 のオリジナルからのアーカイブ。
  2. ^ a b Liu, D.; Deters、R.(2009)。「サーバー側マッシュアップの逆 C10K 問題」. サービス指向コンピューティング – ICSOC 2008 ワークショップコンピュータ サイエンスの講義ノート。巻。5472.p。166.ドイ: 10.1007/978-3-642-01247-1_16 . ISBN 978-3-642-01246-4.
  3. ^ アンドリュー・アレクセーエフ (2012). 「§14. nginx; §14.1. 高い同時実行性が重要な理由?」. エイミー・ブラウンで。グレッグ・ウィルソン(編)。The Architecture of Open Source Applications, Volume II: Structure, Scale and a Few More Fearless Hacks . ルル.comISBN 9781105571817. 約 10 年前、著名なソフトウェア エンジニアである Daniel Kegel は、… Kegel の C10K マニフェスト… 10,000 の同時接続の C10K 問題を解決し、nginx
  4. ^ ケーゲル、ダン(1999年5月8日)。「C10K問題」 . ケーゲルコム1999 年 5 月 8 日のオリジナルからのアーカイブ2019年6月18日閲覧また、コンピュータも大きいです。1 ギガバイトの RAM と 6 枚の 100Mbit/sec イーサネット カードを搭載した 500MHz マシンを 3000 ドルほどで購入できます。見てみましょう - 10000 クライアントでは、クライアントあたり 50KHz、100K バイト、および 60K ビット/秒です。ディスクから 4 キロバイトを取り出して、1 万台のクライアントごとに 1 秒に 1 回ネットワークに送信するのに、それ以上の馬力は必要ありません。(ちなみに、これはクライアントあたり $0.30 になります。一部のオペレーティング システムが請求するクライアントあたり $100 のライセンス料は、少し重く見え始めています!) したがって、ハードウェアはもはやボトルネックではありません。
  5. ^ a・ b・ c ミハイ・ロタル (2015-05-20). 「MigratoryData が C10M 問題をどのように解決したか: 単一のコモディティ サーバーで 1,000 万の同時接続」 . migratorydata.com . 2021年10月15日閲覧
  6. ^ "100万は2011年だから" . WhatsAppブログ. 2012 年 1 月 6 日。2014 年5 月 1 日に元の場所からアーカイブされました2019年7月25日閲覧今回は、ハードウェア、OS、およびソフトウェアに関する技術的な詳細も共有したいと思います。 hw.machine: amd64 hw.model: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz hw.ncpu: 24 hw.physmem : 103062118400 hw.usermem: 100556451840
  7. ^ リード、リック (2012 年 3 月 30 日). 「数百万の同時接続へのスケーリング」(PDF) . アーランファクトリーp。7. 2012 年 7 月 9 日にオリジナル(PDF)からアーカイブされました2019年7月25日閲覧
  8. ^ ミハイロタル (2013-10-10). 「1200 万の同時接続へのスケーリング: MigratoryData の方法」 . migratorydata.com . 2021年10月15日閲覧
  9. ^ ポンヌスワミー・サダヤッパン; マニッシュ・パラシャー; ラママーシー・バドリナート; ヴィクトル・K・プラサンナ (2008)。ハイ パフォーマンス コンピューティング - HiPC 2008 . ISBN 978-3-540-89893-1. 2021年10月15日閲覧