C10K問題
マルチスレッド
な
Webサーバ
の問題
クライアントの接続数が10K(10,000)を超えたあたりから性能が劣化する
スレッド
はメモリを消費する
同一
プロセス
の他スレッドとメモリを共有するが、スレッドごとに独立したスタック領域も持つ
x86_64 Linuxの
pthread_create
では1スレッドあたりのスタックサイズはデフォルトで2MB
マシンのメモリが16GB(≈16000MB)で1スレッド2MBの場合8000プロセスまでしか作れない
1接続1スレッドのWebアプリサーバだとしたら8000接続までしか処理できない!!
スケーラビリティ
が低い
イベントループ
を使って
シングルスレッド
で処理すれば良い
nginx
Node.js