ご了承
Qiitaはブログの補足記事という位置づけになりますのでご了承ください。
なお、今後も上げる記事は基本的には、ブログの補足記事という形の位置づけで投稿を今はしていく予定です。
(何かあれば、はてなからQiitaへ移行するかも知れませんが)
経緯
今回Qiitaに投稿するのは、ブログ記事の番外編という事になります。
ブログ記事を上げていつも通りリンクをXの方へ投稿したところ引用でコメントもらいました。
何をしていたかは、元のブログ記事はたどってくださればと思います。
やること
ブログに記載している通り、インスタンスのスループットを測ります。
インスタンスは、今回、AWSアカウントで少し課金しても平気な状態だったAWSアカウントを利用していきます。
インスタンスペックは、t3.2xlarge
と c7a.large
にて検証した記録のみをこちらに記載しておきます!
勿論、gp2インスタンスとgp3インスタンス、それぞれで見ていきますよ!
検証結果
t3.2xlarge,gp2のEBSの場合
$ df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 6.2G 456K 6.2G 1% /run
/dev/nvme0n1p1 50G 1.9G 49G 4% /
tmpfs 16G 0 16G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 3.1G 0 3.1G 0% /run/user/1000
$ iostat
Linux 6.1.106-116.188.amzn2023.x86_64 (ip-172-31-32-230.ap-northeast-1.compute.internal) 09/07/24 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.42 0.00 0.12 0.09 0.12 98.25
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
nvme0n1 9.59 241.70 180.26 0.00 147022 109648 0
$ sudo dd if=/dev/nvme0n1p1 of=/dev/null bs=1MiB status=progress count=5120
5236588544 bytes (5.2 GB, 4.9 GiB) copied, 38 s, 138 MB/s
5120+0 records in
5120+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 38.9859 s, 138 MB/s
約40秒、平均スループットは135MB/Sec
t3.2xlarge,gp3のEBSの場合
$ df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 6.2G 456K 6.2G 1% /run
/dev/nvme0n1p1 50G 1.9G 49G 4% /
tmpfs 16G 0 16G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 3.1G 0 3.1G 0% /run/user/1000
$ iostat
Linux 6.1.106-116.188.amzn2023.x86_64 (ip-172-31-43-209.ap-northeast-1.compute.internal) 09/07/24 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
4.58 0.00 0.39 0.47 0.58 93.98
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
nvme0n1 32.82 853.73 560.75 0.00 146926 96504 0
$ sudo dd if=/dev/nvme0n1p1 of=/dev/null bs=1MiB status=progress count=5120
5248122880 bytes (5.2 GB, 4.9 GiB) copied, 39 s, 135 MB/s
5120+0 records in
5120+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 39.9233 s, 134 MB/s
約40秒、平均スループット134MB/Sec
c7a.large,gp2のEBSの場合
$ df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 758M 596K 757M 1% /run
/dev/nvme0n1p1 50G 1.9G 49G 4% /
tmpfs 1.9G 0 1.9G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 379M 0 379M 0% /run/user/1000
$ iostat
Linux 6.1.106-116.188.amzn2023.x86_64 (ip-172-31-16-167.ap-northeast-1.compute.internal) 09/07/24 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.58 0.00 0.98 0.25 0.02 91.16
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
nvme0n1 40.05 1049.81 683.58 0.00 146910 95660 0
$ sudo dd if=/dev/nvme0n1p1 of=/dev/null bs=1MiB status=progress count=5120
5366611968 bytes (5.4 GB, 5.0 GiB) copied, 39 s, 138 MB/s
5120+0 records in
5120+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 39.016 s, 138 MB/s
約40秒、平均スループット138MB/Sec
c7a.large,gp3のEBSの場合
$ df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 758M 600K 757M 1% /run
/dev/nvme0n1p1 50G 1.9G 49G 4% /
tmpfs 1.9G 0 1.9G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 379M 0 379M 0% /run/user/1000
$ iostat
Linux 6.1.106-116.188.amzn2023.x86_64 (ip-172-31-25-26.ap-northeast-1.compute.internal) 09/07/24 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.87 0.00 0.87 0.31 0.01 92.94
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
nvme0n1 32.34 847.40 528.01 0.00 146990 91588 0
$ sudo dd if=/dev/nvme0n1p1 of=/dev/null bs=1MiB status=progress count=5120
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 39 s, 134 MB/s
5120+0 records in
5120+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 39.9672 s, 134 MB/s
時間は約40秒、平均スループット134MB/Sec
考察
やはり、インスタンクラス単位での制限(ブログ記事参照)でしょう。恐らく性能限界の可能性高そうです。
ストレージ最適化クラスであるi3等で試してみたかったのですが、ポリシー等の兼ね合いで起動せず、今回はここまでとなります。
恐らく、かなりの高速化が見込めるのかな?と思ってます。
と言うのも一般的に起動する際のEBSとしては実際に指定した容量となるのが一般的ですが、
下記の画像の様にディスクストレージがかなりの容量を利用する設定になるのです。
また、私は過去一度もi3インスタンスなどのストレージ最適化インスタンスを利用したことが無いので機会があったら試してみたいと思います。