タグ

jvmに関するoinumeのブックマーク (73)

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

    概要 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++
  • JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ

    ブログはJava8(特にMetaspace)に対応していない。 下記にJava8以降に対応した記事を記載する(予定)。 blog.pepese.com JavaVMのメモリ領域について JavaVMが管理するメモリ領域について 階層1 階層2 階層3 説明 Javaヒープ JavaVM上で起動するJavaプログラムのリソースを管理する領域。New領域とOld領域で構成される。 l" New領域 新規オブジェクトと閾値(-XX:MaxTenuringThreshold)未満のオブジェクトが配置される。(Young領域とも呼ばれる) l l" Eden領域 新規のオブジェクトが配置される。 l l" From領域 CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされる。(S0やS1とも呼ばれる) l lー To領域 CopyGC(Scav

    JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ
    oinume
    oinume 2012/09/04
    Javaのメモリ管理の仕組みやGCやJVM Optionが詳しすぎて涙がでる。
  • 例外のスタックトレースが途切れる - NoisySpot/メモ帳

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

    例外のスタックトレースが途切れる - NoisySpot/メモ帳
  • Javaプログラムのボトルネックを専用ツールで探す : toda_k

    前回はハードウェアやOSから情報を収集して調査方針を洗い出す方法についてざっくりと紹介しました。今回はJavaプログラムに速度劣化の原因が疑われる場合に実施すべきボトルネック調査について見ていきます。 ツールは何を使うべきか? 一般に、調査用ツールにはCUI/GUIという種類とリアルタイム/統計取得という種類があると考えています。例えばjconsoleはGUIでリアルタイムにJVMの状況を見るもので、 hprofはCUIで統計情報を得るものです。他に考えられる区分としては「JDK標準付属か否か」もありますが、準備に時間をかけられる状況ならあまり重要ではないでしょう。 ボトルネック調査で必要なのは、多様な情報を適切に取捨選択しつつリアルタイムに観察できることです。仮説が定まらない段階とメソッド単位で問題を追っている段階では必要な情報の幅が大きく異なりますし、特定フェーズでのみ遅くなるなどの「

  • Java VMオプションメモ - nekop's blog

    自分がJBoss ASでよく利用するJVMオプションのリスト。チューニングのベースでもある。 -server -Xmn256m -Xms1024m -Xmx1024m -XX:PermSize=256m -Xss256k -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=8 -XX:TargetSurvivorRatio=90 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true

    Java VMオプションメモ - nekop's blog
  • 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のまとめ」