はじめに †最近、CPUのチップ内に処理ユニット(コア)を複数搭載したタイプも普及してきました。これにより、コア数の数以内であれば、複数のプロセスをスピードを落とす事なく処理する事が可能になりました。 一方、Tomcatでは、mod_jkと連動させて複数のサーバーにプロセスを分散する事は以前から可能でした。ここでは、1つのサーバーで複数のTomcatプロセスを立ち上げる事により、マルチコアのCPUの能力を十分に発揮させる方法について説明します。 本ページの内容について †本ページでは、設定する際に落とし穴になりそうな点、他のHPでの解説で勘違いした点を中心にまとめます。具体的な設定方法は参照先のページを確認してください。 環境 †以下のような環境での適用例です。Linux環境でも同様の設定による動作すると思います。 以下の記述は、上記環境が整っている状態で、tomcatプロセスを2個走らせる手順です。 特に、httpd.confの最後に以下の1行が追記されているか確認してください。 LoadModule jk2_module modules/mod_jk2.so 設定の手順 †
server.xmlの編集 †apache2とtomcatを連携させる構成では、tomcatの待ち受けポートは8009なので、 必要な<Connector>要素は以下の部分だけです。 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> これ以外のポートは関係ないので、不要なら削除するか、コメントアウトしておきます。 server.xmlの編集その2 †次に、クラスタリングを有効にするため、<Cluster>タグを有効にします。 <!-- <=ここを削除 <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" ・・・・ </Cluster> --> <=ここを削除 server.xmlの編集その3 †セッション管理を有効にするため、EngineタグにjvmRouteを追記します。 <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> jvmRouteに設定した名称はworkers2.propertyに使います。 server.xmlの複製 †2つ目のプロセス用のserver.xmlとして、server2.xmlを作成します。 まずは、server.xmlのファイルをコピーし、名前をserver2.xmlとします。 server2.xmlの編集 †2つのプロセスで同じ設定だと動かない項目のみ、server2.xmlで編集します。
workers2.propertyの編集 †workers2.propertyを開き以下のように追記します。 [channel.socket:localhost:8009] tomcatId=jvm1 <=これを追記 [channel.socket:localhost:18009] <=これを追記 tomcatId=jvm2 <=これを追記 web.xmlの編集 †公開するサーブレットのWEB-INF内のweb.xmlを開きます。 最終行から2行目に、distributableを追記します。 <distributable/> <=これを追記 </web-app> 2つのTomcatプロセスの起動 †コマンドプロンプトから、tomcat起動コマンドをたたきます。 このとき、2つめの起動オプションは、-config conf¥server2.xmlとします。 startup.bat <=1つめのプロセスを起動 startup.bat -config conf¥server2.xml <=2つめのプロセスを起動
参考 †コメント欄 †最新の10件を表示しています。 コメントページを参照 |