タグ

ブックマーク / yohei-a.hatenablog.jp (4)

  • Java Mixed-Mode Flame Graphs で Java の CPU ネックをフルスタックで分析する - ablog

    Brendan Gregg (NETFLIX の Senior Performance Architect) 作の Java Mixed-Mode Flame Graphs を使うと Java のプロセスが CPU ネックのケースで、Java アプリケーションコード、JVM(HotSpot VM)、Linux Kernel のどのレイヤーのどの関数がボトルネックになっているかを簡単に特定することができます。 以下は GitHub - martint/jittest: Demonstrate JIT compiler issue in java 7 のワークロードを実行して Flame Graphs で可視化したものです。 以下は Java One 2015 での Brendan Gregg のスライドです(YouTube もあります)。 JavaOne 2015 Java Mixed-Mo

    Java Mixed-Mode Flame Graphs で Java の CPU ネックをフルスタックで分析する - ablog
    kimutansk
    kimutansk 2016/05/09
    おー、Flame Graphs、Javaで各レイヤ含めて出力できますか。
  • ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog を書きましたが、awk file > file より cat file|awk > file が速い環境は稀なようなので、私の環境でなぜ cat file|awk > file のほうが速いのか調べてみました。プロセススケジューラが関係しているようです。 ↑はPerf + Flame Graphs で、awk file > file 実行時のコールスタックと所要時間を可視化したものです。 結論(たぶん) SSDの暗号化・復号をカーネルスレッドで行なっているのと、プロセススケジューラが awk とカーネルスレッドを同じ CPU にスケジューリングしていた(他に空いている CPU があるのに)。 awk file > file では暗号化データを復号するカーネルスレッドと awk のプロセスをプロセススケ

    ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
    kimutansk
    kimutansk 2015/08/04
    なるほど・・ ただ、何故awkプロセスはKernelと同じCPU上で動作してしまうんでしょうねぇ。
  • perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog

    Linuxでddで1GBのファイルを作成し perf でプロファイリングし、Flame Graph (炎のグラフ?)にして可視化したものです。 Flame Graphs は perf(Linux)、SystemTap(Linux)、DTrace(Solaris、Oracle Linux(UEK)、Mac OS X、FreeBSD)、XPerf.exe(Windows) などでのプロファイリング結果を可視化して最も使われているコードパスを早く正確に特定することができます。実体はプロファイリング結果をグラフ(SVG)に変換する Perl スクリプトです。 下から上に行くほどコールスタックが深く、左から関数名のアルファベット順でソートされています。一番上で横幅が広い関数がCPUを長く使っています。今回は "_aesni_enc1" つまり暗号化がボトルネックになっていることがわかります。 システ

    perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog
    kimutansk
    kimutansk 2015/07/07
    Flame Graph、こう示すとどこでどう時間を使っているかわかりやすいですね。
  • 性能問題の切り分け方法について考えてみる - ablog

    つれづれなるままに、日ぐらしパソコンに向かひて、心にうつりゆくデータベースの性能問題の切り分け方法をそこはかとなく書き付くれば、あやしうこそ物狂ほしけれ。なエントリ(書きかけ)。一度、脳内をフラッシュしてからまとめるべし。 性能問題による影響 性能問題による影響を以下の2つに分類する。 システム全体が遅い 一部の処理が遅い 性能問題の原因 性能問題の原因を以下の2つに分類する。 交通量が多い 単純に交通量が多くて渋滞している 例)年末年始やお盆の帰省ラッシュやUターンラッシュ 経路の途中で詰まっている 車線減少や通行止めなどで渋滞している 例)年度末の工事による車線減少、飲酒の検問、交通事故による通行止めなどで経路のどこかで詰まっている 切り分け手順の分類 システム全体が遅いケースと一部の処理が遅いケースで切り分け手順は変わる。 切り分けはOSレイヤーとデータベースレイヤーの2つの観点から

    性能問題の切り分け方法について考えてみる - ablog
    kimutansk
    kimutansk 2012/12/05
    とりあえず、基本の流れはこれでOKですねぇ・・
  • 1