タグ

jvmに関するmura-_-miのブックマーク (12)

  • Optimizing Java

    Read it now on the O’Reilly learning platform with a 10-day free trial. O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers. Performance tuning is an experimental science, but that doesn’t mean engineers should resort to guesswork and folklore to get the job done. Yet that’s often the case. With this practic

    Optimizing Java
    mura-_-mi
    mura-_-mi 2018/02/26
    "Java Performance" の実践編ぽいやつ
  • GitHub - coderplay/perfj: PerfJ is a wrapper of linux perf for java programs.

    PerfJ is a wrapper of linux perf for java programs. As Brendan Gregg's words In order to profile java programs, you need a profiler that can sample stack traces. There has historically been two types of profilers: System profilers: like Linux perf, which shows system code paths (eg, JVM GC, syscalls, TCP), but not Java methods. JVM profilers: like hprof, LJP, and commercial profilers. These show J

    GitHub - coderplay/perfj: PerfJ is a wrapper of linux perf for java programs.
  • Java でつくる�低レイテンシ実装の技巧�

    2. 自己紹介 • 山崎良祐 (やまざき・りょうすけ) • Twitter: nappa • ソネット・メディア・ネットワークス所属 (プロバイダの So-net の子会社) • 日の発表および発言は個人の見解であり、 所属する組織の公式見解ではありません。 3. いちおう Oracle Contributor • mysql-connector-java のバグ修正に貢献 • 詳しくは 2016年10月リリースの 5.1.40 の ChangeLog 参照 • Tシャツもらった! • PostgreSQLのイベントに 行くときに着ようと思ってる

    Java でつくる�低レイテンシ実装の技巧�
  • Java CPU Sampling Using hprof

    Recent posts: 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » TensorFlow Library Performance 19 Mar 2022 » Why Don't You Use ... 26 Sep 2021 » The Speed of Time 06 Sep 2021 »

  • JDK8(Linux 64bit)のデフォルトヒープサイズ - n-agetsumaの日記

    Oracleの公式ドキュメントには、-Xmxが未指定であった場合のエルゴノミクスによる最大ヒープサイズは『32GBを上限として、物理メモリの4分の1』書かれている。32GBは-XX:-UseCompressedOopsにより圧縮Oopを明示的に無効にした場合の最大デフォルトヒープサイズで、何もオプションを付けずに起動した場合は29GBが上限。 ヒープサイズの決定はarguments.cppのArguments::set_heap_size()で計算されている。デフォルトの最大および初期ヒープサイズは、物理メモリ量により異なる。 デフォルト最大ヒープサイズ(-Xmx) 物理メモリが248MB以下の場合 物理メモリの2分の1。 248MBは-XX:MaxHeapSize(デフォルト124MB) x -XX:MinRAMFraction(デフォルト2)の値。 物理メモリが248MBより大きい場合

    JDK8(Linux 64bit)のデフォルトヒープサイズ - n-agetsumaの日記
  • JDK8からあるちょっと嬉しいGCログオプション - n-agetsumaの日記

    JDK8およびJDK8u20では、GCログに関連する2つの便利な機能が追加されている。いずれの機能も2014/8現在最新のJDK7 update 67 には含まれていないが、JDK7u80にてバックポートされる予定。 GCログにpidと日付を含める (JDK8より) JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/wildfly/gc_%p_%t.log" => 実際のファイル名例 : gc_pid31455_2014-08-31_14-20-16.log.0GCログのフォーマットに%pを入れるとpid形式のプロセスIDが付与される。また%tを付与すると"_2014-08-31_14-20-16"のようにGCログファイルを作成した日付時分秒が追加される。かつてGCログはJavaを再起動すると同じファイルが上書きされて消えてしまうため、出力先を-Xloggc:g

    JDK8からあるちょっと嬉しいGCログオプション - n-agetsumaの日記
  • JavaのCPUプロファイリング - nekop's blog

    JBoss / WildFly (全部俺) Advent Calendar 2013の19日目です。Java一般なトピック寄りで。 自分で主に利用するJavaのプロファイラはYourKitなのですが、YourKitを購入していない場合で性能問題を解析するときとかに何が使えるかなぁと思って調べてみました。 $ uname -a Linux localhost.localdomain 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ java -version java version "1.7.0_45" OpenJDK Runtime Environment (fedora-2.4.3.0.fc20-x86_64 u45-b15) OpenJDK 64-Bi

    JavaのCPUプロファイリング - nekop's blog
  • Javaトラブルに応じた初動対応のまとめ - n-agetsumaの日記

    Javaトラブルでは『情報がなくて、再現もなかなかしません』といった状況に陥ることがある。このような状況を回避するために、以下の3つの代表的なトラブルを例に、アプリケーションサーバを再起動する前に何を取得すれば良いのかをまとめてみる。 アプリケーションから応答がない アプリケーションが遅い ヒープメモリが足りない(OutOfMemoryErrorの発生) アプリケーションから応答がない 取得する情報 スレッドダンプ データ取得方法 スレッドダンプとは、コマンド実行時点でのJavaスレッド実行状態を出力したものである。応答がない場合、何らかの要因によりどこかで処理が止まっていることが想定される。スレッドダンプは『どこで止まっているのか?』を切り分けるのに大切な情報である。 取得方法はJDKのバージョンによって色々ある。 kill -3 <pid> (少なくとも1.4.2にはある〜JDK7でも

    Javaトラブルに応じた初動対応のまとめ - n-agetsumaの日記
  • Java 8 に辿り着くまでに起きた 不思議なこと - Indeed エンジニアリング・ブログ

    Indeed では Java 7 から Java 8 へ移行しています。 (現段階では、移行は完了しております。)段階にわけて移行しており、まず Java 7でコンパイルされたバイナリを JRE 8 (Java 8 の実行環境)で実行するところから始めました。一度に全てを切り替えてしまうのではなく、いくつかのカナリアテストアプリを使用して、どんな問題が見つかりそうか様子を見ました。 私たちは、求人検索のウェブアプリを一つ目のカナリアテストとして選びました。昨年の 5 月に、私たちは番環境にある 1 件の求人検索サーバーを JRE 8 に切り替えました。何も問題なく、 QA 環境で JRE 8 を数週間使用していましたが、番環境をJRE 8 に切り替えたところ、システム負荷は 5 (通常のレベル) から 20 (異常なレベル)まであがりました。進める前に、まず修正が必要なくらいはっきりと

    Java 8 に辿り着くまでに起きた 不思議なこと - Indeed エンジニアリング・ブログ
    mura-_-mi
    mura-_-mi 2017/06/02
    codecache の逼迫でレイテンシに影響していたという話.この突き詰めた感じ凄いなぁ.Java パフォーマンスに書いてあったことだし,しっかり身に着けなきゃ.
  • Java7からのjcmdのススメ(ThreadDump/HeapDump他) - Qiita

    Java7(JDK1.7)からjcmdという診断ツールが追加されました。 元はJrockitというVM(Oracleが買収したBEAが開発してきてたJavaVM)に付属していたjrcmdを移植したツールです。 Java6までの方法も継続して使えますが、折角なのでjcmdを使った方法も試してましょう。 (※JDK7u4以降で使用可能です。) JavaプロセスID取得

    Java7からのjcmdのススメ(ThreadDump/HeapDump他) - Qiita
  • Spring Boot Memory Performance

    It has sometimes been suggested that Spring and Spring Boot are "heavyweight", perhaps just because they allow apps to punch above their weight, providing a lot of features for not very much user code. In this article we concentrate on memory usage and ask if we can quantify the effect of using Spring? Specifically we would like to know more about the real overhead of using Spring compared to othe

    Spring Boot Memory Performance
    mura-_-mi
    mura-_-mi 2016/11/07
    Spring Boot のパフォーマンス計測.その気になったら読む.
  • ここが大変だよ、JavaのGC/メモリ管理

    Webシステムを安定稼働させるには、考慮しなければならないことは数々存在する。システムの適切なサイジングを行うことも、その1つだ。 今回は、その中でもJavaVMのメモリのサイジング(見積もり)とGC(ガベージ・コレクション)に着目して説明する。 現象の見え方 今回は、以下の問題についての話だ。 メモリサイジングをミスした場合、業務ピーク時のGCの多発や長期化からこの現象に陥る場合がある。CPU利用率が100%に張り付いて性能が出ない場合は、GCが原因かを疑う必要がある。その場合、まずはGCログを参照し、GCの処理時間や発生頻度から1分ごとのGC処理の占有率を確認してみるとよい。 占有率が大きい場合、アプリケーションの処理やメモリのサイジングを見直す必要がある。以降では、GCを考慮したメモリのサイジングについて説明する。 JavaVMのメモリ空間はどうなっているのか 初めに、Cosmine

    ここが大変だよ、JavaのGC/メモリ管理
  • 1