1. 【JJUG Javaトラブルに備えよう 日本Javaユーザグループ 上妻 宜人 (あげつま のりと) はてなブログ : n-agetsuma.hatenablog.com 2. 自己紹介 上妻 宜人 (あげつま のりと) n 電話の裏側を作っている会社で働いています n Java/APサーバの社内技術サポート、トラブル解析 n Blog 『見習いプログラミング日記』 【JJUG
はじめに Android プログラマのみなさん、こんにちは。 今日も元気に Out Of Memory してますか? ということで、この記事では日々 OOM に悩まされる Memory 的な意味で富豪的な Android プログラマの為に、Eclipse Memory Analyzer Tool、通称 MAT の基本的な使い方を紹介します。 尚、この記事は [twitter:@youten] さんが企画された裏 Android Advent Calendar 12/20 の記事ですが、内容的には比較的オモテなものになっています。 対象読者 Andoid アプリ作ってる/はじめたけど、まだ MAT を使ったことがない方 MAT を使ってみようした事はあるものの、画面から難しそうな雰囲気を察知し、起動10秒後にはそっとタブを閉じてしまった経験がある方 DDMS の基本的な使い方を理解している方
JJUG ナイト・セミナー 「Java解析ツールバトル」に HeapStats 陣営でコミッターとして参加してきました! 今回のJJUGでは、自分達の JVM に深く密着してパフォーマンスに心血を注いでいる HeapStats、最近 OSS 化された Java だけでなく OracleJDK 7u40のリリースで公式に JDK に付属された Java Flight Recorder と twitter4j の開発者であるモデレータが過去に開発された 侍 の四三つ巴でディスカッションを行いました。 数々のプロジェクトやサービスで利用されている Java だからこそ、障害や性能問題に悩まされる人の数も多いと思われます。障害解析の手助けになるツール、それも今回参加した3つの内2つは日本人によって開発されていることもあり、かなりの盛
Java SE 9を、新たに導入されたモジュール・システム(Jigsaw)を中心として紹介します。JJUG Java Message Service)」。JMXはJava SE内の、モニタリング用の仕組みです。 p. 43 これに加えて、SPIの実装を提供するモジュールも、モジュールレイヤーに含まれます。具体的にはConfiguration.resolveAndBindの動きです。 p. 47「Oracle JDKでは、外部モジュールの非公開メンバへのリフレクションが可能」は、OpenJDKでも同じ動作です。「HotSpot系の」とすべきところでした。 このスライドはCC Attribution Licenseの元に、利用・改変・再配布をライセンスします。
前回、JVMとGCのしくみ - ITエンジニアとして生きるでJVMとGCのしくみについて書いた。 今回はその続きということでJVMのチューニングについて書きたいと思う。 JVMチューニングって -Xms ・・・ ヒープ全体(New領域+Old領域)の初期値 -Xmx ・・・ ヒープ全体(New領域+Old領域)の最大値 くらいしか話題に上がらないし意識しないことが多い(気がする)。 でもホントはこれだけではダメで、前回のようにPermanent領域、New領域、Old領域を意識したチューニングが必要になる。 VMチューニングを考えるその前に・・・チューニングの話をする前にまずVMの起動モードについて話したいと思う。 VMには大きく以下2つの起動モードがあり、それぞれ以下のような特徴を持つ。 ◆クライアントVMモード 起動時間を短縮し、メモリサイズを縮小するように調整されている。 VM起動時
BTrace is a safe, dynamic tracing tool for the Java platfJava program (Java programming language. There is also integration with DTrace for the Op
以下 Java HotSpot VM Options の勝手翻訳と、追加で原文には載っていないオプションについて。Oracle JDK 6 を対象とした内容となっています。 このドキュメントは Java HotSpot 仮想マシンのパフォーマンス特性に影響を与える一般的なコマンドラインオプションと環境変数に関する情報を提供します。特に断りのない限りこのドキュメントのすべての情報は Java HotSpot Client VM と Java HotSpot Server VM の両方に適用されます。1.3.0 より古い JDK に Java HotSpot VM を移植したいユーザは Java HotSpot Equivalents of Exact VM Flags を参照して下さい。 Java HotSpot VM オプションのカテゴリ Java HotSpot VM が認識する標準オプ
Rolling Java GC ember 05, 2012 - San Francisco, CA If you are running a java process, you probably want to keep track of what the garbage collector is doing. You can access this via jconsole or by ails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps which
なんか秘伝のタレみたいになってきたので後世のために共有。 前提 Webアプリケーションを想定 TomcatなりJettyなりがListenするポートは外部からはアクセスできない ※-Xms -Xmx -Xmn あたりは搭載しているメモリ容量によって変える、-XX:MaxPermSize -XX:PermSizeは384mあれば十分だと思うけどロードするクラスの数次第なので要調整。 NOW=`date "+%Y%m%d-%H%M%S"` JAVA_OPTS="-server -Xms2g -Xmx2g -Xmn1g -XX:MaxPermSize=384m -XX:PermSize=384m \ -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=85 -XX:MaxTenuringThreshold=32 \ Javaプログラマーなら習得しておきたい J
日立オープンミドルウェアは、お客様の既存の財産を生かしながら、高い信頼性と柔軟性、自律性を備えたITシステムの実現を支えています。
HotSwap allows debuggers to update bytecode in place—but this feature comes with limitations. In this blog post, we look at how to reload clasithout dynamic class loaders using Java HotSwap, instrumentation JRebel. HotSwap allows debuggers to update class bytecode in place using the same class identity—in essence, a hot swap of active code. HotSwap allows debuggers to update bytecode
English version JVMでGCのログ出すじゃないですか。んで、その時↓みたいに -XX:+PrintGCTimeStamps っていうオプションを指定するじゃないですか。 TODAY=`date "+%Y%m%d-%H%M%S"` JAVA_OPTS="-server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=256m -XX:MaxPermSize=256m \ -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseParNewGC \ -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=32 -XX:TargetSurvivorRatio=85 \ -verbose:gc -X
ちょっとJVMってかMBeanの情報をぶっこぬくツールを作る必要があって、最初jythonで作ったんだけどjythonにはいろいろ失望した。で、同僚にJolokiaってのがあると教えてもらったのですが、これがなかなかイケてる。Jolokiaというのは、簡単に言うと、MBeanにHTTP経由でアクセスできるようにjmxの口を空けてくれるJavaのエージェント。こいつをJavaプログラムやJavaなミドルウェアに仕込んでやるだけでHTTPの口が空いて、そこ経由でいろいろできる。レスポンスはJSONで帰ってくる。 Cassandraの記事はまた次回www まぁ、今回もJolokiaに手を出したのもCassandra起因なんだけどね。Cassandraはレイテンシやリード/ライト数がMBeanに格納されてて、そいつを抜いてグラフ描画させたいなぁ、と。Cassandraのマネジメントツールとしては、
→その1 / スレッドダンプの取り方 ・その2 / Linux だと java プロセスがいっぱい!? ・その3 / Windows サービスとして登録している場合は? ・その4 / WebLogic Server とスレッドダンプ ・スレッドダンプの読み方 その1 – VM 内部スレッドと main スレッド スレッドダンプの取得方法、解析方法について網羅的に説明した資料はあまりないのでちょっと書いてみました。まとまったら侍のドキュメントに追加するつもりです。 スレッドダンプとは、 Java のプロセス内部で動作している各スレッドがそれぞれ何をしているか確認できるものです。 Java のプログラムがフリーズした場合や、パフォーマンス低下が見られる場合などに取得すると、どのスレッドが停滞しているのか、プログラム中具体的にどこで止まっているのかを解析できます。 スレッドダンプは任意のタイミン
今回のワンポイント アプリケーション・サーバから応答がない、いわゆる無応答状態は、ベンダのサポートセンターに寄せられる質問でも数が多いといわれている。無応答状態の原因の多くはGC(ガベージ・コレクション)にあり、これはGCチューニングにより解消可能だ。今回の記事では、GCチューニングにより無応答状態を解決する道のりを紹介していく。 サーバから応答がない、なぜ? あるとき、長時間レスポンスが返ってこないという事象が発生した。定期的な応答時間の監視から、無応答状態はアプリケーション・サーバを起動してから数時間経過すると発生し、数分間無応答状態が続いた後に再び正常に処理を開始することが分かった。 無応答の原因を探る 筆者はこの現象を見て、無応答が数分間で終わっていることからガベージ・コレクション(GC)が原因であるとの仮説を立てた。GC実行中、アプリケーション・サーバの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く