タグ

gcとJVMに関するOooのブックマーク (11)

  • JVMアプリケーションを運用する際のメジャーどころチューニングポイントメモ - yoskhdia’s diary

    JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす

    JVMアプリケーションを運用する際のメジャーどころチューニングポイントメモ - yoskhdia’s diary
  • Java 7 CMS GCの基本的な情報の整理 - nekop's blog

    バッチ処理などスループット重視のアプリケーションはデフォルトのパラレルGCで良いが、Java EEアプリケーションサーバなどレスポンスタイム重視のものやHadoopなどのクラスタ系ソフトウェアで死活監視に引っ掛る系などのstop the worldをなるべく避けたいいわゆるサーバ系ソフトウェアを運用する場合には、UseConcMarkSweepGCを付与して停止時間の短いCMS GCを使う。その場合にCMSのチューニングに踏み込もうとするとなんだか難しい記述がいっぱいで若干困るので、簡単なガイドをメモとして書いておく。 対象バージョンは以下。 $ java -version java version "1.7.0_51" OpenJDK Runtime Environment (fedora-2.4.5.1.fc20-x86_64 u51-b31) OpenJDK 64-Bit Serve

    Java 7 CMS GCの基本的な情報の整理 - nekop's blog
  • JJBugでJava VMの起動高速化の話をしました - nekop's blog

    Japan JBoss User Group - 灼熱の JBossでJava VMの起動高速化の話をしました。非圧縮jarによる高速化はみなさんも使っている有名なソフトウェアで採用されていますが、あまり知られていないチューニングだと思います。大抵の場合200%くらいの高速化ができます。 Java Drag Race Tuning from nekop CMS GCを使わないほうがちょっとだけ速い、とか効果が小さめなオプションについては特に解説していません。 あと話すの忘れてましたがScalaがチューニングしてもあまり変わっておらず、最初から高速なのはデフォルトでbootclasspathを使っているからです。bootclasspathはクラス検証されないので、-Xverify:noneが既に適用されてるのと一緒です。 紹介したのは主にクラスローディングを高速化することによりJavaで書か

    JJBugでJava VMの起動高速化の話をしました - nekop's blog
  • Javaアプリケーションサーバ 構築・運用の勘所

    Javaアプリケーションサーバの歴史はそれなりに長いですが、残念ながら運用時のトラブルは後を絶ちません。 トラブルを起こしにくい・起きても解決しやすくするにはどうすべきか、これだけは押さえておきたい構築・運用時のポイントを紹介します。Read less

    Javaアプリケーションサーバ 構築・運用の勘所
  • Netty 4 at Twitter: Reduced GC Overhead

    At Twitter, Netty (@netty_project) is used in core places requiring networking functionality. For example: Finagle is our protocol agnostic RPC system whose transport layer is built on top of Netty, and it is used to implement most services internally like Search TFE (Twitter Front End) is our proprietary spoon-feeding reverse proxy which serves most of public-facing HTTP and SPDY traffic using Ne

    Netty 4 at Twitter: Reduced GC Overhead
  • バーチャルパネル: 低レイテンシ環境でJavaを使う

    Todd L. Montgomery氏。Informatica Ultra Messagingのアーキテクチャ担当副社長で29Westの低遅延メッセージング製品の主任設計者および実装者。 Dr Andy Piper氏。最近、OracleからPush TechnologyにCTOとしてジョイン。 質問: 低レイテンシとは何を意味するのですか? リアルタイムと同じ意味でしょうか? 一般的に、高パフォーマンスなコードにどう関係しているのですか? Javaを使う利点として、豊富なライブラリ、フレームワーク、アプリケーションサーバなどへのアクセスや、使えるプログラマが多いことが挙げられます。こうした利点は低レイテンシコードにも当てはまるのでしょうか? もし当てはまらないなら、C++よりも何か利点はあるのでしょうか? JVMは並行プログラムをどのようにサポートしていますか? ガベージコレクションは少し

    バーチャルパネル: 低レイテンシ環境でJavaを使う
  • Javaガベージコレクションのエッセンス

    あるアプリケーションの作業にとって、スループットは最も重要なターゲットです。1つ例を挙げると、長時間実行されるバッチ処理のジョブです。ガベージコレクションが実行されている間、バッチジョブが時々1、2秒止まっても、ジョブ全体がすぐに完了すれば問題ありません。 人間が直接対話するアプリケーションから金融取引システムまで、実質的な他のすべての作業では、システムが1、2秒か、数ミリ秒以上反応しない場合、大変なことになり得ます。金融取引では、しばしば一貫した停止時間と引き換えに、スループットを犠牲にするだけの価値はあります。物理的に利用可能なメモリ量によって制限されるアプリケーションを持ったり、footprintを維持しなければならなかったりすることもあります。そのような場合、停止時間とスループットの面の両方で、パフォーマンスをあきらめなければなりません。 以下のトレードオフは度々起こります。 大部

    Javaガベージコレクションのエッセンス
  • JVMの末尾再帰の除去に関して - LLVMとコンパイラとVM

    > 例に出ているfactがすべて末尾再帰でない気ががが。 ありがとうございます。そのとおりですね、末尾再帰の除去っていう日語が誤解を招くのかも。。 Cコンパイラの末尾再帰の除去(Tail Recursion Elimination)は、 厳密な末尾再帰を対象にしてループに変換するのではなく、 再帰呼出をループに変換しようといろいろがんばるっぽいです。 JVMで同等のことをやろうとすると障害が多いのですが、 JVMで末尾再帰だけ対象にした場合も考えてみようと思います。

  • 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のブログ
  • JAVAヒープサイズ・GCチューニングのまとめ

    システム開発に役立ちそうな情報を日々メモしています。世の中の開発現場が少しでも平和になることを祈ります。 ■ 前提条件 ----------------------------------------------- JVMは、Sun Java (JDK 1.5-1.6)を想定。 ■ 目標 ----------------------------------------------- ・マイナーGC、フル GCがそれぞれ頻発しないこと。 ・フル GCの実行時間が1秒未満であること。 ・マイナーGCの実行時間が0.1秒未満であること。 ・連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 ・理想的な状態は、上記に加えて、フル GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジ

    Ooo
    Ooo 2011/08/10
  • GC改善に役立つ新しいJVMパラメータ | 関口宏司のLuceneブログ

    一定期間更新がないため広告を表示しています

    GC改善に役立つ新しいJVMパラメータ | 関口宏司のLuceneブログ
  • 1