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