C10K問題
![]() | この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2019年9月) |
C10K問題(英語: C10K problem)とは、Apache HTTP ServerなどのWebサーバソフトウェアとクライアントの通信において、クライアントが約1万台に達すると、Webサーバーのハードウェア性能に余裕があるにもかかわらず、レスポンス性能が大きく下がる問題である。
原因
この現象の原因は主に2019年現在も広く用いられているApache HTTP Server(以下「Apache」)の駆動方式にある。
Apacheはクライアントの接続一つ一つに対してプロセスを生成する仕様となっている。そのため大量のクライアントから接続があった場合、その数だけプロセスを生成しなければならない。しかし、WindowsあるいはLinuxなどのUNIX系OSでは、同時に起動できるプロセスに32767(215-1)個の制限がある。この制限を超えるとプロセスを新規生成することができなくなるため、既にあるリクエストの処理が終わるまで新たな接続は待たなければならない。これがC10Kの主な原因である。
回避方法
C10K問題を回避するためには様々な方法がある。
- Nginxなど、C10K問題が起こらないように設計されたソフトウェアを使用する
- サーバーサイドでNode.jsなどの駆動方式を持ったソフトウェアを使用する
外部リンク
クライアント1万台問題
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/02 04:43 UTC 版)
「Node.js」の記事における「クライアント1万台問題」の解説
非同期処理のNode.jsではクライアント1万台問題は起きない。 Node.jsでこの問題を解決した技術の中核は、シングルスレッドにおける非同期処理を容易に実装可能にしたイベント駆動型プログラミング環境である。
※この「クライアント1万台問題」の解説は、「Node.js」の解説の一部です。
「クライアント1万台問題」を含む「Node.js」の記事については、「Node.js」の概要を参照ください。
- クライアント1万台問題のページへのリンク