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?

【初心者向け】ディスク I/O の可観測性ツール【5分で読める】

Last updated at Posted at 2025-02-17

ディスク I/O の可観測性ツール

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

登場人物

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

場面:オフィスのデバッグルーム
太郎が iostat コマンドを試しながら、花子に質問する。

太郎:「花子先輩、今 iostat を試してみたんですけど、 可観測性ツール っていろいろ種類があるんですね。どれをどう使えばいいのか、正直混乱しています。」

花子:「そうね。可観測性ツールには、それぞれ 目的 があるの。大きく分けると 全体を監視するツール詳細な分析をするツール の2種類に分類できるわ。」


ディスク I/O 可観測性ツールの解説

花子:「可観測性ツールは、 ディスク I/O のパフォーマンスやボトルネックを特定 するためのツール群よ。主なものを紹介するわね。」


1. iostat - ディスク I/O の全体状況を見る

花子:「iostatディスクごとの I/O 統計 を表示するツールよ。」

  • iostat コマンドを実行すると、CPU 使用率とディスク I/O の統計が表示される。
  • iostat -x を使うと、より詳細なデータ(使用率、I/O キューの長さなど)が見られる。

太郎:「つまり、iostatディスク全体のパフォーマンス傾向 を確認するのに使うんですね。」


2. sar - 経時的な I/O 統計を取得

花子:「sar時間ごとの I/O の傾向 を確認するのに便利よ。」

  • 例えば sar -d 1 10 と実行すると、1秒ごとのディスク I/O の統計が10回記録される。
  • 過去のログ も取得できるので、 負荷が高かった時間帯 を特定できる。

太郎:「じゃあ、昨日の夜に何が起こっていたのか? みたいな調査に使えそうですね!」


3. PSI(Pressure Stall Information) - 負荷のスタール

花子:「PSIディスクの負荷がシステム全体に与える影響 を見るツールよ。」

  • cat /proc/pressure/io を実行すると、I/O による負荷の影響が分かる。
  • 高い値が出ている場合 は、I/O によるボトルネック が発生している可能性が高い。

太郎:「負荷がシステム全体に及ぼす影響 を知りたいときに使うんですね。」


4. pidstat - プロセスごとの I/O 使用状況

花子:「pidstat -d 1 を実行すると、どのプロセスがどれだけディスク I/O を使っているか が分かるわ。」

  • ディスク負荷の原因となっているプロセス を特定できる。
  • pidstat -d -p 1234 のように使えば、特定のプロセス の I/O を監視できる。

太郎:「負荷の原因を プロセス単位 で調べるのに便利そうですね。」


5. perf - 詳細な I/O 分析

花子:「perfカーネルレベルの I/O トレース を記録するツールよ。」

  • perf record -e block:block_rq_issue のように使うと、どのプロセスが I/O を発行しているか を分析できる。
  • perf report を実行すると、記録されたデータを解析できる。

太郎:「カーネルレベルの 深い分析 をしたいときに使うんですね!」


6. biolatency - I/O レイテンシ分析

花子:「biolatencyI/O の応答時間(レイテンシ)ヒストグラム で表示できるツールよ。」

  • sudo biolatency を実行すると、I/O の処理時間の分布 が見られる。
  • 例えば 一部の I/O が異常に遅い ことを発見できる。

太郎:「レイテンシの外れ値 を探すのに便利そうですね!」


7. biosnoop - 個々の I/O のトレース

花子:「biosnoop を使うと、I/O の詳細なトレース ができるの。」

  • sudo biosnoop を実行すると、I/O の開始時間、終了時間、プロセスID などが記録される。
  • 遅い I/O を特定する のに便利。

太郎:「遅延のある I/O がどこで発生しているか を調べられるんですね!」


8. iotop, biotop - プロセス別のディスク I/O 使用量

花子:「iotopbiotoptop コマンドのディスク I/O 版 よ。」

  • sudo iotop を実行すると、どのプロセスがディスク I/O を多く使っているか がリアルタイムで見られる。
  • iotop -o を使えば ディスク I/O が発生しているプロセス のみを表示できる。

太郎:「リアルタイムで どのプロセスが I/O を大量に使っているのか が分かるんですね!」


9. blktrace - ディスク I/O の詳細なイベントトレース

花子:「blktraceディスク I/O のイベント超詳細 に記録するツールよ。」

  • sudo blktrace -d /dev/sda を実行すると、ディスク上で発生した I/O イベント を記録できる。
  • ディスク I/O の詳細なフロー を分析するのに役立つ。

太郎:「かなり 専門的な調査 に向いているツールですね。」


花子:「可観測性ツールを 健康診断 に例えると、こんな感じかしら。」

  1. iostat, sar血圧や体温の測定(全体の健康状態のチェック)
  2. PSIストレス測定(システムが I/O 負荷で苦しんでいるか)
  3. pidstat, iotop特定の臓器の検査(どのプロセスが負荷をかけているか)
  4. biolatency, biosnoopMRI 検査(詳細な応答時間を解析)
  5. perf, blktraceDNA 検査(I/O の根本的な原因を分析)

太郎:「なるほど! 大まかな診断 から 詳細な分析 まで、ツールを適切に使い分けることが大事なんですね!」


まとめ

花子:「そうね。全体の監視 から 細かい分析 まで、状況に応じて 適切なツール を使うのが大事よ。」

太郎:「ありがとうございます!早速、iotopbiolatency を試してみます!」

参考リンク

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

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

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?