troushoo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Linux パフォーマンスチェックリスト - CPU 編 -

Netflix のエンジニアによる、Linux パフォーマンスのチェックリストを紹介します。このチェックリストは、YouTube の動画にて紹介されています。
今回は、CPU のパフォーマンスのチェック方法を表します。全体・ディスク・ネットワークについては、別ブログをご参照ください。

Linux パフォーマンスチェックリスト – 全体編 -
Linux パフォーマンスチェックリスト – ディスク編 -
Linux パフォーマンスチェックリスト – ネットワーク編 -

CPU のパフォーマンス (動画の 50:48 から)
1. uptime
[load average] の数字にて、1分間、5分間、15分間の負荷がわかります。
各々の数字は、CPU での実行を待っているプロセス数、並びに、ディスク IO といった割り込み不可能な IO でブロックされているプロセスの数です。


2. vmstat 1
1 秒ごとに、パフォーマンス情報を表示します。
[CPU] の [us] は User Time を、[sy] は System Time (Kernel Time) を、[id] は Idle を、[wa] は Wait IO を意味します。
そのため、us や sy が高い場合は CPU の問題である可能性が高くなります。逆に wa が高い場合は、ディスクの問題である可能性が高くなります。


3. mpstat –P ALL 1
1 秒ごとに、各々の CPU ごとの負荷を表示します。


4. pidstat 1
1 秒ごとに、どのプロセスが CPU を使用しているかを表示します。以下の例では、bash が CPU を使用していることがわかります。


5. CPU flame graph
この動画の発表者作のツールです。どの関数に CPU 時間がかかっているかを表示してくれます。
各々の横棒の長さが実行された時間で、縦軸は、コールスタックです。(横軸の順番には意味はありません)
以下の例では、idle 以外では、mytest.sh に時間がかかっていることがわかります。


インストール、使用方法は以下です。詳細はエンジニアのブログにも乗っております。

git clone https://github.com/brendangregg/FlameGraph
cd FlameGraph
perf record –F 99 –a –g sleep 30 #99 Hz のサンプリング (-F 99) で、すべての CPU (-a) の、コールスタック (-g) を、30 秒間 (sleep 30) 採取
perf script | ./stackcollapse-perf.pl | ./flamegrap.pl > perf.svg

6. CPU subsecond offset heap map
この動画の発表者作のツールです。時間ごとに、何個の CPU が動いているかを表すグラフです。
動画の 49:16 から 49:47 秒までに説明があります。また、このエンジニアのブログにも紹介があります。


7. perf stat –a –d sleep 10

全ての CPU (-a) の、詳細データ (-d) の、10 秒間 (sleep 10) の統計情報をとります。
IPC (Instraction per Cycle) や LLC (Last Level Cache) が便利とのことでしたが、仮想マシン上では使用できない様子でした。
perf stat については、エンジニアのブログにも記載があります。


補足
CPU の負荷をかける際「while :; do :; done &」というスクリプトを使っていました。(29:58 ごろ)


情報元
SREcon16 - Performance Checklists for SREs (英語)
Linux Performance Analysis in 60,000 Milliseconds (英語)

関連記事
Linux パフォーマンスチェックリスト – 全体編 -
Linux パフォーマンスチェックリスト – ディスク編 -
Linux パフォーマンスチェックリスト – ネットワーク編 -
  1. 2017/01/05(木) 00:07:16|
  2. Linux
  3. | トラックバック:0
  4. | コメント:0
<<Windows 10 よりデフォルトでインストールされている、PowerShell のテストフレームワーク Pester | ホーム | Linux パフォーマンスチェックリスト - ネットワーク編 ->>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/327-6e6bc8a5
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (23)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。