SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Copyright © 2012 NTT DATA Corporation 
perfを使ったPostgreSQLの解析 
〜~前編 
2012年年9⽉月29⽇日(⼟土)
Agenda 
u 前編 
1. はじめに 
2. プロファイリングとは? 
3. perfとは 
4. perfの仕組み 
5. perfと他のパフォーマンス解析ツールとの⽐比較 
6. perfの導⼊入と使い⽅方 
7. perfを使ってみよう 
8. まとめ 
Copyright © 2012NTT DATA Corporation 2
Agenda 
u 後編 
1. 前編の復復習 
2. perfを使ったプロファイリングの流流れ 
3. PostgreSQLをプロファイリングしてみよう 
4. perfの使いどころ 
5. まとめ 
Copyright © 2012NTT DATA Corporation 3
1. はじめに 
Copyright © 2012 NTT DATA Corporation 4
あらためまして⾃自⼰己紹介 
⽒氏名 
Copyright © 2012 NTT DATA Corporation 5 
Copyright © 2011 NTT DATA CORPORATION 
NTTデータ  
基盤システム事業本部 
システム⽅方式技術ビジネスユニット 
江川 ⼤大地 
所属 
やっていたこと 
年年代やったこと 
-‐‑‒2009歴史のお勉強(⼤大学時代) 
2009-‐‑‒2011Webシステム開発(Javaなど) 
2011-‐‑‒現在PostgreSQL関係 
近況 
沖縄に⾏行行ってました。 
Twitter 
@daiti0804
本⽇日のお題 
お題perfを使ったPostgreSQLの解析(前編) 
今⽇日説明 
することperfの仕組みや使い⽅方 
Copyright © 2012 NTT DATA Corporation 6
参考資料料 
n 本⽇日の講演に当たって参考にした資料料等 
n perf ソースコード 
̶— [Linuxカーネルソースのルート]/tools/perf配下 
n perf ドキュメント 
̶— [Linuxカーネルソースのルート]/tools/perf/Documentation 
n perf wiki 
̶— https://perf.wiki.kernel.org/index.php/Main_̲Page 
n 『Linuxカーネル Hacks 
 ―パフォーマンス改善、開発効率率率向上、省省電⼒力力化のためのテクニック』 
⾼高橋 浩和 (監修), 池⽥田 宗広, ⼤大岩 尚宏, 島本 裕志, ⽵竹部 晶雄, 平松 雅⺒巳 
(著) 
 
Copyright © 2012NTT DATA Corporation 7
2. プロファイリングとは? 
Copyright © 2012 NTT DATA Corporation 8
トラブルシューティングとは? 
障害発⽣生解析対処 
現状把握切切り分け原因特定暫定対処根本解決 
障害を避けるた 
めに暫定的な対 
処を実施する。 
運⽤用中に取得し 
た情報や顧客か 
らのヒアリング 
を通して、実際 
に何が起きてい 
るのかを把握す 
る。 
運⽤用中に取得し 
た情報や、シス 
テムのログ、シ 
ステムが出すそ 
の他の情報を元 
に、どこに問題 
があるのかを特 
定する。 
問題がなぜ起き 
たのか、どう 
いった処理理が原 
因かを特定する。 
同様の障害が発 
⽣生しないように 
根本的な対処を 
⾏行行う。 
Copyright © 2012 NTT DATA Corporation 9
トラブルシューティングとは? 
障害発⽣生解析対処 
現状把握切切り分け原因特定暫定対処根本解決 
障害を避けるた 
めに暫定的な対 
処を実施する。 
運⽤用中に取得し 
た情報や顧客か 
らのヒアリング 
を通して、実際 
に何が起きてい 
るのかを把握す 
る。 
運⽤用中に取得し 
た情報や、シス 
テムのログ、シ 
ステムが出すそ 
の他の情報を元 
に、どこに問題 
があるのかを特 
定する。 
問題がなぜ起き 
たのか、どう 
いった処理理が原 
因かを特定する。 
同様の障害が発 
⽣生しないように 
根本的な対処を 
⾏行行う。 
perfを使うタイミング 
Copyright © 2012 NTT DATA Corporation 10
解析とは? 
n 解析とは 
̶— ログやエラーメッセージなどシステムから得られる情報から、何が起きている 
かを把握し、どこに問題があるのかを特定し、その原因を突き⽌止めること。 
n なぜ解析をするのか 
̶— やみくもに対策を打っても、弾があたらないため。原因を特定することで、適 
切切な対策を打つために実施する。 
n 解析⼿手法の例例 
̶— ログ解析 
̶— プロファイリング 
Copyright © 2012 NTT DATA Corporation 11
プロファイリングとは 
n プロファイリングとは 
̶— プログラムのどの部分がボトルネックとなって処理理に時間がかかっているのか 
など、障害の原因を特定すること。 
Copyright © 2012 NTT DATA Corporation 12
3. perfとは 
Copyright © 2012 NTT DATA Corporation 13
perfとは 
n perf(Performance Counters for Linux)とは? 
- Linuxカーネル上の統合パフォーマンスツール 
- イベント数計測にCPUに内蔵されているレジスタを使⽤用 
- perf tools (ツールの集合体、サブコマンド群) 
 
n イベントとは?? 
- perfの計測対象 
Copyright © 2012 NTT DATA Corporation 14
イベントの分類 
分類説明具体例例 
Hardware eventプロッセサで計測されるイ 
ベント。 
cpu-‐‑‒cycles, cache-‐‑‒missesなど 
Software eventカーネルのカウンタで計測 
されるイベント。 
cpu-‐‑‒clock, page-‐‑‒faultsなど 
Hardware cache event 
 
プロッセサで計測されるイ 
ベント。 
 
L1-‐‑‒dcache-‐‑‒load-‐‑‒misses, 
branch-‐‑‒loadsなど 
Tracepoint eventカーネルの処理理を記録する 
ためにカーネルに埋め込ま 
れたトレースポイント。 
sched:sched_̲stat_̲runtime, 
syscalls:sys_̲enter_̲socket 
など 
Copyright © 2012 NTT DATA Corporation 15
プロファイラとしてありたい姿 
WHAT DO WE CARE? 
• The Linux Performance Events Subsystem provides a 
low overhead way to measure the workloads of a single  
application or the full system 
 
• Itʼ’s at least an order of magnitude faster than an 
instrumenting profiler 
 
• It provides far more information compared to statistical  
profiler 
Roberto A. Vitillo (ローレンス・バークレー国⽴立立研究所)の“Future computing in particle 
physics”カンファレンスにおける講演資料料「PERFORMANCE TOOLS DEVELOPMENTS」 
(2011年年6⽉月16⽇日)より。 
Copyright © 2012 NTT DATA Corporation 16
プロファイラとしてありたい姿 
§ 低いオーバヘッド 
- 解析対象のシステムは既に何らかのオーバヘッドが発⽣生している 
ことが多い。そこにさらに負荷がかかるツールを使おうとしても、 
ツールが動かなかったり、システムがダウンする可能性もある。 
§ 多くの情報 
- トラブルの原因はいっぱい考えられるから。 
§ ⾒見見やすい表⽰示(多くの情報の中から取捨選択が可能) 
- なにがどう書いてあるのか分からないと、トラブルの原因が表⽰示 
されていても⾒見見落落とす可能性もある。 
 
Copyright © 2012 NTT DATA Corporation 17
perfについて〜~その他 
§ いつLinuxカーネルに統合されたの? 
- Linuxカーネル 2.6.31  
§ 誰が作ったの? 
- Ingo Molnar⽒氏が中⼼心となって開発が進められた。 
 
§ メンテナは? 
- Ingo Molnar⽒氏(Red Hat) 
- Arnaldo Carvelho de Melo⽒氏(Red Hat)  
 
Copyright © 2012 NTT DATA Corporation 18
4. perfの仕組み 
Copyright © 2012 NTT DATA Corporation 19
perfのフロー 〜~イベントの指定 
ユーザ# perf stat XX 
カーネル 
 
“perf_̲event_̲open”( 
システムコール)で処 
理理を依頼 
Software eventの場合 
カウンタ 
レジスタに取得するイベントを設定 
Hardware event 
の場合 
ハードウェア(レジスタ) 
 
イベント指定レジスタ 
カウンタレジスタ 
Copyright © 2012 NTT DATA Corporation 20
perfのフロー 〜~データの保存 
ユーザ# perf stat XX 
カーネル 
 
Software eventの場合 
カウンタ 
レジスタから値を取得。 
Hardware event 
の場合 
ハードウェア(レジスタ) 
 
イベント指定レジスタ 
カウンタレジスタ 
Copyright © 2012 NTT DATA Corporation 21
perfのフロー 〜~データの保存 
ユーザ# perf stat XX 
加⼯工して値を返す。 
カーネル 
 
カウンタ 
レジスタから値を取得。 
ハードウェア(レジスタ) 
 
イベント指定レジスタ 
カウンタレジスタ 
Copyright © 2012 NTT DATA Corporation 22
perfの仕組み 
perfでは、perf_̲event_̲openというシステムコールを利利⽤用し 
てカーネルから値を取ってきている。 
■ include/linux/syscalls.h より 
: 
: 
asmlinkage long sys_̲perf_̲event_̲open( 
struct perf_̲event_̲attr _̲_̲user *attr_̲uptr, 
pid_̲t pid, int cpu, int group_̲fd, unsigned long flags); 
: 
:  
■ tools/perf/perf.h より 
: 
: 
sys_̲perf_̲event_̲open(struct perf_̲event_̲attr *attr, 
pid_̲t pid, int cpu, int group_̲fd, 
unsigned long flags) 
{ 
attr-‐‑‒size = sizeof(*attr); 
return syscall(_̲_̲NR_̲perf_̲event_̲open, attr, pid, cpu, 
group_̲fd, flags); 
} 
: 
:  
Copyright © 2012 NTT DATA Corporation 23
5. perfと他のパフォーマンス解析ツールとの⽐比較 
Copyright © 2012 NTT DATA Corporation 24
解析ツールってどんなものがある? 
§ 解析ツール 
- Oprofile 
- ftrace 
- System tap 
- …  
 
Copyright © 2012 NTT DATA Corporation 25
他のツールとの⽐比較 
perfOprofileSystemTap 
オーバヘッド低低スクリプト次第 
(漏漏れなく追跡する) 
情報量量多中多 
情報の取捨選択可能可能可能 
Copyright © 2012 NTT DATA Corporation 26
他のツールとの⽐比較 
perfOprofileSystemTap 
オーバヘッド低低⾼高 
(漏漏れなく追跡する) 
情報の取捨選択可能可能不不可能 
動的監視可能不不可能可能 
指向性中 
(システム全体も処理理 
個別のプロファイリ 
ングも可能) 
低 
(システム全体のプロ 
ファイリング向き) 
⾼高 
(アドホックなプロ 
ファイリング向き) 
危険性低低⾼高 
(スクリプト暴暴⾛走の可 
能性) 
Copyright © 2012 NTT DATA Corporation 27
6. perfの導⼊入と使い⽅方 
Copyright © 2012 NTT DATA Corporation 28
今回の講演に当たって使⽤用した環境 
ソフトウェア名バージョン備考 
Ubuntu12.04 
Linux kernel3.2.0 
VirtualBox4.1.22仮想化ソフト 
VirtualBox 
n VirtualBox上のサーバ 
OS:Ununtu 12.04 
カーネル:Linux kernel3.2.0 
 
Macbook Air 
Copyright © 2012 NTT DATA Corporation 29
【参考】perfがサポートされているかの確認 
§ カーネルバージョンの確認 
- Linux kernel 2.6以上でサポートされている 
※コマンドによっては、より新しいバージョンのみにしか対応していないものもある。 
 
§ コンフィギュアオプションの確認 
- CONFIG_̲PERF_̲xxxx というオプションが 
有効になっていれば、perf がサポートされている。 
 
※コンフィギュアオプションの確認⽅方法 
/boot配下の” config-‐‑‒カーネルバージョン-‐‑‒generic-‐‑‒pae”ファイルを確認。 
 
Copyright © 2012NTT DATA Corporation 30
perfの導⼊入 
n perfをインストールするには、以下の2つの⽅方法がある。 
1. apt-‐‑‒get, yumを使う⽅方法 
 
2. ソースからインストールする⽅方法 
Copyright © 2012 NTT DATA Corporation 31
perfの導⼊入〜~1.apt-‐‑‒getによるインストール 
§ 準備 
- linux-‐‑‒tools-‐‑‒commonが必要 
Copyright © 2012 NTT DATA Corporation 32
perfの導⼊入〜~1.apt-‐‑‒getによるインストール 
§ perfのインストール 
- 以下のコマンドを⼊入⼒力力 
 
# sudo apt-‐‑‒get install linux-‐‑‒tools-‐‑‒3.2.0-‐‑‒30 
 : 
以下のパッケージが新たにインストールされます: 
linux-‐‑‒tools-‐‑‒3.2.0-‐‑‒30 
 : 
linux-‐‑‒tools-‐‑‒3.2.0-‐‑‒30 (3.2.0-‐‑‒30.48)を設定しています... 
 : 
 
Copyright © 2012 NTT DATA Corporation 33
perfの導⼊入〜~2.ソースからのインストール 
§ 準備 
- libdw-‐‑‒dev or elfutils-‐‑‒libelf-‐‑‒devel が必要 
Copyright © 2012 NTT DATA Corporation 34
perfの導⼊入〜~2.ソースからのインストール 
§ perfのインストール 
- 以下のコマンドを⼊入⼒力力 
 
# sudo apt-‐‑‒get install linux-‐‑‒source 
 : 
以下のパッケージが新たにインストールされます: 
linux-‐‑‒source linux-‐‑‒source-‐‑‒3.2.0 
 : 
linux-‐‑‒source-‐‑‒3.2.0を設定しています… 
 : 
# tar xjf linux-‐‑‒source-‐‑‒3.2.0.tar.bz2  
# cd カーネルソースのルート/tools/perf 
# make 
# make install 
Copyright © 2012 NTT DATA Corporation 35
動作確認 
§ 動作確認 
- 以下のコマンドを⼊入⼒力力 
 
# perf list 
List of pre-‐‑‒defined events (to be used in -‐‑‒e): 
cpu-‐‑‒cycles OR cycles [Hardware event] 
stalled-‐‑‒cycles-‐‑‒frontend OR idle-‐‑‒cycles-‐‑‒frontend [Hardware event] 
stalled-‐‑‒cycles-‐‑‒backend OR idle-‐‑‒cycles-‐‑‒backend [Hardware event] 
instructions  [Hardware event] 
: 
: 
cpu-‐‑‒clock [Software event] 
task-‐‑‒clock [Software event] 
: 
:  
perfで利利⽤用可能なプロファイルイベントの 
⼀一覧が、表⽰示されれば、ok!! 
Copyright © 2012 NTT DATA Corporation 36
perf の使い⽅方 
§ perfの使い⽅方 
 
# perf コマンド [オプション] 
§ 代表的なコマンド 
 
コマンド説明 
perf annotateperf recordで作成したperfのデータを読み込み、 関数で呼び出した命令令レベ 
ルのトレース結果を表⽰示する。 
perf probe新たに動的なトレースポイント(イベント)を定義する。 
perf recordイベントの記録を⾏行行う。 
perf reportperf recordで記録したイベントをプロンプトに表⽰示する。 
perf scriptperf recordで作成したperfのデータを読み込み、 トレース結果を表⽰示する。 
perf stat引数に指定したコマンドのパフォーマンスカウンタの値を表⽰示する。 
perf topLinuxコマンドの”top”のように動的にシステム監視を⾏行行う。 
Copyright © 2012 NTT DATA Corporation 37
イベントの指定 
perf では、1回の実⾏行行ごとに単⼀一のもしくは、複数のイベント指定が可能で 
ある。以下のように、-‐‑‒eオプションに続いて、イベント名を記述する。 
n 単⼀一イベント指定 
# perf stat -‐‑‒e cycles dd if=/dev/zero of=/dev/null count=100000 
n 複数イベント指定 
# perf stat -‐‑‒e cycles:uk –e faults dd if=/dev/zero of=/dev/null count=100000 
Copyright © 2012 NTT DATA Corporation 38
7. perfを使ってみよう 
Copyright © 2012 NTT DATA Corporation 39
perf stat 
perf statは、指定したコマンドのパフォーマンスカウンタの値を表⽰示できる。 
perf record/reportと違い、指定したコマンドの総合的な統計情報を得るこ 
とが可能である。 
n こんな時に便便利利 
̶— あるコマンドについて、総合的な(複数のイベントにまたがった)性能測 
定情報が知りたい。 
̶— 性能の悪い処理理について、何が原因なのか知りたい。 
̶— 性能改善(暫定対処、本格対処)を⾏行行うにあたっての数値⽬目標を出したい。 
Copyright © 2012 NTT DATA Corporation 40
perf stat 〜~オプション 
§ 代表的なオプション 
コマンド説明 
-‐‑‒eイベントを指定する。 
-‐‑‒pプロセスIDを指定する。 
-‐‑‒tスレッドIDを指定する。 
-‐‑‒a全CPU上のプロセスを指定する。 
-‐‑‒C特定のCPU上のプロセスを指定する。 
-‐‑‒B計測結果にカンマを⼊入れて表⽰示する。(ex.1,000) 
Copyright © 2012 NTT DATA Corporation 41
perf stat 〜~実⾏行行例例 
n perf stat の実⾏行行例例を以下に⽰示す。 
# perf stat -‐‑‒B dd if=/dev/zero of=/dev/null count=1000000 
 
1000000+0 レコード⼊入⼒力力 
1000000+0 レコード出⼒力力 
512000000 バイト (512 MB) コピーされました、 0.433087 秒、 1.2 GB/秒 
 
Performance counter stats for 'dd if=/dev/zero of=/dev/null count=1000000': 
 
436.626492 task-‐‑‒clock # 0.957 CPUs utilized  
24 context-‐‑‒switches # 0.000 M/sec  
0 CPU-‐‑‒migrations # 0.000 M/sec  
252 page-‐‑‒faults # 0.001 M/sec  
not supported cycles  
not supported stalled-‐‑‒cycles-‐‑‒frontend  
not supported stalled-‐‑‒cycles-‐‑‒backend  
not supported instructions  
not supported branches  
not supported branch-‐‑‒misses  
 
0.456183302 seconds time elapsed 
※ 特にイベント指定しなければ、 perf stat は上記のイベントの集計をする 
Copyright © 2012 NTT DATA Corporation 42
perf top 
perf topは、リアルタイムでのプロファイリングが可能にするコマンドであ 
る。Linuxコマンドの top のように動的にシステム監視を⾏行行うことができる。 
n こんな時に便便利利 
̶— システム全体のプロファイリングを⾏行行いたい。 
̶— リアルタイムで監視を⾏行行いたい。 
Copyright © 2012 NTT DATA Corporation 43
perf top〜~使⽤用例例 
n perf topの実⾏行行例例を以下に⽰示す。 
# perf top 
Copyright © 2012 NTT DATA Corporation 44
perf top〜~オプション 
§ 代表的なオプション 
コマンド説明 
-‐‑‒eイベントを指定する。 
-‐‑‒pプロセスIDを指定する。 
-‐‑‒tスレッドIDを指定する。 
-‐‑‒a全CPU上のプロセスを指定する。 
-‐‑‒C特定のCPU上のプロセスを指定する。 
Copyright © 2012 NTT DATA Corporation 45
perf record  perf report 
perf recordは、イベントの記録を⾏行行う。記録したデータは、データファイル 
(デフォルト名はperf.data)として保存される。そのデータファイルは、 
perf reportで⾒見見ることができる。 
n こんな時に便便利利 
̶— あるコマンドについての動作を詳細に記録したい。 
̶— 怪しい処理理について、詳細に解析したい。 
̶— 性能の悪い処理理について、何が原因なのか知りたい。 
Copyright © 2012 NTT DATA Corporation 46
perf report〜~オプション 
§ 代表的なオプション 
コマンド説明 
-‐‑‒eイベントを指定する。 
-‐‑‒o出⼒力力ファイル名を指定する(デフォルトは”perf.data”) 
-‐‑‒pプロセスIDを指定する。 
-‐‑‒tスレッドIDを指定する。 
-‐‑‒a全CPU上のプロセスを指定する。 
-‐‑‒C特定のCPU上のプロセスを指定する。 
Copyright © 2012 NTT DATA Corporation 47
perf record〜~オプション 
§ 代表的なオプション 
コマンド説明 
-‐‑‒i⼊入⼒力力ファイル名を指定する(⼊入⼒力力しないとカレンとディレクトリ 
の”perf.data”を⼊入⼒力力ファイルとする) 
-‐‑‒spidなどでソートする。 
Copyright © 2012 NTT DATA Corporation 48
perf record  perf report 〜~使⽤用例例 
n perf recordの実⾏行行例例を以下に⽰示す。 
# perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s 
stress: info: [5843] dispatching hogs: 4 cpu, 2 io, 2 vm, 0 hdd 
stress: info: [5843] successful run completed in 10s 
[ perf record: Woken up 1 times to write data ] 
[ perf record: Captured and wrote 0.247 MB perf.data (~∼10775 samples) ] 
 
# ls 
perf.data 
Copyright © 2012 NTT DATA Corporation 49
perf record  perf report 〜~使⽤用例例 
n perf reportの実⾏行行例例を以下に⽰示す。 
オーバヘッドコマンドオブジェクト名シンボル名 
Copyright © 2012 NTT DATA Corporation 50
perf record  perf report 〜~Tips 
n perf recoerdで得られるデータファイル(perf.data)は、同名のファイルが 
あっても、上書きされずに、古いファイルを”perf.data.old”として対⽐比して 
くれる。ただし、”perf.data.old”までは退避処理理をしてくれないので注意。 
# perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s 
stress: info: [5843] dispatching hogs: 4 cpu, 2 io, 2 vm, 0 hdd 
stress: info: [5843] successful run completed in 10s 
[ perf record: Woken up 1 times to write data ] 
[ perf record: Captured and wrote 0.247 MB perf.data (~∼10775 samples) ] 
 
# ls 
perf.data 
 
# perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s 
: 
: 
# ls 
perf.data perf.data.old 
 
# perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s 
: 
: 
# ls 
perf.data perf.data.old 
 
Copyright © 2012 NTT DATA Corporation 51
8. まとめ 
Copyright © 2012 NTT DATA Corporation 52
まとめ 
n perfの概要 
n perfの導⼊入、使い⽅方 
n perfの各種コマンドについて 
 
Copyright © 2012 NTT DATA Corporation 53
後編について 
n プロファイリングのネタ 
Copyright © 2012 NTT DATA Corporation 54
Copyright © 2011 NTT DATA Corporation 
Copyright © 2012 NTT DATA Corporation

Mais conteúdo relacionado

Mais procurados

Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...whywaita
 
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてNTT DATA Technology & Innovation
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解MITSUNARI Shigeo
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料SECCON Beginners
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るPreferred Networks
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術Preferred Networks
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)NTT DATA Technology & Innovation
 

Mais procurados (20)

How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
 
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
 

Destaque

PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介Masao Fujii
 
perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)Daichi Egawa
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...Insight Technology, Inc.
 

Destaque (20)

pg_trgmと全文検索
pg_trgmと全文検索pg_trgmと全文検索
pg_trgmと全文検索
 
pg_dbms_statsの紹介
pg_dbms_statsの紹介pg_dbms_statsの紹介
pg_dbms_statsの紹介
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)
 
10大ニュースで振り返るpg con2013
10大ニュースで振り返るpg con201310大ニュースで振り返るpg con2013
10大ニュースで振り返るpg con2013
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
PostreSQL監査
PostreSQL監査PostreSQL監査
PostreSQL監査
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
 
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフGresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
 
PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介
 
PostgreSQL replication
PostgreSQL replicationPostgreSQL replication
PostgreSQL replication
 
JSONBはPostgreSQL9.5でいかに改善されたのか
JSONBはPostgreSQL9.5でいかに改善されたのかJSONBはPostgreSQL9.5でいかに改善されたのか
JSONBはPostgreSQL9.5でいかに改善されたのか
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
 

Semelhante a perfを使ったPostgreSQLの解析(前編)

perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)Daichi Egawa
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Masahito Zembutsu
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -Tomoya Kabe
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)NTT DATA OSS Professional Services
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewallM Hagiwara
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムSatoshi Iijima
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
運用アナリティクスを実現!最新Hinemos ver.6.1の全体像
運用アナリティクスを実現!最新Hinemos ver.6.1の全体像運用アナリティクスを実現!最新Hinemos ver.6.1の全体像
運用アナリティクスを実現!最新Hinemos ver.6.1の全体像Hinemos
 
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!シスコシステムズ合同会社
 
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介Kazuya Yokogawa
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)openrtm
 
NTTデータ様講演 OpenStack最新情報セミナー 2014年6月
NTTデータ様講演 OpenStack最新情報セミナー 2014年6月NTTデータ様講演 OpenStack最新情報セミナー 2014年6月
NTTデータ様講演 OpenStack最新情報セミナー 2014年6月VirtualTech Japan Inc.
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Shingo Kitayama
 
RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化HuuBachNguyen
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)NTT DATA OSS Professional Services
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_FdwKohei KaiGai
 

Semelhante a perfを使ったPostgreSQLの解析(前編) (20)

perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システム
 
July techfesta2014 f30
July techfesta2014 f30July techfesta2014 f30
July techfesta2014 f30
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
運用アナリティクスを実現!最新Hinemos ver.6.1の全体像
運用アナリティクスを実現!最新Hinemos ver.6.1の全体像運用アナリティクスを実現!最新Hinemos ver.6.1の全体像
運用アナリティクスを実現!最新Hinemos ver.6.1の全体像
 
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
 
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
 
NTTデータ様講演 OpenStack最新情報セミナー 2014年6月
NTTデータ様講演 OpenStack最新情報セミナー 2014年6月NTTデータ様講演 OpenStack最新情報セミナー 2014年6月
NTTデータ様講演 OpenStack最新情報セミナー 2014年6月
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 

Mais de NTT DATA OSS Professional Services

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 

Mais de NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 

perfを使ったPostgreSQLの解析(前編)

  • 1. Copyright © 2012 NTT DATA Corporation perfを使ったPostgreSQLの解析 〜~前編 2012年年9⽉月29⽇日(⼟土)
  • 2. Agenda u 前編 1. はじめに 2. プロファイリングとは? 3. perfとは 4. perfの仕組み 5. perfと他のパフォーマンス解析ツールとの⽐比較 6. perfの導⼊入と使い⽅方 7. perfを使ってみよう 8. まとめ Copyright © 2012NTT DATA Corporation 2
  • 3. Agenda u 後編 1. 前編の復復習 2. perfを使ったプロファイリングの流流れ 3. PostgreSQLをプロファイリングしてみよう 4. perfの使いどころ 5. まとめ Copyright © 2012NTT DATA Corporation 3
  • 4. 1. はじめに Copyright © 2012 NTT DATA Corporation 4
  • 5. あらためまして⾃自⼰己紹介 ⽒氏名 Copyright © 2012 NTT DATA Corporation 5 Copyright © 2011 NTT DATA CORPORATION NTTデータ 基盤システム事業本部 システム⽅方式技術ビジネスユニット 江川 ⼤大地 所属 やっていたこと 年年代やったこと -‐‑‒2009歴史のお勉強(⼤大学時代) 2009-‐‑‒2011Webシステム開発(Javaなど) 2011-‐‑‒現在PostgreSQL関係 近況 沖縄に⾏行行ってました。 Twitter @daiti0804
  • 6. 本⽇日のお題 お題perfを使ったPostgreSQLの解析(前編) 今⽇日説明 することperfの仕組みや使い⽅方 Copyright © 2012 NTT DATA Corporation 6
  • 7. 参考資料料 n 本⽇日の講演に当たって参考にした資料料等 n perf ソースコード ̶— [Linuxカーネルソースのルート]/tools/perf配下 n perf ドキュメント ̶— [Linuxカーネルソースのルート]/tools/perf/Documentation n perf wiki ̶— https://perf.wiki.kernel.org/index.php/Main_̲Page n 『Linuxカーネル Hacks ―パフォーマンス改善、開発効率率率向上、省省電⼒力力化のためのテクニック』 ⾼高橋 浩和 (監修), 池⽥田 宗広, ⼤大岩 尚宏, 島本 裕志, ⽵竹部 晶雄, 平松 雅⺒巳 (著) Copyright © 2012NTT DATA Corporation 7
  • 8. 2. プロファイリングとは? Copyright © 2012 NTT DATA Corporation 8
  • 9. トラブルシューティングとは? 障害発⽣生解析対処 現状把握切切り分け原因特定暫定対処根本解決 障害を避けるた めに暫定的な対 処を実施する。 運⽤用中に取得し た情報や顧客か らのヒアリング を通して、実際 に何が起きてい るのかを把握す る。 運⽤用中に取得し た情報や、シス テムのログ、シ ステムが出すそ の他の情報を元 に、どこに問題 があるのかを特 定する。 問題がなぜ起き たのか、どう いった処理理が原 因かを特定する。 同様の障害が発 ⽣生しないように 根本的な対処を ⾏行行う。 Copyright © 2012 NTT DATA Corporation 9
  • 10. トラブルシューティングとは? 障害発⽣生解析対処 現状把握切切り分け原因特定暫定対処根本解決 障害を避けるた めに暫定的な対 処を実施する。 運⽤用中に取得し た情報や顧客か らのヒアリング を通して、実際 に何が起きてい るのかを把握す る。 運⽤用中に取得し た情報や、シス テムのログ、シ ステムが出すそ の他の情報を元 に、どこに問題 があるのかを特 定する。 問題がなぜ起き たのか、どう いった処理理が原 因かを特定する。 同様の障害が発 ⽣生しないように 根本的な対処を ⾏行行う。 perfを使うタイミング Copyright © 2012 NTT DATA Corporation 10
  • 11. 解析とは? n 解析とは ̶— ログやエラーメッセージなどシステムから得られる情報から、何が起きている かを把握し、どこに問題があるのかを特定し、その原因を突き⽌止めること。 n なぜ解析をするのか ̶— やみくもに対策を打っても、弾があたらないため。原因を特定することで、適 切切な対策を打つために実施する。 n 解析⼿手法の例例 ̶— ログ解析 ̶— プロファイリング Copyright © 2012 NTT DATA Corporation 11
  • 12. プロファイリングとは n プロファイリングとは ̶— プログラムのどの部分がボトルネックとなって処理理に時間がかかっているのか など、障害の原因を特定すること。 Copyright © 2012 NTT DATA Corporation 12
  • 13. 3. perfとは Copyright © 2012 NTT DATA Corporation 13
  • 14. perfとは n perf(Performance Counters for Linux)とは? - Linuxカーネル上の統合パフォーマンスツール - イベント数計測にCPUに内蔵されているレジスタを使⽤用 - perf tools (ツールの集合体、サブコマンド群) n イベントとは?? - perfの計測対象 Copyright © 2012 NTT DATA Corporation 14
  • 15. イベントの分類 分類説明具体例例 Hardware eventプロッセサで計測されるイ ベント。 cpu-‐‑‒cycles, cache-‐‑‒missesなど Software eventカーネルのカウンタで計測 されるイベント。 cpu-‐‑‒clock, page-‐‑‒faultsなど Hardware cache event プロッセサで計測されるイ ベント。 L1-‐‑‒dcache-‐‑‒load-‐‑‒misses, branch-‐‑‒loadsなど Tracepoint eventカーネルの処理理を記録する ためにカーネルに埋め込ま れたトレースポイント。 sched:sched_̲stat_̲runtime, syscalls:sys_̲enter_̲socket など Copyright © 2012 NTT DATA Corporation 15
  • 16. プロファイラとしてありたい姿 WHAT DO WE CARE? • The Linux Performance Events Subsystem provides a low overhead way to measure the workloads of a single application or the full system • Itʼ’s at least an order of magnitude faster than an instrumenting profiler • It provides far more information compared to statistical profiler Roberto A. Vitillo (ローレンス・バークレー国⽴立立研究所)の“Future computing in particle physics”カンファレンスにおける講演資料料「PERFORMANCE TOOLS DEVELOPMENTS」 (2011年年6⽉月16⽇日)より。 Copyright © 2012 NTT DATA Corporation 16
  • 17. プロファイラとしてありたい姿 § 低いオーバヘッド - 解析対象のシステムは既に何らかのオーバヘッドが発⽣生している ことが多い。そこにさらに負荷がかかるツールを使おうとしても、 ツールが動かなかったり、システムがダウンする可能性もある。 § 多くの情報 - トラブルの原因はいっぱい考えられるから。 § ⾒見見やすい表⽰示(多くの情報の中から取捨選択が可能) - なにがどう書いてあるのか分からないと、トラブルの原因が表⽰示 されていても⾒見見落落とす可能性もある。 Copyright © 2012 NTT DATA Corporation 17
  • 18. perfについて〜~その他 § いつLinuxカーネルに統合されたの? - Linuxカーネル 2.6.31 § 誰が作ったの? - Ingo Molnar⽒氏が中⼼心となって開発が進められた。 § メンテナは? - Ingo Molnar⽒氏(Red Hat) - Arnaldo Carvelho de Melo⽒氏(Red Hat) Copyright © 2012 NTT DATA Corporation 18
  • 19. 4. perfの仕組み Copyright © 2012 NTT DATA Corporation 19
  • 20. perfのフロー 〜~イベントの指定 ユーザ# perf stat XX カーネル “perf_̲event_̲open”( システムコール)で処 理理を依頼 Software eventの場合 カウンタ レジスタに取得するイベントを設定 Hardware event の場合 ハードウェア(レジスタ) イベント指定レジスタ カウンタレジスタ Copyright © 2012 NTT DATA Corporation 20
  • 21. perfのフロー 〜~データの保存 ユーザ# perf stat XX カーネル Software eventの場合 カウンタ レジスタから値を取得。 Hardware event の場合 ハードウェア(レジスタ) イベント指定レジスタ カウンタレジスタ Copyright © 2012 NTT DATA Corporation 21
  • 22. perfのフロー 〜~データの保存 ユーザ# perf stat XX 加⼯工して値を返す。 カーネル カウンタ レジスタから値を取得。 ハードウェア(レジスタ) イベント指定レジスタ カウンタレジスタ Copyright © 2012 NTT DATA Corporation 22
  • 23. perfの仕組み perfでは、perf_̲event_̲openというシステムコールを利利⽤用し てカーネルから値を取ってきている。 ■ include/linux/syscalls.h より : : asmlinkage long sys_̲perf_̲event_̲open( struct perf_̲event_̲attr _̲_̲user *attr_̲uptr, pid_̲t pid, int cpu, int group_̲fd, unsigned long flags); : : ■ tools/perf/perf.h より : : sys_̲perf_̲event_̲open(struct perf_̲event_̲attr *attr, pid_̲t pid, int cpu, int group_̲fd, unsigned long flags) { attr-‐‑‒size = sizeof(*attr); return syscall(_̲_̲NR_̲perf_̲event_̲open, attr, pid, cpu, group_̲fd, flags); } : : Copyright © 2012 NTT DATA Corporation 23
  • 25. 解析ツールってどんなものがある? § 解析ツール - Oprofile - ftrace - System tap - … Copyright © 2012 NTT DATA Corporation 25
  • 26. 他のツールとの⽐比較 perfOprofileSystemTap オーバヘッド低低スクリプト次第 (漏漏れなく追跡する) 情報量量多中多 情報の取捨選択可能可能可能 Copyright © 2012 NTT DATA Corporation 26
  • 27. 他のツールとの⽐比較 perfOprofileSystemTap オーバヘッド低低⾼高 (漏漏れなく追跡する) 情報の取捨選択可能可能不不可能 動的監視可能不不可能可能 指向性中 (システム全体も処理理 個別のプロファイリ ングも可能) 低 (システム全体のプロ ファイリング向き) ⾼高 (アドホックなプロ ファイリング向き) 危険性低低⾼高 (スクリプト暴暴⾛走の可 能性) Copyright © 2012 NTT DATA Corporation 27
  • 28. 6. perfの導⼊入と使い⽅方 Copyright © 2012 NTT DATA Corporation 28
  • 29. 今回の講演に当たって使⽤用した環境 ソフトウェア名バージョン備考 Ubuntu12.04 Linux kernel3.2.0 VirtualBox4.1.22仮想化ソフト VirtualBox n VirtualBox上のサーバ OS:Ununtu 12.04 カーネル:Linux kernel3.2.0 Macbook Air Copyright © 2012 NTT DATA Corporation 29
  • 30. 【参考】perfがサポートされているかの確認 § カーネルバージョンの確認 - Linux kernel 2.6以上でサポートされている ※コマンドによっては、より新しいバージョンのみにしか対応していないものもある。 § コンフィギュアオプションの確認 - CONFIG_̲PERF_̲xxxx というオプションが 有効になっていれば、perf がサポートされている。 ※コンフィギュアオプションの確認⽅方法 /boot配下の” config-‐‑‒カーネルバージョン-‐‑‒generic-‐‑‒pae”ファイルを確認。 Copyright © 2012NTT DATA Corporation 30
  • 31. perfの導⼊入 n perfをインストールするには、以下の2つの⽅方法がある。 1. apt-‐‑‒get, yumを使う⽅方法 2. ソースからインストールする⽅方法 Copyright © 2012 NTT DATA Corporation 31
  • 32. perfの導⼊入〜~1.apt-‐‑‒getによるインストール § 準備 - linux-‐‑‒tools-‐‑‒commonが必要 Copyright © 2012 NTT DATA Corporation 32
  • 33. perfの導⼊入〜~1.apt-‐‑‒getによるインストール § perfのインストール - 以下のコマンドを⼊入⼒力力 # sudo apt-‐‑‒get install linux-‐‑‒tools-‐‑‒3.2.0-‐‑‒30 : 以下のパッケージが新たにインストールされます: linux-‐‑‒tools-‐‑‒3.2.0-‐‑‒30 : linux-‐‑‒tools-‐‑‒3.2.0-‐‑‒30 (3.2.0-‐‑‒30.48)を設定しています... : Copyright © 2012 NTT DATA Corporation 33
  • 34. perfの導⼊入〜~2.ソースからのインストール § 準備 - libdw-‐‑‒dev or elfutils-‐‑‒libelf-‐‑‒devel が必要 Copyright © 2012 NTT DATA Corporation 34
  • 35. perfの導⼊入〜~2.ソースからのインストール § perfのインストール - 以下のコマンドを⼊入⼒力力 # sudo apt-‐‑‒get install linux-‐‑‒source : 以下のパッケージが新たにインストールされます: linux-‐‑‒source linux-‐‑‒source-‐‑‒3.2.0 : linux-‐‑‒source-‐‑‒3.2.0を設定しています… : # tar xjf linux-‐‑‒source-‐‑‒3.2.0.tar.bz2 # cd カーネルソースのルート/tools/perf # make # make install Copyright © 2012 NTT DATA Corporation 35
  • 36. 動作確認 § 動作確認 - 以下のコマンドを⼊入⼒力力 # perf list List of pre-‐‑‒defined events (to be used in -‐‑‒e): cpu-‐‑‒cycles OR cycles [Hardware event] stalled-‐‑‒cycles-‐‑‒frontend OR idle-‐‑‒cycles-‐‑‒frontend [Hardware event] stalled-‐‑‒cycles-‐‑‒backend OR idle-‐‑‒cycles-‐‑‒backend [Hardware event] instructions [Hardware event] : : cpu-‐‑‒clock [Software event] task-‐‑‒clock [Software event] : : perfで利利⽤用可能なプロファイルイベントの ⼀一覧が、表⽰示されれば、ok!! Copyright © 2012 NTT DATA Corporation 36
  • 37. perf の使い⽅方 § perfの使い⽅方 # perf コマンド [オプション] § 代表的なコマンド コマンド説明 perf annotateperf recordで作成したperfのデータを読み込み、 関数で呼び出した命令令レベ ルのトレース結果を表⽰示する。 perf probe新たに動的なトレースポイント(イベント)を定義する。 perf recordイベントの記録を⾏行行う。 perf reportperf recordで記録したイベントをプロンプトに表⽰示する。 perf scriptperf recordで作成したperfのデータを読み込み、 トレース結果を表⽰示する。 perf stat引数に指定したコマンドのパフォーマンスカウンタの値を表⽰示する。 perf topLinuxコマンドの”top”のように動的にシステム監視を⾏行行う。 Copyright © 2012 NTT DATA Corporation 37
  • 38. イベントの指定 perf では、1回の実⾏行行ごとに単⼀一のもしくは、複数のイベント指定が可能で ある。以下のように、-‐‑‒eオプションに続いて、イベント名を記述する。 n 単⼀一イベント指定 # perf stat -‐‑‒e cycles dd if=/dev/zero of=/dev/null count=100000 n 複数イベント指定 # perf stat -‐‑‒e cycles:uk –e faults dd if=/dev/zero of=/dev/null count=100000 Copyright © 2012 NTT DATA Corporation 38
  • 39. 7. perfを使ってみよう Copyright © 2012 NTT DATA Corporation 39
  • 40. perf stat perf statは、指定したコマンドのパフォーマンスカウンタの値を表⽰示できる。 perf record/reportと違い、指定したコマンドの総合的な統計情報を得るこ とが可能である。 n こんな時に便便利利 ̶— あるコマンドについて、総合的な(複数のイベントにまたがった)性能測 定情報が知りたい。 ̶— 性能の悪い処理理について、何が原因なのか知りたい。 ̶— 性能改善(暫定対処、本格対処)を⾏行行うにあたっての数値⽬目標を出したい。 Copyright © 2012 NTT DATA Corporation 40
  • 41. perf stat 〜~オプション § 代表的なオプション コマンド説明 -‐‑‒eイベントを指定する。 -‐‑‒pプロセスIDを指定する。 -‐‑‒tスレッドIDを指定する。 -‐‑‒a全CPU上のプロセスを指定する。 -‐‑‒C特定のCPU上のプロセスを指定する。 -‐‑‒B計測結果にカンマを⼊入れて表⽰示する。(ex.1,000) Copyright © 2012 NTT DATA Corporation 41
  • 42. perf stat 〜~実⾏行行例例 n perf stat の実⾏行行例例を以下に⽰示す。 # perf stat -‐‑‒B dd if=/dev/zero of=/dev/null count=1000000 1000000+0 レコード⼊入⼒力力 1000000+0 レコード出⼒力力 512000000 バイト (512 MB) コピーされました、 0.433087 秒、 1.2 GB/秒 Performance counter stats for 'dd if=/dev/zero of=/dev/null count=1000000': 436.626492 task-‐‑‒clock # 0.957 CPUs utilized 24 context-‐‑‒switches # 0.000 M/sec 0 CPU-‐‑‒migrations # 0.000 M/sec 252 page-‐‑‒faults # 0.001 M/sec not supported cycles not supported stalled-‐‑‒cycles-‐‑‒frontend not supported stalled-‐‑‒cycles-‐‑‒backend not supported instructions not supported branches not supported branch-‐‑‒misses 0.456183302 seconds time elapsed ※ 特にイベント指定しなければ、 perf stat は上記のイベントの集計をする Copyright © 2012 NTT DATA Corporation 42
  • 43. perf top perf topは、リアルタイムでのプロファイリングが可能にするコマンドであ る。Linuxコマンドの top のように動的にシステム監視を⾏行行うことができる。 n こんな時に便便利利 ̶— システム全体のプロファイリングを⾏行行いたい。 ̶— リアルタイムで監視を⾏行行いたい。 Copyright © 2012 NTT DATA Corporation 43
  • 44. perf top〜~使⽤用例例 n perf topの実⾏行行例例を以下に⽰示す。 # perf top Copyright © 2012 NTT DATA Corporation 44
  • 45. perf top〜~オプション § 代表的なオプション コマンド説明 -‐‑‒eイベントを指定する。 -‐‑‒pプロセスIDを指定する。 -‐‑‒tスレッドIDを指定する。 -‐‑‒a全CPU上のプロセスを指定する。 -‐‑‒C特定のCPU上のプロセスを指定する。 Copyright © 2012 NTT DATA Corporation 45
  • 46. perf record perf report perf recordは、イベントの記録を⾏行行う。記録したデータは、データファイル (デフォルト名はperf.data)として保存される。そのデータファイルは、 perf reportで⾒見見ることができる。 n こんな時に便便利利 ̶— あるコマンドについての動作を詳細に記録したい。 ̶— 怪しい処理理について、詳細に解析したい。 ̶— 性能の悪い処理理について、何が原因なのか知りたい。 Copyright © 2012 NTT DATA Corporation 46
  • 47. perf report〜~オプション § 代表的なオプション コマンド説明 -‐‑‒eイベントを指定する。 -‐‑‒o出⼒力力ファイル名を指定する(デフォルトは”perf.data”) -‐‑‒pプロセスIDを指定する。 -‐‑‒tスレッドIDを指定する。 -‐‑‒a全CPU上のプロセスを指定する。 -‐‑‒C特定のCPU上のプロセスを指定する。 Copyright © 2012 NTT DATA Corporation 47
  • 48. perf record〜~オプション § 代表的なオプション コマンド説明 -‐‑‒i⼊入⼒力力ファイル名を指定する(⼊入⼒力力しないとカレンとディレクトリ の”perf.data”を⼊入⼒力力ファイルとする) -‐‑‒spidなどでソートする。 Copyright © 2012 NTT DATA Corporation 48
  • 49. perf record perf report 〜~使⽤用例例 n perf recordの実⾏行行例例を以下に⽰示す。 # perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s stress: info: [5843] dispatching hogs: 4 cpu, 2 io, 2 vm, 0 hdd stress: info: [5843] successful run completed in 10s [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.247 MB perf.data (~∼10775 samples) ] # ls perf.data Copyright © 2012 NTT DATA Corporation 49
  • 50. perf record perf report 〜~使⽤用例例 n perf reportの実⾏行行例例を以下に⽰示す。 オーバヘッドコマンドオブジェクト名シンボル名 Copyright © 2012 NTT DATA Corporation 50
  • 51. perf record perf report 〜~Tips n perf recoerdで得られるデータファイル(perf.data)は、同名のファイルが あっても、上書きされずに、古いファイルを”perf.data.old”として対⽐比して くれる。ただし、”perf.data.old”までは退避処理理をしてくれないので注意。 # perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s stress: info: [5843] dispatching hogs: 4 cpu, 2 io, 2 vm, 0 hdd stress: info: [5843] successful run completed in 10s [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.247 MB perf.data (~∼10775 samples) ] # ls perf.data # perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s : : # ls perf.data perf.data.old # perf record -‐‑‒e cpu-‐‑‒clock stress -‐‑‒c 4 -‐‑‒i 2 -‐‑‒m 2 -‐‑‒-‐‑‒timeout 10s : : # ls perf.data perf.data.old Copyright © 2012 NTT DATA Corporation 51
  • 52. 8. まとめ Copyright © 2012 NTT DATA Corporation 52
  • 53. まとめ n perfの概要 n perfの導⼊入、使い⽅方 n perfの各種コマンドについて Copyright © 2012 NTT DATA Corporation 53
  • 54. 後編について n プロファイリングのネタ Copyright © 2012 NTT DATA Corporation 54
  • 55. Copyright © 2011 NTT DATA Corporation Copyright © 2012 NTT DATA Corporation