現在メンテナンスしているJavaのボトルネックは特定の一行であることが分かった。
しかし、その処理がボトルネックになるような情報はほとんどない。
で、Tomcatの設定を見てみる。といってもどんな事が設定できるかなんてロクに知らない。ネットで調べながらだ。
さて、Tomcatの設定項目を一通り読んで、ピンときた。なあんだ、汎用機とあまり変わらないじゃないか、と。
その昔、大型汎用機のCOBOLのバッチプログラムを動作させるため、ジョブ制御言語(JCL : Job Control Language)を使っていたが、その中で「プログラムに割り当てるメモリ量」「入出力のファイルサイズ」などを指定する必要があった。データベースでも、IBMの汎用機上のDB2のDDL(SQLのうち、テーブル定義とかの部類のほう)では容量などを記載するパラメータがあった。
UNIX系は詳しくないので知らないが、Windowsではそのようなメモリやら容量は意識しなくて済むようになっている。反面、もしメモリやCPUをバカ食いするようなルール無用?のアプリがあったならたちまち全体に影響を与えてしまう。
本題に戻る。Tomcatは「私に任せればJavaのプログラムが使う資源を制限できます」というシロモノではないのか、なら少なくともJCLで書いていたようなことは設定できるはずだ、と考えるに至ったわけだ。
そう考えればTomcatでのそれぞれの設定項目も急に親しみが湧いてきた。
あとはボトルネックになっているだろう点を見つけ出し、適切な値を設定してやれば済むはず。
ここまで書いておいて「見当違い」だったらどうしよう。次回の更新には吉報を知らせられると良いなと思う。