Amazon EBS の詳細なパフォーマンス統計を取得して確認してみた
はじめに
テクニカルサポートの 片方 です。
EBS ボリュームのパフォーマンス確認といえば、CloudWatch の EBS メトリクスを見ることが多いと思います。
一方で、Amazon EBS には 「詳細なパフォーマンス統計」 という、EBS NVMe ブロックデバイスから取得できる統計情報もあります。
詳細なパフォーマンス統計では、読み取り/書き込み I/O の操作数やバイト数、I/O にかかった時間、キュー長、レイテンシーヒストグラム、EBS ボリュームや EC2 インスタンスの IOPS・スループット制限を超過していた時間などを確認できます。
CloudWatch の EBS メトリクスと似た項目もありますが、取得元や粒度、確認できる内容が異なります。
ざっくり整理すると、以下のような違いがあります。
| 項目 | CloudWatch EBS メトリクス | EBS の詳細なパフォーマンス統計 |
|---|---|---|
| 主な用途 | 通常監視、ダッシュボード、アラーム | 詳細な I/O 性能調査 |
| 取得元 | CloudWatch | インスタンス上の EBS NVMe デバイス |
| 粒度 | 最小 1 分単位 | 最大 1 秒間隔 |
| 取得方法 | CloudWatch メトリクスとして確認 | OS 上のツールや CloudWatch Agent などで取得 |
| 特徴 | 標準的に監視しやすい | レイテンシーヒストグラムや制限超過時間を確認できる |
CloudWatch EBS メトリクスは通常監視向け、「EBS の詳細なパフォーマンス統計」 はより細かい I/O 性能調査向けという使い分けになります。
この詳細なパフォーマンス統計は、Nitro ベースの EC2 インスタンスにアタッチされた EBS ボリュームで利用できます。また、統計情報はボリュームがアタッチされているインスタンス上から取得します。
今回、Linux インスタンスでは nvme-cli、Windows インスタンスでは nvme_amzn.exe を使って、EBS の詳細なパフォーマンス統計を実際に取得して確認してみました。
やってみた
ドキュメントを参考にやってみました。
※ 検証環境
- OS : Amazon Linux 2023 / Windows Server 2022
- インスタンスタイプ : m5.large
Linux インスタンス
Linux インスタンスではいくつかの方法がありますが、今回は nvme-cli を利用しました。
EBS の詳細なパフォーマンス統計は、Nitro ベースの EC2 インスタンスにアタッチされた EBS ボリュームで利用できます。
m5.large は Nitro System ベースのインスタンスであるため、前提条件を満たしています。

- お好みの方法で対象 EC2 インスタンスへ SSH 接続します。
- nvme コマンドが利用できるか確認します。
$ nvme version
インストールされていなければ、インストールします。
$ sudo dnf install nvme-cli
- EBS ボリュームの NVMe デバイス名を確認します。
$ lsblk
or
$ sudo nvme list
今回の環境では、ルートボリュームが /dev/nvme0n1 として認識されていました。

- EBS の詳細なパフォーマンス統計を取得します。
$ sudo nvme amzn stats /dev/nvme0n1
コマンド実行例
sh-5.2$ sudo nvme amzn stats /dev/nvme0n1
Total Ops:
Read: 13532
Write: 2825
Total Bytes:
Read: 289295360
Write: 278566400
Total Time (us):
Read: 8306217
Write: 4543168
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 ] => 5
[256 - 512 ] => 1406
[512 - 1024 ] => 11854
[1024 - 2048 ] => 267
[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 ] => 3
[256 - 512 ] => 17
[512 - 1024 ] => 1258
[1024 - 2048 ] => 597
[2048 - 4096 ] => 946
[4096 - 8192 ] => 4
[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 負荷をかけていない状態だったため、性能上限の超過は発生していませんでした。
EBS Volume Performance Exceeded と EC2 Instance EBS Performance Exceeded がどちらも 0 であることから、EBS ボリューム側の IOPS / スループット上限にも、EC2 インスタンス側の EBS IOPS / スループット上限にも到達していないことが分かります。Queue Length も 0 だったため、取得時点で完了待ちの I/O はありませんでした。
また、出力には読み取り/書き込み I/O のレイテンシーヒストグラムも含まれていました。
読み取り I/O は主に 512 us から 1024 us の範囲に、書き込み I/O は 512 us から 4096 us の範囲に多く分布していました。
CloudWatch の平均レイテンシーだけでは、このようなレイテンシー分布までは確認できません。EBS の詳細なパフォーマンス統計を利用することで、インスタンス上からより細かい I/O 状況を確認できました。
なお、負荷をかけた際の検証なども行っている弊社ブログも、あわせてご参照ください。
Windows インスタンス
Windows OS でも Amazon EBS の詳細なパフォーマンス統計を取得してみます。
nvme_amzn.exe ツールを利用して EBS の詳細なパフォーマンス統計を取得します。
- 対象の Windows インスタンスへ RDP で接続します。
- AWSNVMe ドライバーのバージョンを確認します。
Get-CimInstance Win32_PnPSignedDriver |
Where-Object {
$_.DeviceName -like "*NVMe*" -or
$_.DriverProviderName -like "*Amazon*"
} |
Select-Object DeviceName, DriverProviderName, DriverVersion |
Format-Table -AutoSize
出力例
DeviceName DriverProviderName DriverVersion
---------- ------------------ -------------
Amazon Elastic Network Adapter Amazon Web Services, Inc. 2.11.0.0
AWS NVMe Elastic Block Storage Adapter Amazon Inc. 1.8.1.49
PS C:\Windows\system32>
要件を満たしていない場合は、最新 Ver への更新してください。
nvme_amzn.exeが存在するか確認します。
Windows Server 2022 環境では、C:\ProgramData\Amazon\Tools配下にnvme_amzn.exeが存在します。
Get-ChildItem -Path 'C:\ProgramData\Amazon\Tools'

- 対象ボリュームのディスク番号を確認します。
nvme_amzn.exe stats では、Linux のように /dev/nvme0n1 のようなデバイス名ではなく、Windows 上の ディスク番号 を指定します。
Get-Disk | Select-Object Number, FriendlyName, SerialNumber, Size, PartitionStyle
又は ebsnvme-id.exe を使って、EBS ボリューム ID とディスク番号の対応を確認します。
cd 'C:\ProgramData\Amazon\Tools'
.\ebsnvme-id.exe
出力例
PS C:\Users\Administrator> Get-Disk | Select-Object Number, FriendlyName, SerialNumber, Size, PartitionStyle
Number : 0
FriendlyName : NVMe Amazon Elastic B
SerialNumber : vol07c94fcaec3d2b2a0_00000001.
Size : 32212254720
PartitionStyle : MBR
PS C:\Users\Administrator> cd 'C:\ProgramData\Amazon\Tools'
PS C:\ProgramData\Amazon\Tools> .\ebsnvme-id.exe
Disk Number: 0
Volume ID: vol-07c94fcaec3d2b2a0
Device Name: sda1
PS C:\ProgramData\Amazon\Tools>
今回の環境では、ルートボリュームが Disk 0 として認識されていました。
- EBS の詳細なパフォーマンス統計を取得します。
nvme_amzn.exeを使って EBS の詳細なパフォーマンス統計を取得します。
.\nvme_amzn.exe stats 0
0 は、先ほど ebsnvme-id.exe で確認したディスク番号です。
出力例
PS C:\ProgramData\Amazon\Tools> .\nvme_amzn.exe stats 0
Total Ops:
Read: 132560
Write: 48025
Total Bytes:
Read: 4022729216
Write: 4421921280
Total Time (us):
Read: 307690833
Write: 60560585
EBS Volume Performance Exceeded (us):
IOPS: 0
Throughput: 9205748
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 ] => 235
[128 - 256 ] => 32377
[256 - 512 ] => 66397
[512 - 1024 ] => 19220
[1024 - 2048 ] => 2704
[2048 - 4096 ] => 986
[4096 - 8192 ] => 2696
[8192 - 16384 ] => 6235
[16384 - 32768 ] => 101
[32768 - 65536 ] => 8
[65536 - 131072 ] => 1479
[131072 - 262144 ] => 122
[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 ] => 890
[256 - 512 ] => 21571
[512 - 1024 ] => 9477
[1024 - 2048 ] => 9806
[2048 - 4096 ] => 4196
[4096 - 8192 ] => 1935
[8192 - 16384 ] => 148
[16384 - 32768 ] => 0
[32768 - 65536 ] => 0
[65536 - 131072 ] => 2
[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>

Linux OS で nvme amzn stats /dev/nvme0n1 を実行した場合と同様に、読み取り/書き込み I/O 数、バイト数、I/O にかかった時間、キュー長、レイテンシーヒストグラム、性能上限を超過していた時間などを確認できました。
まとめ
本ブログが誰かの参考になれば幸いです。
参考資料
- Amazon EBS の Amazon CloudWatch メトリクス - Amazon EBS
- Amazon EBS の詳細なパフォーマンス統計 - Amazon EBS
- Amazon EBS ボリュームの詳細なパフォーマンス統計情報を ebsnvme スクリプトで取得してみた | DevelopersIO
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました






