Java

Tomcatのメモリ使用量をjconsoleを使って監視する方法

投稿日:2013/09/20 更新日:

まれに、Tomcatのメモリ使用量をリアルタイムで知りたいということが無いでしょうか。
管理人はたまにあります・・・。

JDK5か6以降jconsoleという便利なツールが追加されまして、それを使って監視というか見ることができるので今回はそのやり方を書いてみたいと思います。

環境

クライアント:Windows7 64bit JDK7
サーバー:CentOS6 64bit JDK7

サーバー側(CentOS)の準備

Tomcatの起動オプションに以下を追加します。

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=任意のポート番号
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

見やすくするため改行していますが、実際はコマンドオプションなので改行は含めないでください。
portは未使用のポートで、あと多分ウェルノウンポートはダメだと思います。rootユーザーで起動するのであればOKかもしれませんが・・・。
※指定したポート番号は、iptablesなどで接続できるようにしておく必要があります。

次に、以下のコマンドを発行してみてください。

hostname -i

127.0.0.1と帰ってきた人は、接続できないと思います。
こちらのブログにも書いてあるみたいですが、グローバルIP、ローカルIPが帰ってくる必要があるみたいです。
Linuxで起動したTomcatにJMXで接続できない問題
管理人は/etc/hostsを変更して、自身のローカルIPを返すように変更しました。
RDMSなのでIP認証で127.0.0.1を許可してある設定をしている人は、ローカルIPが変わるので接続できないみたいなことを言われるかもしれません・・・。

クライアント側(Windows)でjconsoleの起動

特に準備は必要ありません。
JDKをインストールしたフォルダのbinというフォルダにjconsole.exeというファイルがあると思いますので起動してください。
起動したら↓のような画面が表示されると思いますので、リモートプロセスの部分を入力します。
console
IPアドレス:JVMポート番号のように指定します。
取り急ぎ、ユーザー名とパスワードは未入力で、接続ボタンをクリックすると、下のような監視画面が表示されます。
monitor

まとめ

muninなどでグラフ化できるといいんですけどね。
探してみようかな・・・。

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

SpringMVCを使ってみることにしました。

Tomcat3時代のころからJavaでウェブアプリケーションを使っておりますが、フレームワークはあんまり使ったことがありません。 業界標準?だったStruts1も試しに使ってみてxml書くのと存在意味 …

Spockを使いたいからEclipseからIntelliJ IDEAへ移行した話

Javaを書くときはずーとEclipseを使っていましたが最近IntelliJ IDEAへ移行しました。 確かEclipse2のときから使っていたので10年以上は使っていたと思います。 Eclipse …

no image

JavaからTwitter4jを使ってタイムラインを表示してみる

今、Playframework2でTwitterアプリを作っています。 ですが、最初にTwitterの準備をしなければならないことがわかりました。 JavaでTwitterを操作するのであれば・・・。 …

SpringMVCでPagenationを実装する方法

最近、SpringMVCを使って色々作っておりました。 今まで色々なフレームワークを触って、その度に挫折していましたが、SpringMVCは使えると思うように至りました。 業務ではないのですが、Spr …

JenkinsでwarファイルをTomcatにデプロイする方法

Tomcatサーバーへのデプロイは手動で行ってきました。 Antでリリースパッケージを作成して、SCP or FTPでリリース。原始的な方法です。 ですがJenkinsにTomcatのデプロイ用のプラ …