Amazon EBS と EC2 インスタンスストアの詳細なパフォーマンス統計で取得できる情報の違いを確認してみた
はじめに
テクニカルサポートの 片方 です。
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 を利用しているため、この条件を満たしています。
ドキュメントを参考に確認します。
なお、事前準備や設定手順については、以下の弊社ブログをご参照ください。本ブログでは省略します。
Linux インスタンス
まずは、Linux インスタンスで Amazon EBS と EC2 インスタンスストアボリュームの詳細なパフォーマンス統計を確認します。
前述のとおり、nvme-cli の準備や詳細なパフォーマンス統計を取得するための設定は完了している前提です。
なお、Amazon Linux 2023 AMI では、AMI のリリース時期によって nvme-cli のバージョンが異なる可能性があるため、必要に応じて更新してください。

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 インスタンスストアとして確認します。

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 インスタンスストアであることを確認できました。
ここまでの確認手順については、前述の弊社ブログをご確認ください。

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>

今回の実行結果では、以下の 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 インスタンスストアなのかを確認したうえで、出力項目の違いを意識して確認するとよさそうです。
本ブログが誰かの参考になれば幸いです。
参考資料
- Amazon EC2 インスタンスストアボリュームの詳細なパフォーマンス統計 - Amazon Elastic Compute Cloud
- Amazon EBS の詳細なパフォーマンス統計を取得して確認してみた | DevelopersIO
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました







