C10K問題
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/04 15:46 UTC 版)
![]() | この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(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などの駆動方式を持ったソフトウェアを使用する
外部リンク
- C10K問題のページへのリンク