「C10K問題」の版間の差分
imported>Administrator |
Administrator (トーク | 投稿記録) |
||
| (2人の利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
'''C10K問題'''([[英語]]:c10k problem)とは、なにも考えずに設計された[[サーバー]]や[[システム]]は、10K(10 x 1000 = 10000)[[クライント]]くらいの同時アクセスで[[サーバーダウン]]することが多いという話である。 | '''C10K問題'''([[英語]]:c10k problem)とは、なにも考えずに設計された[[サーバー]]や[[システム]]は、10K(10 x 1000 = 10000)[[クライント]]くらいの同時アクセスで[[サーバーダウン]]することが多いという話である。 | ||
== 概要 == | ==概要== | ||
[[ハードウェア]]的には20世紀末の[[パソコン]] | 主に[[Apache HTTP Server]]で問題になったもので、[[ハードウェア]]的には20世紀末の[[パソコン]]でも1万クライアントくらいなら余裕で捌けるが、そのうえで動く[[ソフトウェア]]の設計が悪いと限界が訪れるという問題です。 | ||
なお、数百クライアント程度でパンクするようであればソフトウェアの実装に何かしらの問題があると考えた方がよい。 | |||
同時接続数にして「1万」、1つの[[ウェブブラウザ]]が4〜8並列で[[サーバー]]に繋いでくることを考慮しても「同時アクセス1000人くらい」が基準となります。なお、1日1000人でも、1分1000人でもなく、1秒1000人くらいの世界の話であり、そのレベルに到達する大人気[[ウェブサイト]]などほとんどないため一般人には無縁の話です。 | |||
ちなみに2001年末に[[田代砲]]の被害にあった米TIME紙の[[サーバー]]は余裕で耐えた。これは設計が良かった事例である。 | |||
== 対策 == | |||
=== HTTP === | |||
この対策として[[ウェブ]]界隈では[[Nginx]]が大流行した。 | この対策として[[ウェブ]]界隈では[[Nginx]]が大流行した。 | ||
なお、Nginxの上で動く[[ウェブサービス]]の設計が悪いとどうにもならない。このくらいの規模になってくるとウェブサービス側を全面的に「[[ステートレス通信]]」に書き換えるなどの対策も同時に行わないとだんだんと苦しくなる。 | なお、Nginxの上で動く[[ウェブサービス]]の設計が悪いとどうにもならない。このくらいの規模になってくるとウェブサービス側を全面的に「[[ステートレス通信]]」に書き換えるなどの対策も同時に行わないとだんだんと苦しくなる。 | ||
== 耐久試験ツール == | ==耐久試験ツール== | ||
かつてはC10Kの耐久試験ツールも沢山あったが、「[[田代砲]] | かつてはC10Kの耐久試験ツールも沢山あったが、「[[田代砲]]」「[[アパッチ砲]]」「[[ゲイツ砲]]」などとして悪用される事例が多発したためか、現在では公に配布されているものは少ない。 | ||
この手のツールを社内LANなんかで使う前提の商用業務システムなんかで試すと、残念ながら世の中には同時1万アクセスどころか同時100アクセスくらいで落ちるシステムも多々存在しているのが実情である。 | |||
== 関連項目 == | ==関連項目== | ||
* [[Nginx]] | *[[Nginx]] | ||
* [[Java]] | *[[Java]] | ||
* [[PHP]] | *[[PHP]] | ||
* [[golang]] | *[[golang]] | ||
* [[WebSockets]] | *[[WebSockets]] | ||
* [[Windows]] | *[[Windows]] | ||
* [[Jetty]] | *[[Jetty]] | ||