タグ

JVMとjavaに関するoinumeのブックマーク (32)

  • Linuxで起動したTomcatにJMXで接続できない問題 « ~ ミネルヴァの梟は黄昏とともに飛び始める ~

    今、JMXでキャッシュをコントロールする仕組みを開発しているのですが、Linux上でtomcatを起動して、JMXを接続しようとするのですが、なぜか接続できなくて数時間悩みました。 色々調べて分かったのですが、Linux側で「hostname -i」と叩いて「127.0.0.1」と返ってくるとダメなようで、LANのIPなりグローバルIPなりが返答されないといけないようです。 あと、Java6以降では、com.sun.management.jmxremote.port=(ポート番号) を 指定するだけで良いという記事が多く見られましたが、私の環境では「com.sun.management.jmxremote=true」をVMオプションに指定しないと接続できませんでした(telnetはできたのでポートは開いているようです) Linux上で起動したTomcatにJMXを利用するための詳細な手順は

  • 3.  JConsole の使用

    JConsole グラフィカルユーザーインタフェースは、Java Management Extensions (JMX) 仕様に準拠した監視ツールです。Java 仮想マシン (Java VM) の広範なインストゥルメンテーションを使用して、Java プラットフォームで実行されるアプリケーションのパフォーマンスとリソース消費に関する情報を提供します。 Java Platform, Standard Edition (Java SE プラットフォーム) 6 では JConsole がアップデートされ、Windows および GNOME デスクトップの Look & Feel (他のプラットフォームの場合は標準的な Java のグラフィカル Look & Feel) を提供します。このドキュメントに掲載した画面キャプチャーは、Windows XP で動作するインタフェースのインスタンスから取得さ

  • トラシスラボ 技術ブログ: 検索結果

    概要 jconsoleで Windows PC から Linux サーバ上で稼動している Tomcat サーバに対して接続し、リソース使用状態を監視する方法についてまとめた。 このjconsole、「接続しようとしても接続できない」という問題に結構出会う。 しかも「何が問題か」を教えてくれない。 以前にもこの現象に出会って時間を取られてしまったにもかかわらず、メモを残していなかったので、また調査するはめに...orz 無駄な時間を今後費やすことがないよう、自分が出会ったトラブルについてまとめた。 jconsoleとは Sun JDK 6 の中には、コンパイラ javac の他にも、いくつか役に立つツールが含まれている。 jconsole は、Java プログラムに対し、次のような情報を得ることができる。 パフォーマンス情報 メモリの使用状態 稼働中のスレッドに関する情報 JMX リモートの

  • 「Java SE 6完全攻略」第5回 プロファイラ hprofとよき相棒 jhat

    アプリケーションのパフォーマンス・チューニングなどで使用するツールといえば,まず第一にあげられるのがプロファイラです。最近は,EclipseのTPTPや,NetBeans Profilerなどフリーで使えるプロファイラが増えてきたので,使ってみたことがある方も増えてきていると思います。 意外に知られていないのですが,Java SEにも標準でプロファイラが付属しています。それがhprofです。 Java 2 SE 5.0からは「-agentlib:hprof」という起動オプションでhprofを起動できます(J2SE 1.4.までは「-Xrunhprof」)。使い方はヘルプ・オプションで表示できます。 C:\temp>java -agentlib:hprof=help HPROF: Heap and CPU Profiling Agent (JVMTI Demonstration Code)

    「Java SE 6完全攻略」第5回 プロファイラ hprofとよき相棒 jhat
  • HPROFによるJavaプロファイリング | Acroquest

    以下に、プロファイリング対象となるjavaサンプルプログラムとそのプロファイリング結果を示します。 プロファイル結果は適宜省略して記述します。また、文中、赤太文字で記述されている部分は説明のための補足であり、実際のファイルには出力されません。 → サンプルプログラム プロファイリング結果(sites指定): JAVA PROFILE 1.0.1, created Mon Jul 14 08:35:46 2003 Header for -Xhprof ASCII Output Copyright 1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved. (略) -------- THREAD START (obj=a3fb78, id

    oinume
    oinume 2012/10/11
    java -agentlib:hprof=cpu=samples,file=/tmp/cpu_samples.txt
  • visualvmをRemoteで利用する - Flicker's Style++

    JDK6からすげー便利なvisualvmというプロファイラが付属されています。 内容についてはこちらに詳しく書いてあるので端折ります。 このvisualvmをリモートで接続する場合はJMX経由で接続する方法とjstatdというデーモン経由で接続する方法があるようです。 どう違うのか気になったのですが私が調べた限りだと機能的には違いはないようです。 ただ、jstatsデーモンを起動しておけば、そのサーバ上で動いているそのjstatdを起動したユーザーと同じユーザー権限で起動しているjavaプロセスを全部表示することができるのでjstatdのほうがいいような気がします。 ※いちいち全部のプロセスの起動スクリプトにJMXの設定いれるの面倒なので。 そんなわけでjstatdを起動しようとしたのですが、 http://d.hatena.ne.jp/tanamon/20091016/125567405

    visualvmをRemoteで利用する - Flicker's Style++
  • 例外のスタックトレースが途切れる - NoisySpot/メモ帳

    元記事最終更新:2007/04/19 概要 Sun Java VMに含まれる、HotSpot Servet VMでアプリケーションを実行する際、たまに例外のスタックトレースが省略されてしまう件に関して記述。 現象 Sun Java SE 1.4.1_08 のHostSpot Server VMで確認。 同じ箇所繰り返しNullPointerExceptionを発生するコードがあった際、何度目かの例外発生後、NullPointerExcetpionインスタンスにスタックトレースが含まれなくなった。 このため、例外発生時の原因特定が困難となってしまった。 原因 HotSpotVMは、実行時最適化の一環として、繰り返し出力される一部の組み込み例外については、都度例外インスタンスを生成せず、同じインスタンスを使い回すことによってインスタンス生成コストを抑えるという処理を行っている。 この使いまわさ

    例外のスタックトレースが途切れる - NoisySpot/メモ帳
  • OutOfMemoryErrorが発生したときにきちんとJavaプロセスを殺す - nekop's blog

    OutOfMemoryErrorが発生してもスレッドを異空間に葬るだけでJava VMはそのまま動き続ける場合があるけど、当然ながら状態に一貫性のない状態で動いている可能性があるわけで基的にはとっとと死んで欲しいわけである。一般的に言うところの「不定」状態。OOMEはErrorであってふつうの例外ではなく、致命的なJava VMエラーを示すものである。OOME発生後にプロセス再起動しないでそのままどうこうしようというのは絶対に避けた方が良い。 例えばJDBCのコネクションオープンしてDBからデータを読み込んでるときにOOMEが起きた場合、JDBCコネクションは大抵オープンしっぱなしで回収はされなかったりする。OOMEではfinallyブロックが呼ばれる保証はない。JDBCコネクションリークくらいならまだ良い方だが、これは全てに当てはまる。A-B-Cといったセットになっている処理は例外など

    OutOfMemoryErrorが発生したときにきちんとJavaプロセスを殺す - nekop's blog
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
    oinume
    oinume 2011/07/04
    すごいいいまとめ
  • Rolling garbage collector logs in java

    Is it possible to do a rolling of garbage collector logs in Sun JVM? Currently I generate logs using: -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -verbose:gc -Xloggc:gc.log But I have to manually rotate them using fifo queues and rotatelogs to create a new log for each day. I hope that there is a better solution for this. Maybe there is a way to access this log entries from i

    Rolling garbage collector logs in java
    oinume
    oinume 2011/04/24
    GCログのローテートするオプション
  • ibmURL(変更不可)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    ibmURL(変更不可)
    oinume
    oinume 2010/07/19
    色々と勉強になりました
  • Togetter - まとめ「javaのクラスローダ同時多発TLのまとめ」

    tissi @tissi まだ実戦投入したこと無いんだけどJava6のスクリプトエンジンは超使える。ゲームとかエンジンはC++で、AIとかLuaで書くけど、あのノリがJavaで使える。ノンストップでビジネスロジックをリロードする箇所を明示的に作れるのがいい。クラスローダいじる系は危なすぎる。

    Togetter - まとめ「javaのクラスローダ同時多発TLのまとめ」