0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】CPU の可観測性ツール【5分で読める】

Last updated at Posted at 2025-02-19

CPU の可観測性ツール

理解のために小咄形式でまとめました。

登場人物

  • 太郎(後輩):入社1年目の若手エンジニア。
  • 花子(先輩):システムエンジニア歴3年の先輩。

場面:オフィスの開発ルーム
太郎が CPU の可観測性ツール に関する資料を見ながら、花子に質問する。

太郎:「花子先輩、 CPU の状態をリアルタイムで監視 するには、どんなツール を使えばいいんでしょうか?」

花子:「いい質問ね! 可観測性ツール を使うと、 CPU の負荷、スレッドのスケジューリング、キャッシュの利用状況 などをリアルタイムで把握できるわ。」


CPU の可観測性ツール

花子:「CPU のパフォーマンスを分析するツール は、 目的別に 7 つのカテゴリー に分けられるわ。」

  1. システム全体の負荷を測るツール
  2. CPU の詳細な使用状況を確認するツール
  3. プロセスごとの CPU 使用率を調べるツール
  4. CPU の電力管理と周波数を監視するツール
  5. カーネルレベルの CPU スケジューリングを分析するツール
  6. パフォーマンスカウンターを活用したツール
  7. 高度なプロファイリングツール

1. システム全体の負荷を測るツール

花子:「まず、 システム全体の負荷 を確認するのに役立つツールね。」

  • uptimeロードアベレージを表示(1分、5分、15分の平均負荷を確認)
  • vmstatCPU、メモリ、I/O の基本的な統計情報をリアルタイムで取得
  • mpstat各 CPU の使用率を詳細に表示
  • sarシステムリソースの長期的な変化を記録

花子:「これは レストランの来店人数カウント みたいなもので、 混雑具合を確認する指標 になるのよ。」

太郎:「なるほど! vmstatsar を使えば、 長期的な CPU 使用傾向 も分かるんですね!」


2. CPU の詳細な使用状況を確認するツール

花子:「CPU の負荷がどこに集中しているか を調べるツールね。」

  • topリアルタイムで CPU 使用率の高いプロセスを表示
  • pidstat特定のプロセスの CPU 使用率を分析
  • time, ptime特定のコマンドの実行時間を計測

花子:「これは どのシェフが忙しく働いているかを確認する みたいなものね。」

太郎:「top はよく使いますが、 pidstat なら 特定のプロセスの詳細な CPU 使用率 まで分かるんですね!」


3. プロセスごとの CPU 使用率を調べるツール

花子:「プロセスの CPU 消費の内訳 を詳しく知りたいなら、 pspidstat が便利よ。」

  • psプロセスごとの CPU 使用率を表示
  • pidstat -uプロセスの CPU 使用率を詳細に監視
  • pidstat -dプロセスの I/O 使用状況を分析

花子:「これは レストランの注文ごとの調理時間を分析する みたいなものね。」

太郎:「ps だけでなく、pidstat を活用すれば、 どのプロセスが CPU を食っているか細かく分析できる んですね!」


4. CPU の電力管理と周波数を監視するツール

花子:「最近の CPU は 動的にクロック周波数を変更 して、 電力効率を最適化 するわ。その状態を調べるツールね。」

  • turbostatCPU のクロック周波数、温度、電力使用量をリアルタイム監視
  • showboostIntel ターボブーストの状態を確認
  • cpufreq-infoCPU の電力制御ポリシーを取得

花子:「これは 車の燃費モニター みたいなもので、 CPU の動作状態を最適化するためのデータを提供 するのよ。」

太郎:「turbostat なら CPU の発熱や消費電力もチェックできる んですね!」


5. カーネルレベルの CPU スケジューリングを分析するツール

花子:「CPU のスケジューリングが適切かどうかを分析するツールよ。」

  • runqlatCPU のランキュー待ち時間を測定
  • runqlenランキューの長さ(CPU の負荷)を分析
  • softirqs, hardirqsソフトウェア割り込み、ハードウェア割り込みを監視

「これは 調理場でシェフがどれくらい注文を待たされているかを調べる のと同じね。」

太郎:「CPU のスケジューリングのボトルネックrunqlat で分かるんですね!」


6. パフォーマンスカウンターを活用したツール

花子:「CPU の パフォーマンスカウンター(PMC) を使って、 ハードウェアレベルでの分析 もできるわ。」

  • pmcarchCPU サイクルや分岐予測ミスを測定
  • tlbstatTLB(仮想メモリ管理)の状態を監視
  • perf高度なプロファイリングとイベント測定

「これは 車のエンジンの内部診断ツール みたいなものね。」

太郎:「perf を使えば ハードウェアレベルの最適化ポイント まで見つけられそうですね!」


7. 高度なプロファイリングツール

花子:「プログラムのどこで CPU が多く使われているか を特定するツールね。」

  • profile関数単位の CPU 負荷を分析
  • cpudistCPU 使用率の分布を表示
  • bpftraceBPF(eBPF) を使った詳細なプロファイリング

「これは レストランの注文履歴を分析して、どの料理が人気か調べる みたいなものね。」

太郎:「bpftraceリアルタイムの詳細な解析 もできるんですね!」


まとめ

花子:「CPU の可観測性ツール を使えば、 システム全体の負荷、プロセス単位の CPU 使用率、スケジューリングの最適化ポイント まで、細かく分析できるのよ。」

太郎:「ありがとうございます! `まずは uptime, vmstat, mpstat, top を試して、CPU の状態をリアルタイム監視してみます!」

参考リンク

システムパフォーマンス関連記事の目次

システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?