Webアプリケーションはサーバの負荷によりサービスを十分に提供できないことがあり少しでもサービスの品質を向上させる為にもアクセス数やサーバのCPUやメモリを最適に利用する必要があります。
その為にコネクション数やタイムアウト時間をどう設定すれば良いかまとめてみました。
No | サーバ種類 | 項目名 | 設定内容 |
---|---|---|---|
①-1 | Web | 同時接続数 ApacheのMaxClients |
アクセスしている利用者数 × アクセスされる画面のファイル数(JavaScript、CSS、画像等)でネットワーク回線の帯域にもよるが通信速度を気にする必要がある |
①-2 | Web | タイムアウト ApacheのTimeout |
リクエストを受け付けてサーバー側の処理がどれくらいでレスポンスを返せるか。サーバ負荷を考慮して3秒ではなくもう少し長めに設定しておく方が良い |
②-1 | AP | 最大コネクション数 tomcatのmaxConnections |
Web同時接続数より少ない(CSSや画像等の静コンテンツは含まない為)値を設定 |
②-2 | AP | スレッド数 tomcatのmaxThreads |
並列でどれだけ処理するか。APサーバのCPUやメモリを元に調整 |
②-3 | AP | タイムアウト tomcatのTimeout |
Webのタイムアウトより短い時間を設定 |
③-1 | DB | コネクションプールサイズ JDBCのmax_connections |
APのコネクション数より少なく設定(DBサーバのCPUが高負荷にならない程度) |
③-2 | DB | タイムアウト JDBCのqueryTimeout |
DBのコネクションをすぐに開放できるように短い時間を設定(SQLはチューニングして1秒以内で終わる設定にする) |