Tezosノードのプロファイリング

提供: tezos-wiki
移動先: 案内検索

Tezosノードのプロファイリング[編集]

OCamlヒープのメモリプロファイリング / sub>

  • statmemprofパッチでOCamlスイッチをインストールする:

4.04.2 + statistical-memprof または 4.06.0 + statistical-memprof

  • statmemprof-emacs をインストールします。
  • ノードにstatmemprofをロードできるようにする。

メインパッケージへの依存として statmemprof-emacs パッケージを追加し、 node_main.mlに<code> let()= Statmemprof_emacs.start 1E-4 30 5 を追加します。 </code>ファイルです。

引数:

  • sampling_rate はプロファイラのサンプリングレートです。適切な値: 1e-4
  • callstack_size は、サンプリングされた各割り当てごとに取得されるコールスタックのフラグメントのサイズです。
  • min_sample_print は、割り当ての場所が表示されない最小サンプル数です。
  • これをあなたの .emacs に追加することで、sturgeonをemacsにロードする:

(opam-share(ignore-errors(car) "プロセスライン" opam "" config "" var "" share ")))))))) ?(および(およびopam-share(ファイルディレクトリ-p opam-share)) ??(add-to-list 'load-path(展開ファイル名 "emacs / site-lisp" opam-share))))

( 'チョウザメが必要です)</pre>

  • ノードを起動し、チョウザメで接続します。

プロセスがpid 1234 で起動された場合

 M-x sturgeon-connect
tezos-nodememprof.1234.sturgeon 

(タブ補完はソケット名を見つけるために働く)

CヒープのプロファイリングC <ヒント> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ>?</サブ> </サブ> </サブ> ????</sub>?</sub>

  • valgrind massif-visualizer をインストールします。
 valgrind --tool =マジフのtezos-node run ... 
  • Ctrl-C で停止してから表示してください
 massif-visualizer massif.out.pid 

パフォーマンスプロファイリング ?? ~~ </sub>

  • perf(Debianの linux-perf パッケージをインストールしてください。

現在のカーネル用のパッケージが存在しない場合は、以前のバージョンを使用することができます。カーネルが4.9の場合は perf コマンドを perf_4.9 に置き換えます)。

  • ノードを実行し、pidを探します。
  • perf record -p pid --call-stack dwarf でperfをアタッチします。

次に、 Ctrl-C でキャプチャを停止します。これは、多くのデータを表すことができます。あまり長くはしないでください。これが多すぎると、 - call-stack dwarf を削除して管理しやすいものにすることができますが、情報の解釈は難しくなります。

  • 結果を perf report で表示します。