Linux系OSでTomcatのチューニングをしてみた。
<状況>
・CPU 余裕あり
・メモリ 余裕あり
・スワッピング 多発
<ボトルネック箇所の特定>
・外部に対してHTTP通信をし、戻ってくるまでの間で極端に遅い。
・一度に処理する件数が多くなるほど遅くなる。
1件づつのリクエストのレスポンスに2秒、リクエストが集中すると8秒~40秒くらいレスポンスがかかるようになっていた。
TomcatではHttpで授受するデータのバッファがデフォルトで2048バイトである。しかし、外部からの要求で返すデータ長は1件でも2048バイトを超える。ここでスワッピングが起こっているのが原因ではないか、と推定した。
Tomcatの設定ファイルである server.xml のパラメータを調べ Connector の bufferSize を大きく取った。
その結果。
レスポンスは、すべて1秒前後で戻るようになった。
ただ、これだけがすべてではない。他の観点からも「処理の高速化」を検討したい。