• 締切済み

Linux上でのTomcatのServletプロセスについて。

mura333の回答

  • mura333
  • ベストアンサー率42% (3/7)
回答No.1

>Tomcatを起動させた時点でjavaのプロセスが24個も上がるのですが、これは普通なことなのでしょうか? >ちなみに、メモリ消費量は約800Mです。 正直な話、ありえねー!って感じです。 >Tomcat内のServletに対してPostする度にプロセス数が増加し スレッドじゃなくて、プロセスですよね? やっぱりありえねー!です。 >小さな事でもいいので助言をください。 ほんとにアドバイスのみですが、以下のことを確認ください。 1.Apache連携しないで、Tomcatのみ(8080ポート)で動かしたらどうなりますか? 2.Tomcatの標準のWebアプリのみで起動したらどうですか? 以下は想像で書いています。 まずプロセスが上がるということは、Webアプリの中でRuntime.getRuntime().exec()を使って、Tomcatから更に別のjava VMを起動しているということはありませんか? 通常ガーベッジコレクタが動くのは、java VMの中のインスタンスのみです。従って、別プロセスで上がってしまったら、他人のVMまでは面倒みれません。 起動した本来のTomcatのjavaプロセスから見て、別のjava VMは、Windowsでいうところの別exeと同じですので、javaとはいえ全然無関係な世界です。普通だったら、同じVM内でインスタンス生成して使うと思うのですが。 謎ですね。 唯一考えられるのは、同じVMだとメモリが一杯になるので、わざと別VMを起動していたりして・・・。

asamn777
質問者

お礼

返事が遅くなってしまい申し訳ありません。 Webアプリの中でRuntime.getRuntime().exec()で別VMを起動ってことは特にやってないですね。。。 何らかの理由で別VMとして起動しているのかもしれませんね。 今すぐにできる環境ではないのですが、1と2を確認してみたいと思います。 ありがとうございました!

関連するQ&A

  • Tomcat Servletが動きません

    『Javaへの道:Tomcat』のページを参考に同じようにやってるのですが、 JSPはうまくいくのですがServletがうまくいきません。 (長文になります) 参考ページと私の環境で違う点 Windows XP Home → XP Pro Tomcat 6 → Tomcat 7 JDK6.0 → JDK6.23 ポート8080 → 8081 以下のファイル、フォルダを作りました(参考ページそのままです)。 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\jspdir\HelloJsp.jsp C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\classes\HelloServlet.class C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\web.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\javaroad.xml --↓↓HelloJsp.jspここから↓↓-- <HTML> <BODY> from JSP source<br> <%= new java.util.Date() %> </BODY> </HTML> --↑↑HelloJsp.jspここまで↑↑-- --↓↓web.xmlここから↓↓-- <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> --↑↑web.xmlここまで↑↑-- --↓↓javaroad.xmlここから↓↓-- <Context path="/javaroad" reloadable="false"/> --↑↑javaroad.xmlここまで↑↑-- JSPを起動 http://localhost:8081/javaroad/jspdir/HelloJsp.jsp → 正しく表示される Servletを起動 http://localhost:8081/javaroad/Hello → ステータス404 The requested resource (/javaroad/Hello) is not available. <気になる点> 1.Tomcatを起動するためStratボタン押しても1回では起動せず、2~3回で起動する。  1回目のときcommons-daemon.2011-01-15.logにこんなログが出る。  [2011-01-15 23:01:16] [error] Pid file 'C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\tomcat7.pid' exists  [2011-01-15 23:01:16] [error] ServiceStart returned 1 2.servletクラスは正しくコンパイルできているのか 状況を詳しく説明しようとして長々と書いてしましたが Servletを表示するにはどうしたらいいでしょう? 足りない情報があれば追加します。

    • ベストアンサー
    • Java
  • Apache、Tomcat連携時のチューニングについて

    よろしくお願いします。 質問ですが、Apache、Tomcatを連携させてイントラのWebを構築したのですが、アクセス数が増えるにしたがって、レスポンスが遅くなり、アクセス数が100未満にもかかわらず、クライアントのWeb画面が固まってしまう現象が起きました。 私はApache、Tomcatのチューニング(主にJVMのメモリ増加設定)である程度は解決するのでは、と思っていますが、この他にチューニングの方法はあるのでしょうか? もし、他の方法がありましたら、詳しく教えて頂けたらと思います。 ちなみに、Javaで開発を行い、OSにはMIRACLE LINUX、DBはORACLEを用いていますが、ORACLEはステータス管理程度にしか使用していないので、今回の件に関しては、特に関係はないと思います。 どなたかご教授ください。よろしくお願いします。

    • ベストアンサー
    • Java
  • Windows,LinuxでTomcatを動かすにはどうしたらよいでしょうか?

    JavaでTomcatをインストールしたことが無いのですが Windows,LinuxでTomcatを動かすにはどうしたらよいでしょうか? Apacheは経験ありますので、それと比較した解説があれば助かります。 また、DspaceというオープンソースがあるのですがこれをWindwosやLinuxで動かしたいのですがこれも可能でしょうか?

    • ベストアンサー
    • Java
  • Linux+Apache+Tomcat3.2.1 で非常に困ってます・・

    はじめまして Servlet初心者です LinuxにApache1.3.14とTomcat3.2.1を入れ、exampleを実行しようとしたところ、 port:8007(Ajp12)からだと   HANDLER THREAD PROBLEM: java.io.IOException: Stream broken port:8009(Ajp13)からだと   ArrayIndexOutOfBoundsException になってしまいます・・ なにが悪いのか? どうすればまともに動くのか? etc.. 教えてください! どうかよろしくお願いいたします・・ ちなみにその他の環境や条件は Redhat Linux 7 / JDK1.3.0 / JSSE1.0.2 / ServletAPI3.2 .. TOMCAT並びにServletAPIはAnt-1.3でコンパイルしました CLATHPATHは TOMCAT起動時にセットされるもの(servlet.jar etc.)の他には $JAVA_HOME/bin、antのjaxp.jar と parser.jar、JSSEの3つのjarファイルくらいです。

  • Tomcatはhttp serverは含んでいる

    Tomcatのwikipediaを読んでいたら 開発されたWebコンテナである。TomcatはWebサーバと連携して実行できるJavaコードの環境を提供するSunのJava ServletとJavaServer Pages (JSP)の仕様を実装している。Tomcatはそれ自身、HTTPサーバを内部に含んでいる。HTTPサーバと連携させて用いることもできる[5]。例えば、Apache HTTP Serverとはコネクタモジュールを用いて連携を行う。1.3系と2.0系ならばmod_jkなどを用い、2.2以降はmod_proxy_ajpモジュールを用いる。 と書いてありました。Tomcatはhttp serverも含んでいるということは、他のapacheなどのhttpサーバーと連携させるってどういうことでしょうか?Tomcatがhttpサーバーの機能を持っていたらわざわざ他のウェブサーバーを連携するという意義がわかりません。どういうことでしょうか?

    • ベストアンサー
    • Java
  • redhat LinuxへTOMCATのインストールについて

    どなたか、redhat LinuxへTOMCATのインストールの 方法を教えていただけませんでしょうか? 現状は、/usr/locarの下に apache j2sdk-1_3_0_02_linux.rpm jakarta-tomcat-3.2.1.src が展開してあります。 Javaサーバーサイドプログラミング 原田洋子著 を見て挑戦しているのですが、どうしてもapacheに tomcatをアドオンすることができません。 Makefile.linuxが見つからないのですが。 展開の仕方が悪いのでしょうか?

    • ベストアンサー
    • Java
  • tomcat+apache+JBuilderでのServletの動作

    現在の環境は下記の通りです。 Linux(Laser5 4.6) Apache1.3.20 Tomcat3.2.3 ------------------------------------ tomcat+apacheでJBuilderを使い作成した Servlet(JARアーカイブ)を動かしたいの ですが、思うように動きません。 手順としては、 1.index.htmlを表示させる。 2.index.htmlにFORMを記述し、Servletを 起動させ、FORM上に入力した値を使用し て処理させる。 になります。 index.htmlとJARアーカイブファイルをどの 位置へ置き、web.xmlやserver.xmlをどの様 に記述すれば宜しいのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • tomcat psコマンドでスレッドのプロセスが見れません。。

    はじめまして。 JDK1.4.2-13 + tomcat5.0.28 + RHEL3でWEBアプリ環境を 構築しています。 Linux上ではJavaの1スレッドが1プロセスとして 実行されていると思いますが、この1スレッドをpsコマンドが 見た時になぜか表示されません。tomcat本体のjavaプロセスは 確認できるのですがスレッドに当たるプロセスが見えません。 topコマンドでは処理させた時にjavaというプロセスが 処理に応じて上位に表示されるのですが、この時に、 ps -ef | grep java でJavaプロセスを確認しようとしてもどうしても 見ることができません。。 linux上でtopコマンドとpsコマンドでは表示されるプロセス に違いがあるのでしょうか? WEBで調べてみてもみなさんpsコマンドでtomcatのJavaスレッド プロセスが確認できているようなので質問させて頂きました。 宜しくお願いします。

    • ベストアンサー
    • Java
  • servletのコンパイルエラーについて CLASS_PATH Tomcat 5.5.11

    Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。 Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。 HelloWorld.java:3: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともなりません。 現在は以下のようになっております。 CLASS_PATH .;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.5 PATH C:\Program Files\Java\jdk1.5.0_04\bin JAVA_HOME C:\Program Files\Java\jdk1.5.0_04 もうどうしたらいいのかわかりません。 助言のほうよろしくお願いします。

    • ベストアンサー
    • Java
  • servletを起動させるURLについて

    現在、javaのservletの勉強をしているのですが、 1つ疑問があります。 現在、サーバのtomcat + apacheを起動して、 http://<サーバのホスト名>:8080/ でアクセスしたら、tomcatのindex.html を起動するようになっているのを、自分が作ったservletを起動する ように変更したいのですが、このようなことはできるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java