Amazon EBS と EC2 インスタンスストアの詳細なパフォーマンス統計で取得できる情報の違いを確認してみた

Amazon EBS と EC2 インスタンスストアの詳細なパフォーマンス統計で取得できる情報の違いを確認してみた

Amazon EBS と EC2 インスタンスストアボリュームの詳細なパフォーマンス統計を、Linux と Windows の両環境で実際に取得して、その違いを確認しました。
2026.07.01

はじめに

テクニカルサポートの 片方 です。
Amazon EBS ボリュームと EC2 インスタンスストアボリュームでは、Nitro ベースのインスタンスにアタッチされた NVMe デバイスから詳細なパフォーマンス統計を取得できます。
Amazon EBS では、I/O 数、転送バイト数、I/O に費やされた時間、読み取り / 書き込み I/O のレイテンシーヒストグラム、EBS ボリューム側または EC2 インスタンス側の IOPS / スループット上限超過に関する情報を確認できます。

一方、EC2 インスタンスストアボリュームでも同様に詳細な統計を取得できます。加えて、--details オプションを指定することで、I/O サイズ別に分類された詳細なレイテンシーヒストグラムを確認できます。
今回は、Amazon EBS と EC2 インスタンスストアボリュームに対して nvme amzn stats / nvme_amzn.exe stats を実行し、取得できる情報の違いを確認しました。

先に結論から

Amazon EBS と EC2 インスタンスストアボリュームでは、どちらも詳細なパフォーマンス統計を取得できます。
Linux インスタンスでは nvme amzn stats、Windows インスタンスでは nvme_amzn.exe stats を使用して確認しました。
共通して取得できる主な情報は、I/O 数、転送バイト数、I/O に費やされた時間、キュー長、読み取りおよび書き込みのレイテンシーヒストグラムです。
一方で、取得できる情報には以下の違いがありました。

観点 Amazon EBS EC2 インスタンスストア
性能上限超過に関する統計 EBS Volume Performance Exceeded (us)EC2 Instance EBS Performance Exceeded (us) を確認可能 EC2 Instance Local Storage Performance Exceeded (us) を確認可能
I/O サイズ別のレイテンシーヒストグラム 今回の確認では出力されませんでした --details オプションで確認可能
カウンターの保持期間 EBS ボリュームがインスタンスにアタッチされている期間 インスタンスの存続期間。ただし、停止や再起動をまたいで永続化されません

特に大きな違いは、EC2 インスタンスストアボリュームでは --details オプションにより、I/O サイズ別のレイテンシーヒストグラムを確認できる点です。
基本的な I/O 統計は Amazon EBS と EC2 インスタンスストアのどちらでも取得できますが、性能上限超過に関する出力項目や、詳細なレイテンシー分析で確認できる粒度が異なりました。

検証環境

今回の検証環境は以下です。

項目 内容
OS Amazon Linux 2023 / Windows Server 2022
インスタンスタイプ m5ad.large
ストレージ Amazon EBS / EC2 インスタンスストア

なお、詳細なパフォーマンス統計は、Nitro ベースのインスタンスにアタッチされた NVMe デバイスで確認できます。
Windows で nvme_amzn.exe を使用する場合は、AWS NVMe ドライバー 1.7.0 以降が必要です。今回の環境では 1.8.1.49 を利用しているため、この条件を満たしています。

ドキュメントを参考に確認します。
なお、事前準備や設定手順については、以下の弊社ブログをご参照ください。本ブログでは省略します。

https://dev.classmethod.jp/articles/ebs-detailed-performance-statistics/

Linux インスタンス

まずは、Linux インスタンスで Amazon EBS と EC2 インスタンスストアボリュームの詳細なパフォーマンス統計を確認します。
前述のとおり、nvme-cli の準備や詳細なパフォーマンス統計を取得するための設定は完了している前提です。
なお、Amazon Linux 2023 AMI では、AMI のリリース時期によって nvme-cli のバージョンが異なる可能性があるため、必要に応じて更新してください。

01

NVMe デバイスを確認する

EC2 インスタンスに SSH 接続し、NVMe デバイスの一覧を確認します。

sudo nvme list

実行結果は以下のようになりました。

Node                  Generic               SN                   Model                                    Namespace  Usage                      Format           FW Rev
--------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- --------
/dev/nvme0n1          /dev/ng0n1            vol05d117a86b4c643de Amazon Elastic Block Store               0x1          8.59  GB /   8.59  GB    512   B +  0 B   1.0
/dev/nvme1n1          /dev/ng1n1            AWS23C7D53C65FC83FED Amazon EC2 NVMe Instance Storage         0x1         75.00  GB /  75.00  GB    512   B +  0 B   0
sh-5.2$

ここでは、/dev/nvme0n1 を Amazon EBS、/dev/nvme1n1 を EC2 インスタンスストアとして確認します。

02

Amazon EBS の詳細なパフォーマンス統計を確認する

まず、Amazon EBS に対して nvme amzn stats を実行します。

sudo nvme amzn stats /dev/nvme0n1

実行結果では、以下のような統計情報を確認できました。

sh-5.2$ sudo nvme amzn stats /dev/nvme0n1
Total Ops:
  Read: 13754
  Write: 2881
Total Bytes:
  Read: 291802112
  Write: 297207296
Total Time (us):
  Read: 8346723
  Write: 4837382

EBS Volume Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

EC2 Instance EBS Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

Queue Length (point in time): 0

Read IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 1350
[512      - 1024    ] => 12302
[1024     - 2048    ] => 102
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Write IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 16
[512      - 1024    ] => 1085
[1024     - 2048    ] => 761
[2048     - 4096    ] => 1019
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Amazon EBS では、基本的な I/O 統計に加えて、以下の性能上限超過に関する情報を確認できます。
EBS では、ボリューム側の上限に達しているのか、EC2 インスタンス側の EBS 性能上限に達しているのかを切り分けられる点が特徴です。

EC2 インスタンスストアの詳細なパフォーマンス統計を確認する

次に、EC2 インスタンスストアボリュームに対して nvme amzn stats を実行します。

sudo nvme amzn stats /dev/nvme1n1

実行結果では、以下のような統計情報を確認できました。

sh-5.2$ sudo nvme amzn stats /dev/nvme1n1
Total Ops:
  Read: 120
  Write: 0
Total Bytes:
  Read: 2189312
  Write: 0
Total Time (us):
  Read: 18023
  Write: 0

EC2 Instance Local Storage Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

Queue Length (point in time): 1

Read IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 59
[32       - 64      ] => 40
[64       - 128     ] => 18
[128      - 256     ] => 1
[256      - 512     ] => 0
[512      - 1024    ] => 1
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 1
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Write IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

sh-5.2$

EC2 インスタンスストアでも、I/O 数、転送バイト数、I/O に費やされた時間、キュー長、レイテンシーヒストグラムを確認できました。
一方で、性能上限超過に関する項目は Amazon EBS と異なります。

出力項目 内容
EC2 Instance Local Storage Performance Exceeded (us) - IOPS ローカルストレージの IOPS 性能上限超過時間
EC2 Instance Local Storage Performance Exceeded (us) - Throughput ローカルストレージのスループット性能上限超過時間

Amazon EBS で確認できた EBS Volume Performance Exceeded (us) や EC2 Instance EBS Performance Exceeded (us) は、EC2 インスタンスストアでは出力されませんでした。
代わりに、EC2 インスタンスストアでは EC2 Instance Local Storage Performance Exceeded (us) として、ローカルストレージの性能上限超過に関する情報を確認できます。

EC2 インスタンスストアで --details を確認する

続いて、EC2 インスタンスストアボリュームに対して --details オプションを付けて実行します。

sudo nvme amzn stats --details /dev/nvme1n1

--details を指定すると、通常の統計情報に加えて、I/O サイズ別の詳細なレイテンシーヒストグラムを確認できます。

sh-5.2$ sudo nvme amzn stats --details /dev/nvme1n1
Total Ops:
  Read: 120
  Write: 0
Total Bytes:
  Read: 2189312
  Write: 0
Total Time (us):
  Read: 18023
  Write: 0

EC2 Instance Local Storage Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

Queue Length (point in time): 1

Read IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 59
[32       - 64      ] => 40
[64       - 128     ] => 18
[128      - 256     ] => 1
[256      - 512     ] => 0
[512      - 1024    ] => 1
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 1
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Write IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

=================================
IO Size Range:
(io_size_low: 0 -> io_size_high: 512]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 3
[32       - 64      ] => 3
[64       - 128     ] => 7
[128      - 256     ] => 1
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 512 -> io_size_high: 4K]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 55
[32       - 64      ] => 17
[64       - 128     ] => 2
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 1
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 1
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 4K -> io_size_high: 8K]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 1
[32       - 64      ] => 3
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 8K -> io_size_high: 32K]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 6
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 32K -> io_size_high: max]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 11
[64       - 128     ] => 9
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
sh-5.2$

今回の実行結果では、以下の I/O サイズ範囲ごとに、読み取りと書き込みのレイテンシーヒストグラムが出力されました。

I/O サイズ範囲
(io_size_low: 0 -> io_size_high: 512]
(io_size_low: 512 -> io_size_high: 4K]
(io_size_low: 4K -> io_size_high: 8K]
(io_size_low: 8K -> io_size_high: 32K]
(io_size_low: 32K -> io_size_high: max]

通常の nvme amzn stats では、読み取りと書き込み全体のレイテンシーヒストグラムを確認できます。
一方、--details を指定すると、I/O サイズごとに分類されたレイテンシーヒストグラムを確認できます。
これにより、例えば以下のような観点で確認できます。

  • 小さい I/O サイズでレイテンシーが高いのか
  • 大きい I/O サイズでレイテンシーが高いのか
  • 読み取りと書き込みのどちらで遅延が発生しているのか

EC2 インスタンスストアボリュームでは、この I/O サイズ別のレイテンシーヒストグラムを確認できる点が、Amazon EBS との大きな違いでした。

Linux インスタンスで確認できた違い

Linux インスタンスで確認できた Amazon EBS と EC2 インスタンスストアの違いを整理します。

観点 Amazon EBS EC2 インスタンスストア
基本的な I/O 統計 取得可能 取得可能
読み取り / 書き込みの転送バイト数 取得可能 取得可能
I/O に費やされた合計時間 取得可能 取得可能
キュー長 取得可能 取得可能
レイテンシーヒストグラム 取得可能 取得可能
ボリューム側の性能上限超過 EBS Volume Performance Exceeded (us) として確認可能 該当なし
EC2 インスタンス側の EBS 性能上限超過 EC2 Instance EBS Performance Exceeded (us) として確認可能 該当なし
ローカルストレージの性能上限超過 該当なし EC2 Instance Local Storage Performance Exceeded (us) として確認可能
I/O サイズ別のレイテンシーヒストグラム 今回の確認では出力されませんでした --details で確認可能

Amazon EBS と EC2 インスタンスストアでは、基本的な I/O 統計は共通して取得できました。
一方で、性能上限超過に関する出力項目は異なります。Amazon EBS では EBS ボリューム側と EC2 インスタンス側の EBS 性能上限超過を確認でき、EC2 インスタンスストアではローカルストレージの性能上限超過を確認できます。
また、EC2 インスタンスストアでは --details を指定することで、I/O サイズ別のレイテンシーヒストグラムを確認できました。ここが、今回確認した中で最も大きな違いでした。

Windows インスタンス

続いて、Windows インスタンスでも Amazon EBS と EC2 インスタンスストアボリュームの詳細なパフォーマンス統計を確認します。
Windows では、nvme_amzn.exe を使用して統計情報を取得します。
nvme_amzn.exe は、今回の環境では C:\ProgramData\Amazon\Tools 配下に配置されていました。
まず、AWS NVMe ドライバーのバージョンを確認します。

実行結果は以下の通りです。

DeviceName                             DriverProviderName        DriverVersion
----------                             ------------------        -------------
AWS NVMe Instance Storage Adapter      Amazon Inc.               1.8.1.49
Amazon Elastic Network Adapter         Amazon Web Services, Inc. 2.11.0.0
AWS NVMe Elastic Block Storage Adapter Amazon Inc.               1.8.1.49

今回の環境では、AWS NVMe Instance Storage Adapter と AWS NVMe Elastic Block Storage Adapter のバージョンが 1.8.1.49 であることを確認しました。
なお、上記の出力には Amazon Elastic Network Adapter も含まれていますが、今回の詳細なパフォーマンス統計の確認対象は NVMe ストレージデバイスです。

次に、nvme_amzn.exe が配置されていることを確認します。

Directory: C:\ProgramData\Amazon\Tools

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2/23/2026   5:26 PM         327752 ebsnvme-id.exe
-a---l         6/10/2026   9:35 AM              0 nvme_amzn.exe

Windows では、nvme_amzn.exe にデバイスパスではなく ディスク番号を指定します。
そのため、まず Get-Disk でディスク番号を確認します。

Number         : 1
FriendlyName   : NVMe Amazon EC2 NVMe
SerialNumber   : AWSxxxxxxxxxxxxxxxx_00000001.
Size           : 75000000000
PartitionStyle : RAW

Number         : 0
FriendlyName   : NVMe Amazon Elastic B
SerialNumber   : volxxxxxxxxxxxxxxxxx_00000001.
Size           : 32212254720
PartitionStyle : MBR

今回の環境では、SerialNumber に vol から始まる値が表示されている Disk 0 が Amazon EBS、AWS から始まる値が表示されている Disk 1 が EC2 インスタンスストアであることを確認できました。

ここまでの確認手順については、前述の弊社ブログをご確認ください。

03

Amazon EBS の詳細なパフォーマンス統計を確認する

まず、Amazon EBS に対して nvme_amzn.exe を実行します。

cd 'C:\ProgramData\Amazon\Tools'
.\nvme_amzn.exe stats 0

ここでは、Amazon EBS のディスク番号である 0 を指定しています。
実行結果では、Linux インスタンスと同様に、以下のような情報を確認できます。

PS C:\ProgramData\Amazon\Tools> cd 'C:\ProgramData\Amazon\Tools'
PS C:\ProgramData\Amazon\Tools> .\nvme_amzn.exe stats 0
Total Ops:
  Read: 83089
  Write: 27955
Total Bytes:
  Read: 3430156288
  Write: 2757446656
Total Time (us):
  Read: 391827426
  Write: 47778661

EBS Volume Performance Exceeded (us):
  IOPS: 0
  Throughput: 8345295

EC2 Instance EBS Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

Queue Length (point in time): 0

Read IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 11836
[256      - 512     ] => 43516
[512      - 1024    ] => 13878
[1024     - 2048    ] => 3520
[2048     - 4096    ] => 496
[4096     - 8192    ] => 441
[8192     - 16384   ] => 2230
[16384    - 32768   ] => 3912
[32768    - 65536   ] => 1960
[65536    - 131072  ] => 1124
[131072   - 262144  ] => 176
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Write IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 4035
[512      - 1024    ] => 11933
[1024     - 2048    ] => 7903
[2048     - 4096    ] => 2591
[4096     - 8192    ] => 1395
[8192     - 16384   ] => 95
[16384    - 32768   ] => 0
[32768    - 65536   ] => 3
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

PS C:\ProgramData\Amazon\Tools>

Amazon EBS では、基本的な I/O 統計に加えて、EBS Volume Performance Exceeded (us) と EC2 Instance EBS Performance Exceeded (us) を確認できます。
今回の実行結果では、EBS Volume Performance Exceeded (us) の Throughput が 8345295 でした。
これは、EBS ボリューム側のスループット性能上限を超過した時間があったことを示しています。

一方、EC2 Instance EBS Performance Exceeded (us) は IOPS、Throughput ともに 0 でした。
そのため、今回の結果では EC2 インスタンス側の EBS 性能上限超過は確認されませんでした。
このように Amazon EBS では、EBS ボリューム側の性能上限に達しているのか、EC2 インスタンス側の EBS 性能上限に達しているのかを切り分けて確認できます。

EC2 インスタンスストアの詳細なパフォーマンス統計を確認する

次に、EC2 インスタンスストアボリュームに対して nvme_amzn.exe を実行します。

cd 'C:\ProgramData\Amazon\Tools'
.\nvme_amzn.exe stats 1

ここでは、EC2 インスタンスストアのディスク番号である 1 を指定しています。
実行結果では、以下のような情報を確認できます。

PS C:\ProgramData\Amazon\Tools> .\nvme_amzn.exe stats 1
Total Ops:
  Read: 4
  Write: 0
Total Bytes:
  Read: 17408
  Write: 0
Total Time (us):
  Read: 393
  Write: 0

EC2 Instance Local Storage Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

Queue Length (point in time): 1

Read IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 1
[64       - 128     ] => 2
[128      - 256     ] => 1
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Write IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

PS C:\ProgramData\Amazon\Tools>

EC2 インスタンスストアでも、I/O 数、転送バイト数、I/O に費やされた時間、キュー長、レイテンシーヒストグラムを確認できます。
一方で、性能上限超過に関する項目は Amazon EBS と異なります。

出力項目 内容
EC2 Instance Local Storage Performance Exceeded (us) - IOPS EC2 インスタンスストアボリュームの IOPS 性能上限超過時間
EC2 Instance Local Storage Performance Exceeded (us) - Throughput EC2 インスタンスストアボリュームのスループット性能上限超過時間

今回の実行結果では、EC2 Instance Local Storage Performance Exceeded (us) の IOPS と Throughput はどちらも 0 でした。
そのため、今回の結果では EC2 インスタンスストアボリュームの性能上限超過は確認されませんでした。
Amazon EBS で確認できる EBS Volume Performance Exceeded (us) や EC2 Instance EBS Performance Exceeded (us) は、EC2 インスタンスストアでは出力されませんでした。

EC2 インスタンスストアで --details を確認する

続いて、EC2 インスタンスストアボリュームに対して --details オプションを付けて実行します。

cd 'C:\ProgramData\Amazon\Tools'
.\nvme_amzn.exe stats --details 1

--details を指定すると、通常の統計情報に加えて、I/O サイズ別のレイテンシーヒストグラムを確認できます。

PS C:\ProgramData\Amazon\Tools> .\nvme_amzn.exe stats --details 1
Total Ops:
  Read: 4
  Write: 0
Total Bytes:
  Read: 17408
  Write: 0
Total Time (us):
  Read: 393
  Write: 0

EC2 Instance Local Storage Performance Exceeded (us):
  IOPS: 0
  Throughput: 0

Queue Length (point in time): 1

Read IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 1
[64       - 128     ] => 2
[128      - 256     ] => 1
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

Write IO Latency Histogram
=================================
Lower       Upper        IO Count
=================================
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================

=================================
IO Size Range:
(io_size_low: 0 -> io_size_high: 512]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 1
[64       - 128     ] => 1
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 512 -> io_size_high: 4K]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 4K -> io_size_high: 8K]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 1
[128      - 256     ] => 1
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 8K -> io_size_high: 32K]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
=================================
IO Size Range:
(io_size_low: 32K -> io_size_high: max]
Read IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
Write IO Latency Histogram
[0        - 1       ] => 0
[1        - 2       ] => 0
[2        - 4       ] => 0
[4        - 8       ] => 0
[8        - 16      ] => 0
[16       - 32      ] => 0
[32       - 64      ] => 0
[64       - 128     ] => 0
[128      - 256     ] => 0
[256      - 512     ] => 0
[512      - 1024    ] => 0
[1024     - 2048    ] => 0
[2048     - 4096    ] => 0
[4096     - 8192    ] => 0
[8192     - 16384   ] => 0
[16384    - 32768   ] => 0
[32768    - 65536   ] => 0
[65536    - 131072  ] => 0
[131072   - 262144  ] => 0
[262144   - 524288  ] => 0
[524288   - 1048576 ] => 0
[1048576  - 2097152 ] => 0
[2097152  - 4194304 ] => 0
[4194304  - 8388608 ] => 0
[8388608  - 16777216] => 0
[16777216 - 33554432] => 0
[33554432 - 67108864] => 0
[67108864 - 18446744073709551615] => 0
PS C:\ProgramData\Amazon\Tools>

004

今回の実行結果では、以下の I/O サイズ範囲ごとに、読み取りと書き込みのレイテンシーヒストグラムが出力されました。

I/O サイズ範囲
(io_size_low: 0 -> io_size_high: 512]
(io_size_low: 512 -> io_size_high: 4K]
(io_size_low: 4K -> io_size_high: 8K]
(io_size_low: 8K -> io_size_high: 32K]
(io_size_low: 32K -> io_size_high: max]

通常の nvme_amzn.exe stats では、読み取りと書き込み全体のレイテンシーヒストグラムを確認できます。
一方、--details を指定すると、I/O サイズごとに分類されたレイテンシーヒストグラムを確認できます。
この点は、Linux インスタンスと同様でした。

Windows インスタンスで確認できた違い

Windows インスタンスで確認する場合も、Linux インスタンスと同様に、Amazon EBS と EC2 インスタンスストアで取得できる情報に違いがありました。

観点 Amazon EBS EC2 インスタンスストア
基本的な I/O 統計 取得可能 取得可能
読み取り / 書き込みの転送バイト数 取得可能 取得可能
I/O に費やされた合計時間 取得可能 取得可能
キュー長 取得可能 取得可能
レイテンシーヒストグラム 取得可能 取得可能
ボリューム側の性能上限超過 EBS Volume Performance Exceeded (us) として確認可能 該当なし
EC2 インスタンス側の EBS 性能上限超過 EC2 Instance EBS Performance Exceeded (us) として確認可能 該当なし
インスタンスストアボリュームの性能上限超過 該当なし EC2 Instance Local Storage Performance Exceeded (us) として確認可能
I/O サイズ別のレイテンシーヒストグラム 今回の確認では出力されませんでした --details で取得可能

Windows インスタンスでは、Linux のように /dev/nvme0n1 などのデバイス名を指定するのではなく、Get-Disk で確認したディスク番号を指定する点が異なります。
今回の環境では、Disk 0 が Amazon EBS、Disk 1 が EC2 インスタンスストアであることを確認し、それぞれ nvme_amzn.exe で詳細なパフォーマンス統計を取得できました。

Linux と Windows のコマンドの違い

最後に、Linux と Windows での確認方法の違いを整理します。

OS 使用するコマンド 指定方法
Linux nvme amzn stats /dev/nvme0n1 などのデバイス名
Windows nvme_amzn.exe stats Get-Disk で確認したディスク番号

Linux と Windows で出力される統計情報の内容はおおむね同じですが、指定方法が異なる点に注意してください。

まとめ

今回は、Amazon EBS と EC2 インスタンスストアボリュームの詳細なパフォーマンス統計を確認しました。
どちらも、I/O 数、転送バイト数、I/O に費やされた時間、キュー長、レイテンシーヒストグラムといった基本的な統計情報を取得できました。
一方で、性能上限超過に関する出力項目は異なります。
Amazon EBS では EBS ボリューム側と EC2 インスタンス側の EBS 性能上限超過を確認でき、EC2 インスタンスストアではインスタンスストアボリュームの性能上限超過を確認できました。
また、EC2 インスタンスストアでは --details を指定することで、I/O サイズ別のレイテンシーヒストグラムを取得できました。今回確認した中では、この点が Amazon EBS との大きな違いでした。
性能調査時には、対象が Amazon EBS なのか EC2 インスタンスストアなのかを確認したうえで、出力項目の違いを意識して確認するとよさそうです。
本ブログが誰かの参考になれば幸いです。

参考資料

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事