OCI ブロック・ボリューム　動的パフォーマンス・スケーリング の IOPSを計測してみた

# 動的パフォーマンス・スケーリングとは
OCIから提供される、NVMe SSDベースのストレージサービスであるブロック・ボリュームにおいて、自動チューニングにより、パフォーマンスが動的にスケーリングされる機能です。
動的パフォーマンス・スケーリングでは、ボリュームで実際にモニターされたパフォーマンスに基づき、指定したレベルの中でボリュームのパフォーマンス（VPU）が調整されます。

[動的パフォーマンス・スケーリング](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/autotunevolumeperformance.htm#ariaid-title2 "")

[Flexible and affordable storage with OCI storage services | Oracle Live](https://www.youtube.com/watch?v=egD81gqdQQc&t=655s "")

# VPUとはなんぞや
動的パフォーマンス・スケーリングで調整されるVPUとは、Volume Performance Unit の略称で、ブロック・ボリュームのパフォーマンス・レベルを定義する指標になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/3df81980-4143-8295-9386-5c2f71d2e4bb.png)
この値によって、ボリュームのIOPSやスループットがGB単位で調整され、ブロック・ボリュームの性能値を制御できます。

# 動的パフォーマンス・スケーリングってどんなとき使えるの？
通常時はIOPSが高くないけど、一定時間、頻繁にストレージアクセスが発生するようなワークロードのコスト最適化に役立ちます。
例えば、営業時間内は大きく稼働しないが、夜間バッチで高負荷がかかるバッチサーバなどです。オンプレミスや他パブリッククラウドでは、予め夜間バッチの負荷ピーク時に合わせてリソースを用意しておく必要があろうかと思いますが、OCIでは、VPUの動的なパフォーマンススケーリングによって、必要な時に必要なリソースを充当することが可能になります。


# 今回検証すること
今回は、パフォーマンス・ベースの自動チューニングについて、fioでIOPSを計測する検証を行います。検証観点は、下記2つです。
1. パフォーマンスが拡張していくタイムラインの確認（VPU10～VPU120）
2. 大きな負荷をかけた後、デフォルトのパフォーマンスに戻る時間

[パフォーマンス・ベースの動的スケーリング ](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/autotunevolumeperformance.htm#ariaid-title2 "")
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/f9bf2871-2e86-c87d-7706-f145e40da27d.png)

:::note warn
個人の検証結果になりますので、あくまで参考値としてご認識ください。
:::

# 検証準備

1. インスタンスの作成

下記条件で、インスタンスを作成していきます。
```
Shape：VM.Standard.E4.Flex
OS：Oracle Linux8
OCPU：16core OCPU
Memory：64GB
Networking：パブリック・サブネットを選択（検証用のため）
拡張オプション：Oracle Cloudエージェントで「ブロック・ボリューム管理」を選択
```

今回、パフォーマンスをスケーリングして、VPU=30以上で性能値を計測したいため、マルチパスの設定をしていきます。

※マルチパスの設定については、下記の記事を参考にさせていただきました。
[Oracle Cloud: 超高パフォーマンス・ボリューム(UHP) のブロック・ボリュームをマルチパス対応の iSCSIボリュームアタッチメント構成してみてみた](https://qiita.com/shirok/items/4f98b9ba333266e5d97d "")

2.ブロック・ボリュームの作成

```
ボリューム・サイズとパフォーマンス：カスタムを選択
>ボリューム・サイズ：1,024GB
ターゲットのボリューム・パフォーマンス
>パフォーマンス・ベースの自動チューニング：オン
>デフォルトVPU/GB：10
>最大VPU/GB：120
```
作成画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/f4c2999a-e41b-8f16-c363-adf8ea376ed3.png)

作成後画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/e063421e-2fbd-4a17-eaf9-9eace8dda4bb.png)

3.ブロックボリュームのアタッチメント
コンピュート->インスタンス->インスタンスの詳細->アタッチされたブロック・ボリューム
```
ボリュームの選択
>2で作成したブロック・ボリュームを選択
デバイス・パス・オプション
>/dev/oracleoci/oraclevdb
アタッチメント・タイプ
>ISCSI
>Oracle Cloudエージェントを使用して、iSCSIでアタッチされたボリュームに自動的に接続します チェック
アクセス
>読取り/書込み
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/50bc65b4-e277-f2d6-b1dd-948ff65f3c09.png)

アタッチボタンを押下

4.マルチパス有効化の確認
マルチパスの列が「はい」になっていることを確認してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/a1a37e14-12fb-9975-c06b-288b05b937d1.png)

:::note warn
マルチパスを有効化するには、諸条件があります。
詳細は、下記リファレンスをご参照ください。
[超高パフォーマンス・ボリュームのためのアタッチメントの構成 ](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/configuringmultipathattachments.htm "")
:::

5.インスタンスログイン
```
user@cloudshell:~ (ap-tokyo-1)$ ls
ssh-key-2023-08-29.key
user@cloudshell:~ (ap-tokyo-1)$ chmod 600 ssh-key-2023-08-29.key
user@cloudshell:~ (ap-tokyo-1)$ ssh opc@<インスタンスのパブリックIPアドレス> -i ssh-key-2023-08-29.key
FIPS mode initialized
The authenticity of host 'インスタンスのパブリックIPアドレス (インスタンスのパブリックIPアドレス)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXX.
ECDSA key fingerprint is SHA1:XXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'インスタンスのパブリックIPアドレス' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket
[opc@instance-e4f16-test ~]$ 
```

6.マルチパスの確認
```
[opc@instance-e4f16-test ~]$ sudo lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                  8:0    0 46.6G  0 disk  
├─sda1               8:1    0  100M  0 part  /boot/efi
├─sda2               8:2    0    1G  0 part  /boot
└─sda3               8:3    0 45.5G  0 part  
  ├─ocivolume-root 252:0    0 35.5G  0 lvm   /
  └─ocivolume-oled 252:1    0   10G  0 lvm   /var/oled
sdb                  8:16   0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdc                  8:32   0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdd                  8:48   0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sde                  8:64   0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdf                  8:80   0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdg                  8:96   0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdh                  8:112  0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdi                  8:128  0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdj                  8:144  0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
sdk                  8:160  0    1T  0 disk  
└─mpatha           252:2    0    1T  0 mpath 
```
```
[opc@instance-e4f16-test ~]$ ll /dev/oracleoci/oraclevd*
lrwxrwxrwx. 1 root root  6 Aug 29 11:10 /dev/oracleoci/oraclevda -> ../sda
lrwxrwxrwx. 1 root root  7 Aug 29 11:10 /dev/oracleoci/oraclevda1 -> ../sda1
lrwxrwxrwx. 1 root root  7 Aug 29 11:10 /dev/oracleoci/oraclevda2 -> ../sda2
lrwxrwxrwx. 1 root root  7 Aug 29 11:10 /dev/oracleoci/oraclevda3 -> ../sda3
lrwxrwxrwx. 1 root root 18 Aug 29 11:16 /dev/oracleoci/oraclevdb -> /dev/mapper/mpatha
```
7.fioダウンロード
```
sudo yum install fio
Ksplice for Oracle Linux 8 (x86_64)                                                                                                                                                                                                         51 MB/s | 3.3 MB     00:00    
MySQL 8.0 for Oracle Linux 8 (x86_64)                                                                                                                                                                                                       14 MB/s | 3.0 MB     00:00    
MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64)                                                                                                                                                                                      9.1 MB/s | 491 kB     00:00    
MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64)                                                                                                                                                                                 701 kB/s |  30 kB     00:00    
Oracle Software for OCI users on Oracle Linux 8 (x86_64)                                                                                                                                                                                   159 MB/s |  94 MB     00:00    
Oracle Linux 8 BaseOS Latest (x86_64)                                                                                                                                                                                                      164 MB/s |  62 MB     00:00    
Oracle Linux 8 Application Stream (x86_64)                                                                                                                                                                                                 145 MB/s |  48 MB     00:00    
Oracle Linux 8 Addons (x86_64)                                                                                                                                                                                                              95 MB/s | 6.9 MB     00:00    
Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64)                                                                                                                                                                 119 MB/s |  19 MB     00:00    
Dependencies resolved.
=中略=
Total download size: 5.0 M
Installed size: 17 M
Is this ok [y/N]: yes
=中略=
Complete!
```
```
[opc@instance-e4f16-test ~]$ fio -v
fio-3.19
```
# 検証１：パフォーマンスが拡張していくタイムラインの確認（VPU10～VPU120）
```
sudo fio --filename=/dev/oracleoci/oraclevdb --direct=1 --rw=read --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
```
上記のコマンドを実行し、まずは2分間（--runtime=120）でReadのIOPSを計測していきます。
IOPSの初期状態は、ブロック・ボリュームのコンソール画面から確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/d560f042-08cd-1b0b-4787-747440742fc1.png)
自動チューニングIOPSは「25,000 IOPS」となっていることがわかります。

実行します。
```
iops-test-job: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256
...
fio-3.19
Starting 4 processes
Jobs: 4 (f=4): [R(4)][2.5%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:58s]
Jobs: 4 (f=4): [R(4)][4.1%][r=97.8MiB/s][r=25.0k IOPS][eta 01m:56s] 
Jobs: 4 (f=4): [R(4)][5.0%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][6.6%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:53s] 
Jobs: 4 (f=4): [R(4)][8.3%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:51s] 
Jobs: 4 (f=4): [R(4)][9.1%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:50s]
Jobs: 4 (f=4): [R(4)][9.9%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:49s]
Jobs: 4 (f=4): [R(4)][10.7%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:48s]
Jobs: 4 (f=4): [R(4)][11.6%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:47s]
Jobs: 4 (f=4): [R(4)][12.4%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:46s]
Jobs: 4 (f=4): [R(4)][13.2%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:45s]
Jobs: 4 (f=4): [R(4)][14.0%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:44s]
Jobs: 4 (f=4): [R(4)][14.9%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:43s]
Jobs: 4 (f=4): [R(4)][15.7%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:42s]
Jobs: 4 (f=4): [R(4)][16.5%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:41s]
Jobs: 4 (f=4): [R(4)][17.4%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:40s]
Jobs: 4 (f=4): [R(4)][18.2%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:39s]
Jobs: 4 (f=4): [R(4)][19.0%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:38s]
Jobs: 4 (f=4): [R(4)][19.8%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:37s]
Jobs: 4 (f=4): [R(4)][20.7%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:36s]
Jobs: 4 (f=4): [R(4)][21.5%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:35s]
Jobs: 4 (f=4): [R(4)][22.3%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:34s]
Jobs: 4 (f=4): [R(4)][23.1%][r=97.7MiB/s][r=25.0k IOPS][eta 01m:33s]
Jobs: 4 (f=4): [R(4)][24.0%][r=264MiB/s][r=67.5k IOPS][eta 01m:32s]
Jobs: 4 (f=4): [R(4)][24.8%][r=195MiB/s][r=50.0k IOPS][eta 01m:31s]
Jobs: 4 (f=4): [R(4)][25.6%][r=195MiB/s][r=50.0k IOPS][eta 01m:30s]
Jobs: 4 (f=4): [R(4)][26.4%][r=195MiB/s][r=50.0k IOPS][eta 01m:29s]
Jobs: 4 (f=4): [R(4)][27.3%][r=195MiB/s][r=50.0k IOPS][eta 01m:28s]
Jobs: 4 (f=4): [R(4)][28.1%][r=195MiB/s][r=50.0k IOPS][eta 01m:27s]
Jobs: 4 (f=4): [R(4)][28.9%][r=195MiB/s][r=50.0k IOPS][eta 01m:26s]
Jobs: 4 (f=4): [R(4)][29.8%][r=195MiB/s][r=50.0k IOPS][eta 01m:25s]
Jobs: 4 (f=4): [R(4)][30.6%][r=195MiB/s][r=50.0k IOPS][eta 01m:24s]
Jobs: 4 (f=4): [R(4)][31.4%][r=195MiB/s][r=50.0k IOPS][eta 01m:23s]
Jobs: 4 (f=4): [R(4)][32.2%][r=195MiB/s][r=50.0k IOPS][eta 01m:22s]
Jobs: 4 (f=4): [R(4)][33.1%][r=195MiB/s][r=50.0k IOPS][eta 01m:21s]
Jobs: 4 (f=4): [R(4)][33.9%][r=195MiB/s][r=50.0k IOPS][eta 01m:20s]
Jobs: 4 (f=4): [R(4)][34.7%][r=196MiB/s][r=50.0k IOPS][eta 01m:19s]
Jobs: 4 (f=4): [R(4)][35.5%][r=195MiB/s][r=50.0k IOPS][eta 01m:18s]
Jobs: 4 (f=4): [R(4)][36.4%][r=195MiB/s][r=50.0k IOPS][eta 01m:17s]
Jobs: 4 (f=4): [R(4)][37.2%][r=195MiB/s][r=50.0k IOPS][eta 01m:16s]
Jobs: 4 (f=4): [R(4)][38.0%][r=195MiB/s][r=50.0k IOPS][eta 01m:15s]
Jobs: 4 (f=4): [R(4)][38.8%][r=195MiB/s][r=50.0k IOPS][eta 01m:14s]
Jobs: 4 (f=4): [R(4)][39.7%][r=195MiB/s][r=50.0k IOPS][eta 01m:13s]
Jobs: 4 (f=4): [R(4)][40.5%][r=195MiB/s][r=50.0k IOPS][eta 01m:12s]
Jobs: 4 (f=4): [R(4)][41.3%][r=195MiB/s][r=50.0k IOPS][eta 01m:11s]
Jobs: 4 (f=4): [R(4)][42.1%][r=195MiB/s][r=50.0k IOPS][eta 01m:10s]
Jobs: 4 (f=4): [R(4)][43.0%][r=430MiB/s][r=110k IOPS][eta 01m:09s]
Jobs: 4 (f=4): [R(4)][43.8%][r=293MiB/s][r=75.0k IOPS][eta 01m:08s]
Jobs: 4 (f=4): [R(4)][44.6%][r=293MiB/s][r=75.0k IOPS][eta 01m:07s]
Jobs: 4 (f=4): [R(4)][45.5%][r=293MiB/s][r=75.0k IOPS][eta 01m:06s]
Jobs: 4 (f=4): [R(4)][46.3%][r=293MiB/s][r=75.0k IOPS][eta 01m:05s]
Jobs: 4 (f=4): [R(4)][47.1%][r=293MiB/s][r=75.0k IOPS][eta 01m:04s]
Jobs: 4 (f=4): [R(4)][47.9%][r=293MiB/s][r=75.0k IOPS][eta 01m:03s]
Jobs: 4 (f=4): [R(4)][48.8%][r=293MiB/s][r=75.0k IOPS][eta 01m:02s]
Jobs: 4 (f=4): [R(4)][49.6%][r=293MiB/s][r=75.0k IOPS][eta 01m:01s]
Jobs: 4 (f=4): [R(4)][50.4%][r=293MiB/s][r=75.0k IOPS][eta 01m:00s]
Jobs: 4 (f=4): [R(4)][51.2%][r=293MiB/s][r=75.0k IOPS][eta 00m:59s]
Jobs: 4 (f=4): [R(4)][52.1%][r=293MiB/s][r=75.0k IOPS][eta 00m:58s]
Jobs: 4 (f=4): [R(4)][52.9%][r=293MiB/s][r=75.0k IOPS][eta 00m:57s]
Jobs: 4 (f=4): [R(4)][53.7%][r=293MiB/s][r=75.0k IOPS][eta 00m:56s]
Jobs: 4 (f=4): [R(4)][54.5%][r=293MiB/s][r=75.0k IOPS][eta 00m:55s]
Jobs: 4 (f=4): [R(4)][55.4%][r=293MiB/s][r=75.0k IOPS][eta 00m:54s]
Jobs: 4 (f=4): [R(4)][56.2%][r=293MiB/s][r=75.0k IOPS][eta 00m:53s]
Jobs: 4 (f=4): [R(4)][57.0%][r=293MiB/s][r=75.0k IOPS][eta 00m:52s]
Jobs: 4 (f=4): [R(4)][57.9%][r=293MiB/s][r=75.0k IOPS][eta 00m:51s]
Jobs: 4 (f=4): [R(4)][58.7%][r=293MiB/s][r=75.0k IOPS][eta 00m:50s]
Jobs: 4 (f=4): [R(4)][59.5%][r=293MiB/s][r=75.0k IOPS][eta 00m:49s]
Jobs: 4 (f=4): [R(4)][60.3%][r=293MiB/s][r=75.0k IOPS][eta 00m:48s]
Jobs: 4 (f=4): [R(4)][61.2%][r=293MiB/s][r=75.0k IOPS][eta 00m:47s]
Jobs: 4 (f=4): [R(4)][62.0%][r=478MiB/s][r=122k IOPS][eta 00m:46s]
Jobs: 4 (f=4): [R(4)][62.8%][r=391MiB/s][r=100k IOPS][eta 00m:45s]
Jobs: 4 (f=4): [R(4)][63.6%][r=391MiB/s][r=100k IOPS][eta 00m:44s]
Jobs: 4 (f=4): [R(4)][64.5%][r=391MiB/s][r=100k IOPS][eta 00m:43s]
Jobs: 4 (f=4): [R(4)][65.3%][r=391MiB/s][r=100k IOPS][eta 00m:42s]
Jobs: 4 (f=4): [R(4)][66.1%][r=391MiB/s][r=100k IOPS][eta 00m:41s]
Jobs: 4 (f=4): [R(4)][66.9%][r=391MiB/s][r=100k IOPS][eta 00m:40s]
Jobs: 4 (f=4): [R(4)][67.8%][r=391MiB/s][r=100k IOPS][eta 00m:39s]
Jobs: 4 (f=4): [R(4)][68.6%][r=391MiB/s][r=100k IOPS][eta 00m:38s]
Jobs: 4 (f=4): [R(4)][69.4%][r=391MiB/s][r=100k IOPS][eta 00m:37s]
Jobs: 4 (f=4): [R(4)][70.2%][r=391MiB/s][r=100k IOPS][eta 00m:36s]
Jobs: 4 (f=4): [R(4)][71.1%][r=391MiB/s][r=100k IOPS][eta 00m:35s]
Jobs: 4 (f=4): [R(4)][71.9%][r=391MiB/s][r=100k IOPS][eta 00m:34s]
Jobs: 4 (f=4): [R(4)][72.7%][r=391MiB/s][r=100k IOPS][eta 00m:33s]
Jobs: 4 (f=4): [R(4)][73.6%][r=391MiB/s][r=100k IOPS][eta 00m:32s]
Jobs: 4 (f=4): [R(4)][74.4%][r=391MiB/s][r=100k IOPS][eta 00m:31s]
Jobs: 4 (f=4): [R(4)][75.2%][r=391MiB/s][r=100k IOPS][eta 00m:30s]
Jobs: 4 (f=4): [R(4)][76.0%][r=391MiB/s][r=100k IOPS][eta 00m:29s]
Jobs: 4 (f=4): [R(4)][77.5%][r=391MiB/s][r=100k IOPS][eta 00m:27s]
Jobs: 4 (f=4): [R(4)][78.3%][r=391MiB/s][r=100k IOPS][eta 00m:26s]
Jobs: 4 (f=4): [R(4)][79.2%][r=391MiB/s][r=100k IOPS][eta 00m:25s]
Jobs: 4 (f=4): [R(4)][80.0%][r=391MiB/s][r=100k IOPS][eta 00m:24s]
Jobs: 4 (f=4): [R(4)][80.8%][r=391MiB/s][r=100k IOPS][eta 00m:23s]
Jobs: 4 (f=4): [R(4)][81.7%][r=391MiB/s][r=100k IOPS][eta 00m:22s]
Jobs: 4 (f=4): [R(4)][82.5%][r=391MiB/s][r=100k IOPS][eta 00m:21s]
Jobs: 4 (f=4): [R(4)][83.3%][r=391MiB/s][r=100k IOPS][eta 00m:20s]
Jobs: 4 (f=4): [R(4)][84.2%][r=535MiB/s][r=137k IOPS][eta 00m:19s]
Jobs: 4 (f=4): [R(4)][85.0%][r=484MiB/s][r=124k IOPS][eta 00m:18s]
Jobs: 4 (f=4): [R(4)][85.8%][r=480MiB/s][r=123k IOPS][eta 00m:17s]
Jobs: 4 (f=4): [R(4)][86.7%][r=480MiB/s][r=123k IOPS][eta 00m:16s]
Jobs: 4 (f=4): [R(4)][87.5%][r=480MiB/s][r=123k IOPS][eta 00m:15s]
Jobs: 4 (f=4): [R(4)][88.3%][r=480MiB/s][r=123k IOPS][eta 00m:14s]
Jobs: 4 (f=4): [R(4)][89.2%][r=480MiB/s][r=123k IOPS][eta 00m:13s]
Jobs: 4 (f=4): [R(4)][90.0%][r=480MiB/s][r=123k IOPS][eta 00m:12s]
Jobs: 4 (f=4): [R(4)][90.8%][r=480MiB/s][r=123k IOPS][eta 00m:11s]
Jobs: 4 (f=4): [R(4)][91.7%][r=480MiB/s][r=123k IOPS][eta 00m:10s]
Jobs: 4 (f=4): [R(4)][92.5%][r=480MiB/s][r=123k IOPS][eta 00m:09s]
Jobs: 4 (f=4): [R(4)][93.3%][r=480MiB/s][r=123k IOPS][eta 00m:08s]
Jobs: 4 (f=4): [R(4)][94.2%][r=480MiB/s][r=123k IOPS][eta 00m:07s]
Jobs: 4 (f=4): [R(4)][95.0%][r=480MiB/s][r=123k IOPS][eta 00m:06s]
Jobs: 4 (f=4): [R(4)][95.8%][r=480MiB/s][r=123k IOPS][eta 00m:05s]
Jobs: 4 (f=4): [R(4)][96.7%][r=480MiB/s][r=123k IOPS][eta 00m:04s]
Jobs: 4 (f=4): [R(4)][97.5%][r=480MiB/s][r=123k IOPS][eta 00m:03s]
Jobs: 4 (f=4): [R(4)][98.3%][r=480MiB/s][r=123k IOPS][eta 00m:02s]
Jobs: 4 (f=4): [R(4)][99.2%][r=480MiB/s][r=123k IOPS][eta 00m:01s]
Jobs: 4 (f=4): [R(4)][100.0%][r=603MiB/s][r=154k IOPS][eta 00m:00s]
Jobs: 4 (f=0): [f(4)][100.0%][r=524MiB/s][r=134k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=4): err= 0: pid=44550: Tue Aug 29 01:27:51 2023
  read: IOPS=74.5k, BW=291MiB/s (305MB/s)(34.1GiB/120034msec)
    slat (usec): min=2, max=1357, avg= 8.86, stdev= 5.97
    clat (usec): min=54, max=193935, avg=13734.08, stdev=22563.98
     lat (usec): min=201, max=193942, avg=13743.07, stdev=22564.02
    clat percentiles (usec):
     |  1.00th=[   273],  5.00th=[   306], 10.00th=[   338], 20.00th=[   412],
     | 30.00th=[   619], 40.00th=[  2966], 50.00th=[  5407], 60.00th=[  8160],
     | 70.00th=[ 13173], 80.00th=[ 22676], 90.00th=[ 38011], 95.00th=[ 53740],
     | 99.00th=[110625], 99.50th=[127402], 99.90th=[185598], 99.95th=[185598],
     | 99.99th=[185598]
   bw (  KiB/s): min=100080, max=769432, per=99.89%, avg=297697.43, stdev=37025.29, samples=956
   iops        : min=25020, max=192358, avg=74424.32, stdev=9256.32, samples=956
  lat (usec)   : 100=0.01%, 250=0.17%, 500=26.16%, 750=5.39%, 1000=1.21%
  lat (msec)   : 2=2.99%, 4=7.12%, 10=22.97%, 20=9.83%, 50=19.01%
  lat (msec)   : 100=3.80%, 250=1.35%
  cpu          : usr=3.05%, sys=22.84%, ctx=5034705, majf=0, minf=1082
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
     issued rwts: total=8943029,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=256

Run status group 0 (all jobs):
   READ: bw=291MiB/s (305MB/s), 291MiB/s-291MiB/s (305MB/s-305MB/s), io=34.1GiB (36.6GB), run=120034-120034msec
```
実行ログを見てみると、
実行から30秒ほど（eta 01m:32sあたり）でIOPSが25.0Kから50.0Kに上昇しました。
続いて、25秒ほど（eta 01m:08sあたり）でIOPSが50.0Kから75.0Kに上昇しました。
続いて、20秒ほど（eta 00m:45sあたり）でIOPSが75.0Kから100.0Kに上昇しました。
さらに、25秒ほど（eta 00m:19sあたり）でIOPSが100.0Kから123.0Kに上昇しました。
終盤、20秒ほど（eta 00m:19sあたり）でIOPSが123.0Kから134.0Kに上昇しました。

この変化をブロックボリュームのコンソール画面からウォッチすると、このようになります。

50.0Kから75.0Kに上昇時点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/dc4e70af-070d-45b0-e433-fecfb5541ec9.png)
75.0Kから100.0Kに上昇時点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/ef8fcd96-8691-166a-8186-dd7201b0a403.png)
100.0Kから123.0Kに上昇時点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/b3ff4d09-0cc4-ea5b-fe89-799b614db1dc.png)
123.0Kから134.0Kに上昇時点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/39299fd5-72e8-5797-f402-8c3b05bf2db2.png)

2分間fioを実行したところ、VPUが10から60まで自動的に上昇していることがわかります。この結果は、ブロックボリュームのメトリックからも見て取れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/31defe2b-ba46-f464-b952-4da273fe4e14.png)

VPUが120まで上昇することを確認するため、今度は"--runtime"の値を240に変更し、4分間fioを実行してみます。
```
sudo fio --filename=/dev/oracleoci/oraclevdb --direct=1 --rw=read --bs=4k --ioengine=libaio --iodepth=256 --runtime=240 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
```
実行結果が長くなってしまったので、👇折りたたんでいます。

<details><summary>fio実行結果VPU60→VPU120</summary>

```
iops-test-job: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256
...
fio-3.19
Starting 4 processes
Jobs: 4 (f=4): [R(4)][1.2%][r=640MiB/s][r=164k IOPS][eta 03m:58s]
Jobs: 4 (f=4): [R(4)][1.7%][r=540MiB/s][r=138k IOPS][eta 03m:57s]
Jobs: 4 (f=4): [R(4)][2.1%][r=540MiB/s][r=138k IOPS][eta 03m:56s]
Jobs: 4 (f=4): [R(4)][2.5%][r=540MiB/s][r=138k IOPS][eta 03m:55s]
Jobs: 4 (f=4): [R(4)][2.9%][r=540MiB/s][r=138k IOPS][eta 03m:54s]
Jobs: 4 (f=4): [R(4)][3.3%][r=540MiB/s][r=138k IOPS][eta 03m:53s]
Jobs: 4 (f=4): [R(4)][3.7%][r=540MiB/s][r=138k IOPS][eta 03m:52s]
Jobs: 4 (f=4): [R(4)][4.1%][r=540MiB/s][r=138k IOPS][eta 03m:51s]
Jobs: 4 (f=4): [R(4)][4.6%][r=540MiB/s][r=138k IOPS][eta 03m:50s]
Jobs: 4 (f=4): [R(4)][5.0%][r=540MiB/s][r=138k IOPS][eta 03m:49s]
Jobs: 4 (f=4): [R(4)][5.4%][r=540MiB/s][r=138k IOPS][eta 03m:48s]
Jobs: 4 (f=4): [R(4)][5.8%][r=540MiB/s][r=138k IOPS][eta 03m:47s]
Jobs: 4 (f=4): [R(4)][6.2%][r=540MiB/s][r=138k IOPS][eta 03m:46s]
Jobs: 4 (f=4): [R(4)][6.6%][r=540MiB/s][r=138k IOPS][eta 03m:45s]
Jobs: 4 (f=4): [R(4)][7.1%][r=540MiB/s][r=138k IOPS][eta 03m:44s]
Jobs: 4 (f=4): [R(4)][7.5%][r=540MiB/s][r=138k IOPS][eta 03m:43s]
Jobs: 4 (f=4): [R(4)][7.9%][r=540MiB/s][r=138k IOPS][eta 03m:42s]
Jobs: 4 (f=4): [R(4)][8.3%][r=540MiB/s][r=138k IOPS][eta 03m:41s]
Jobs: 4 (f=4): [R(4)][8.7%][r=540MiB/s][r=138k IOPS][eta 03m:40s]
Jobs: 4 (f=4): [R(4)][9.1%][r=540MiB/s][r=138k IOPS][eta 03m:39s]
Jobs: 4 (f=4): [R(4)][9.5%][r=540MiB/s][r=138k IOPS][eta 03m:38s]
Jobs: 4 (f=4): [R(4)][10.0%][r=540MiB/s][r=138k IOPS][eta 03m:37s]
Jobs: 4 (f=4): [R(4)][10.4%][r=540MiB/s][r=138k IOPS][eta 03m:36s]
Jobs: 4 (f=4): [R(4)][10.8%][r=540MiB/s][r=138k IOPS][eta 03m:35s]
Jobs: 4 (f=4): [R(4)][11.2%][r=540MiB/s][r=138k IOPS][eta 03m:34s]
Jobs: 4 (f=4): [R(4)][11.6%][r=540MiB/s][r=138k IOPS][eta 03m:33s]
Jobs: 4 (f=4): [R(4)][12.0%][r=540MiB/s][r=138k IOPS][eta 03m:32s]
Jobs: 4 (f=4): [R(4)][12.4%][r=668MiB/s][r=171k IOPS][eta 03m:31s]
Jobs: 4 (f=4): [R(4)][12.9%][r=600MiB/s][r=154k IOPS][eta 03m:30s]
Jobs: 4 (f=4): [R(4)][13.3%][r=600MiB/s][r=154k IOPS][eta 03m:29s]
Jobs: 4 (f=4): [R(4)][13.7%][r=600MiB/s][r=154k IOPS][eta 03m:28s]
Jobs: 4 (f=4): [R(4)][14.1%][r=600MiB/s][r=154k IOPS][eta 03m:27s]
Jobs: 4 (f=4): [R(4)][14.5%][r=600MiB/s][r=154k IOPS][eta 03m:26s]
Jobs: 4 (f=4): [R(4)][14.9%][r=600MiB/s][r=154k IOPS][eta 03m:25s]
Jobs: 4 (f=4): [R(4)][15.4%][r=600MiB/s][r=154k IOPS][eta 03m:24s]
Jobs: 4 (f=4): [R(4)][15.8%][r=600MiB/s][r=154k IOPS][eta 03m:23s]
Jobs: 4 (f=4): [R(4)][16.2%][r=600MiB/s][r=154k IOPS][eta 03m:22s]
Jobs: 4 (f=4): [R(4)][16.6%][r=600MiB/s][r=154k IOPS][eta 03m:21s]
Jobs: 4 (f=4): [R(4)][17.0%][r=600MiB/s][r=154k IOPS][eta 03m:20s]
Jobs: 4 (f=4): [R(4)][17.4%][r=600MiB/s][r=154k IOPS][eta 03m:19s]
Jobs: 4 (f=4): [R(4)][17.8%][r=600MiB/s][r=154k IOPS][eta 03m:18s]
Jobs: 4 (f=4): [R(4)][18.3%][r=600MiB/s][r=154k IOPS][eta 03m:17s]
Jobs: 4 (f=4): [R(4)][18.7%][r=600MiB/s][r=154k IOPS][eta 03m:16s]
Jobs: 4 (f=4): [R(4)][19.1%][r=600MiB/s][r=154k IOPS][eta 03m:15s]
Jobs: 4 (f=4): [R(4)][19.5%][r=600MiB/s][r=154k IOPS][eta 03m:14s]
Jobs: 4 (f=4): [R(4)][19.9%][r=600MiB/s][r=154k IOPS][eta 03m:13s]
Jobs: 4 (f=4): [R(4)][20.3%][r=600MiB/s][r=154k IOPS][eta 03m:12s]
Jobs: 4 (f=4): [R(4)][20.7%][r=600MiB/s][r=154k IOPS][eta 03m:11s]
Jobs: 4 (f=4): [R(4)][21.2%][r=600MiB/s][r=154k IOPS][eta 03m:10s]
Jobs: 4 (f=4): [R(4)][21.6%][r=600MiB/s][r=154k IOPS][eta 03m:09s]
Jobs: 4 (f=4): [R(4)][22.0%][r=600MiB/s][r=154k IOPS][eta 03m:08s]
Jobs: 4 (f=4): [R(4)][22.4%][r=600MiB/s][r=154k IOPS][eta 03m:07s]
Jobs: 4 (f=4): [R(4)][22.8%][r=710MiB/s][r=182k IOPS][eta 03m:06s]
Jobs: 4 (f=4): [R(4)][23.2%][r=661MiB/s][r=169k IOPS][eta 03m:05s]
Jobs: 4 (f=4): [R(4)][23.7%][r=660MiB/s][r=169k IOPS][eta 03m:04s]
Jobs: 4 (f=4): [R(4)][24.1%][r=660MiB/s][r=169k IOPS][eta 03m:03s]
Jobs: 4 (f=4): [R(4)][24.5%][r=661MiB/s][r=169k IOPS][eta 03m:02s]
Jobs: 4 (f=4): [R(4)][24.9%][r=660MiB/s][r=169k IOPS][eta 03m:01s]
Jobs: 4 (f=4): [R(4)][25.3%][r=660MiB/s][r=169k IOPS][eta 03m:00s]
Jobs: 4 (f=4): [R(4)][25.7%][r=660MiB/s][r=169k IOPS][eta 02m:59s]
Jobs: 4 (f=4): [R(4)][26.1%][r=660MiB/s][r=169k IOPS][eta 02m:58s]
Jobs: 4 (f=4): [R(4)][26.6%][r=660MiB/s][r=169k IOPS][eta 02m:57s]
Jobs: 4 (f=4): [R(4)][27.0%][r=660MiB/s][r=169k IOPS][eta 02m:56s]
Jobs: 4 (f=4): [R(4)][27.4%][r=660MiB/s][r=169k IOPS][eta 02m:55s]
Jobs: 4 (f=4): [R(4)][27.8%][r=660MiB/s][r=169k IOPS][eta 02m:54s]
Jobs: 4 (f=4): [R(4)][28.2%][r=660MiB/s][r=169k IOPS][eta 02m:53s]
Jobs: 4 (f=4): [R(4)][28.6%][r=661MiB/s][r=169k IOPS][eta 02m:52s]
Jobs: 4 (f=4): [R(4)][29.0%][r=660MiB/s][r=169k IOPS][eta 02m:51s]
Jobs: 4 (f=4): [R(4)][29.5%][r=660MiB/s][r=169k IOPS][eta 02m:50s]
Jobs: 4 (f=4): [R(4)][29.9%][r=660MiB/s][r=169k IOPS][eta 02m:49s]
Jobs: 4 (f=4): [R(4)][30.3%][r=687MiB/s][r=176k IOPS][eta 02m:48s]
Jobs: 4 (f=4): [R(4)][30.7%][r=785MiB/s][r=201k IOPS][eta 02m:47s]
Jobs: 4 (f=4): [R(4)][31.1%][r=720MiB/s][r=184k IOPS][eta 02m:46s]
Jobs: 4 (f=4): [R(4)][31.5%][r=720MiB/s][r=184k IOPS][eta 02m:45s]
Jobs: 4 (f=4): [R(4)][32.0%][r=720MiB/s][r=184k IOPS][eta 02m:44s]
Jobs: 4 (f=4): [R(4)][32.4%][r=720MiB/s][r=184k IOPS][eta 02m:43s]
Jobs: 4 (f=4): [R(4)][32.8%][r=720MiB/s][r=184k IOPS][eta 02m:42s]
Jobs: 4 (f=4): [R(4)][33.2%][r=720MiB/s][r=184k IOPS][eta 02m:41s]
Jobs: 4 (f=4): [R(4)][33.6%][r=720MiB/s][r=184k IOPS][eta 02m:40s]
Jobs: 4 (f=4): [R(4)][34.0%][r=720MiB/s][r=184k IOPS][eta 02m:39s]
Jobs: 4 (f=4): [R(4)][34.4%][r=720MiB/s][r=184k IOPS][eta 02m:38s]
Jobs: 4 (f=4): [R(4)][34.9%][r=720MiB/s][r=184k IOPS][eta 02m:37s]
Jobs: 4 (f=4): [R(4)][35.3%][r=720MiB/s][r=184k IOPS][eta 02m:36s]
Jobs: 4 (f=4): [R(4)][35.7%][r=720MiB/s][r=184k IOPS][eta 02m:35s]
Jobs: 4 (f=4): [R(4)][36.2%][r=720MiB/s][r=184k IOPS][eta 02m:33s]
Jobs: 4 (f=4): [R(4)][36.7%][r=721MiB/s][r=184k IOPS][eta 02m:32s]
Jobs: 4 (f=4): [R(4)][37.1%][r=720MiB/s][r=184k IOPS][eta 02m:31s]
Jobs: 4 (f=4): [R(4)][37.5%][r=721MiB/s][r=185k IOPS][eta 02m:30s]
Jobs: 4 (f=4): [R(4)][37.9%][r=720MiB/s][r=184k IOPS][eta 02m:29s]
Jobs: 4 (f=4): [R(4)][38.3%][r=720MiB/s][r=184k IOPS][eta 02m:28s]
Jobs: 4 (f=4): [R(4)][38.8%][r=720MiB/s][r=184k IOPS][eta 02m:27s]
Jobs: 4 (f=4): [R(4)][39.2%][r=720MiB/s][r=184k IOPS][eta 02m:26s]
Jobs: 4 (f=4): [R(4)][39.6%][r=720MiB/s][r=184k IOPS][eta 02m:25s]
Jobs: 4 (f=4): [R(4)][40.0%][r=721MiB/s][r=185k IOPS][eta 02m:24s]
Jobs: 4 (f=4): [R(4)][40.4%][r=720MiB/s][r=184k IOPS][eta 02m:23s]
Jobs: 4 (f=4): [R(4)][40.8%][r=720MiB/s][r=184k IOPS][eta 02m:22s]
Jobs: 4 (f=4): [R(4)][41.2%][r=848MiB/s][r=217k IOPS][eta 02m:21s]
Jobs: 4 (f=4): [R(4)][41.7%][r=780MiB/s][r=200k IOPS][eta 02m:20s]
Jobs: 4 (f=4): [R(4)][42.1%][r=781MiB/s][r=200k IOPS][eta 02m:19s]
Jobs: 4 (f=4): [R(4)][42.5%][r=780MiB/s][r=200k IOPS][eta 02m:18s]
Jobs: 4 (f=4): [R(4)][42.9%][r=780MiB/s][r=200k IOPS][eta 02m:17s]
Jobs: 4 (f=4): [R(4)][43.3%][r=780MiB/s][r=200k IOPS][eta 02m:16s]
Jobs: 4 (f=4): [R(4)][43.8%][r=780MiB/s][r=200k IOPS][eta 02m:15s]
Jobs: 4 (f=4): [R(4)][44.2%][r=780MiB/s][r=200k IOPS][eta 02m:14s]
Jobs: 4 (f=4): [R(4)][44.6%][r=781MiB/s][r=200k IOPS][eta 02m:13s]
Jobs: 4 (f=4): [R(4)][45.0%][r=780MiB/s][r=200k IOPS][eta 02m:12s]
Jobs: 4 (f=4): [R(4)][45.4%][r=780MiB/s][r=200k IOPS][eta 02m:11s]
Jobs: 4 (f=4): [R(4)][45.8%][r=780MiB/s][r=200k IOPS][eta 02m:10s]
Jobs: 4 (f=4): [R(4)][46.2%][r=780MiB/s][r=200k IOPS][eta 02m:09s]
Jobs: 4 (f=4): [R(4)][46.7%][r=780MiB/s][r=200k IOPS][eta 02m:08s]
Jobs: 4 (f=4): [R(4)][47.1%][r=780MiB/s][r=200k IOPS][eta 02m:07s]
Jobs: 4 (f=4): [R(4)][47.5%][r=781MiB/s][r=200k IOPS][eta 02m:06s]
Jobs: 4 (f=4): [R(4)][47.9%][r=780MiB/s][r=200k IOPS][eta 02m:05s]
Jobs: 4 (f=4): [R(4)][48.3%][r=780MiB/s][r=200k IOPS][eta 02m:04s]
Jobs: 4 (f=4): [R(4)][48.8%][r=781MiB/s][r=200k IOPS][eta 02m:03s]
Jobs: 4 (f=4): [R(4)][49.2%][r=780MiB/s][r=200k IOPS][eta 02m:02s]
Jobs: 4 (f=4): [R(4)][49.6%][r=780MiB/s][r=200k IOPS][eta 02m:01s]
Jobs: 4 (f=4): [R(4)][50.0%][r=780MiB/s][r=200k IOPS][eta 02m:00s]
Jobs: 4 (f=4): [R(4)][50.4%][r=927MiB/s][r=237k IOPS][eta 01m:59s]
Jobs: 4 (f=4): [R(4)][50.8%][r=840MiB/s][r=215k IOPS][eta 01m:58s]
Jobs: 4 (f=4): [R(4)][51.2%][r=840MiB/s][r=215k IOPS][eta 01m:57s]
Jobs: 4 (f=4): [R(4)][51.7%][r=840MiB/s][r=215k IOPS][eta 01m:56s]
Jobs: 4 (f=4): [R(4)][52.1%][r=841MiB/s][r=215k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][52.9%][r=841MiB/s][r=215k IOPS][eta 01m:53s] 
Jobs: 4 (f=4): [R(4)][53.3%][r=841MiB/s][r=215k IOPS][eta 01m:52s]
Jobs: 4 (f=4): [R(4)][53.8%][r=840MiB/s][r=215k IOPS][eta 01m:51s]
Jobs: 4 (f=4): [R(4)][54.2%][r=840MiB/s][r=215k IOPS][eta 01m:50s]
Jobs: 4 (f=4): [R(4)][54.6%][r=840MiB/s][r=215k IOPS][eta 01m:49s]
Jobs: 4 (f=4): [R(4)][55.0%][r=840MiB/s][r=215k IOPS][eta 01m:48s]
Jobs: 4 (f=4): [R(4)][55.4%][r=841MiB/s][r=215k IOPS][eta 01m:47s]
Jobs: 4 (f=4): [R(4)][55.8%][r=839MiB/s][r=215k IOPS][eta 01m:46s]
Jobs: 4 (f=4): [R(4)][56.2%][r=841MiB/s][r=215k IOPS][eta 01m:45s]
Jobs: 4 (f=4): [R(4)][56.7%][r=840MiB/s][r=215k IOPS][eta 01m:44s]
Jobs: 4 (f=4): [R(4)][57.1%][r=840MiB/s][r=215k IOPS][eta 01m:43s]
Jobs: 4 (f=4): [R(4)][57.5%][r=840MiB/s][r=215k IOPS][eta 01m:42s]
Jobs: 4 (f=4): [R(4)][57.9%][r=840MiB/s][r=215k IOPS][eta 01m:41s]
Jobs: 4 (f=4): [R(4)][58.3%][r=840MiB/s][r=215k IOPS][eta 01m:40s]
Jobs: 4 (f=4): [R(4)][58.8%][r=840MiB/s][r=215k IOPS][eta 01m:39s]
Jobs: 4 (f=4): [R(4)][59.2%][r=922MiB/s][r=236k IOPS][eta 01m:38s]
Jobs: 4 (f=4): [R(4)][59.6%][r=918MiB/s][r=235k IOPS][eta 01m:37s]
Jobs: 4 (f=4): [R(4)][60.0%][r=900MiB/s][r=230k IOPS][eta 01m:36s]
Jobs: 4 (f=4): [R(4)][60.4%][r=900MiB/s][r=230k IOPS][eta 01m:35s]
Jobs: 4 (f=4): [R(4)][60.8%][r=901MiB/s][r=231k IOPS][eta 01m:34s]
Jobs: 4 (f=4): [R(4)][61.3%][r=900MiB/s][r=231k IOPS][eta 01m:33s]
Jobs: 4 (f=4): [R(4)][61.7%][r=900MiB/s][r=230k IOPS][eta 01m:32s]
Jobs: 4 (f=4): [R(4)][62.1%][r=900MiB/s][r=231k IOPS][eta 01m:31s]
Jobs: 4 (f=4): [R(4)][62.5%][r=900MiB/s][r=231k IOPS][eta 01m:30s]
Jobs: 4 (f=4): [R(4)][62.9%][r=901MiB/s][r=231k IOPS][eta 01m:29s]
Jobs: 4 (f=4): [R(4)][63.3%][r=889MiB/s][r=227k IOPS][eta 01m:28s]
Jobs: 4 (f=4): [R(4)][63.7%][r=865MiB/s][r=221k IOPS][eta 01m:27s]
Jobs: 4 (f=4): [R(4)][64.2%][r=889MiB/s][r=228k IOPS][eta 01m:26s]
Jobs: 4 (f=4): [R(4)][64.6%][r=958MiB/s][r=245k IOPS][eta 01m:25s]
Jobs: 4 (f=4): [R(4)][65.0%][r=901MiB/s][r=231k IOPS][eta 01m:24s]
Jobs: 4 (f=4): [R(4)][65.4%][r=900MiB/s][r=230k IOPS][eta 01m:23s]
Jobs: 4 (f=4): [R(4)][65.8%][r=901MiB/s][r=231k IOPS][eta 01m:22s]
Jobs: 4 (f=4): [R(4)][66.2%][r=900MiB/s][r=230k IOPS][eta 01m:21s]
Jobs: 4 (f=4): [R(4)][66.7%][r=900MiB/s][r=231k IOPS][eta 01m:20s]
Jobs: 4 (f=4): [R(4)][67.1%][r=900MiB/s][r=230k IOPS][eta 01m:19s]
Jobs: 4 (f=4): [R(4)][67.5%][r=901MiB/s][r=231k IOPS][eta 01m:18s]
Jobs: 4 (f=4): [R(4)][67.9%][r=900MiB/s][r=230k IOPS][eta 01m:17s]
Jobs: 4 (f=4): [R(4)][68.3%][r=900MiB/s][r=230k IOPS][eta 01m:16s]
Jobs: 4 (f=4): [R(4)][68.8%][r=901MiB/s][r=231k IOPS][eta 01m:15s]
Jobs: 4 (f=4): [R(4)][69.2%][r=900MiB/s][r=230k IOPS][eta 01m:14s]
Jobs: 4 (f=4): [R(4)][69.6%][r=900MiB/s][r=230k IOPS][eta 01m:13s]
Jobs: 4 (f=4): [R(4)][70.0%][r=900MiB/s][r=230k IOPS][eta 01m:12s]
Jobs: 4 (f=4): [R(4)][70.4%][r=900MiB/s][r=230k IOPS][eta 01m:11s]
Jobs: 4 (f=4): [R(4)][70.8%][r=901MiB/s][r=231k IOPS][eta 01m:10s]
Jobs: 4 (f=4): [R(4)][71.2%][r=900MiB/s][r=230k IOPS][eta 01m:09s]
Jobs: 4 (f=4): [R(4)][71.7%][r=900MiB/s][r=230k IOPS][eta 01m:08s]
Jobs: 4 (f=4): [R(4)][72.1%][r=900MiB/s][r=230k IOPS][eta 01m:07s]
Jobs: 4 (f=4): [R(4)][72.5%][r=900MiB/s][r=230k IOPS][eta 01m:06s]
Jobs: 4 (f=4): [R(4)][72.9%][r=901MiB/s][r=231k IOPS][eta 01m:05s]
Jobs: 4 (f=4): [R(4)][73.3%][r=900MiB/s][r=230k IOPS][eta 01m:04s]
Jobs: 4 (f=4): [R(4)][73.8%][r=900MiB/s][r=230k IOPS][eta 01m:03s]
Jobs: 4 (f=4): [R(4)][74.2%][r=901MiB/s][r=231k IOPS][eta 01m:02s]
Jobs: 4 (f=4): [R(4)][74.6%][r=900MiB/s][r=230k IOPS][eta 01m:01s]
Jobs: 4 (f=4): [R(4)][75.0%][r=900MiB/s][r=231k IOPS][eta 01m:00s]
Jobs: 4 (f=4): [R(4)][75.4%][r=900MiB/s][r=230k IOPS][eta 00m:59s]
Jobs: 4 (f=4): [R(4)][75.8%][r=901MiB/s][r=231k IOPS][eta 00m:58s]
Jobs: 4 (f=4): [R(4)][76.2%][r=899MiB/s][r=230k IOPS][eta 00m:57s]
Jobs: 4 (f=4): [R(4)][76.7%][r=900MiB/s][r=230k IOPS][eta 00m:56s]
Jobs: 4 (f=4): [R(4)][77.1%][r=901MiB/s][r=231k IOPS][eta 00m:55s]
Jobs: 4 (f=4): [R(4)][77.5%][r=900MiB/s][r=230k IOPS][eta 00m:54s]
Jobs: 4 (f=4): [R(4)][77.9%][r=875MiB/s][r=224k IOPS][eta 00m:53s]
Jobs: 4 (f=4): [R(4)][78.3%][r=907MiB/s][r=232k IOPS][eta 00m:52s]
Jobs: 4 (f=4): [R(4)][78.8%][r=919MiB/s][r=235k IOPS][eta 00m:51s]
Jobs: 4 (f=4): [R(4)][79.2%][r=900MiB/s][r=230k IOPS][eta 00m:50s]
Jobs: 4 (f=4): [R(4)][79.6%][r=900MiB/s][r=230k IOPS][eta 00m:49s]
Jobs: 4 (f=4): [R(4)][80.0%][r=901MiB/s][r=231k IOPS][eta 00m:48s]
Jobs: 4 (f=4): [R(4)][80.4%][r=900MiB/s][r=230k IOPS][eta 00m:47s]
Jobs: 4 (f=4): [R(4)][80.8%][r=900MiB/s][r=230k IOPS][eta 00m:46s]
Jobs: 4 (f=4): [R(4)][81.2%][r=901MiB/s][r=231k IOPS][eta 00m:45s]
Jobs: 4 (f=4): [R(4)][81.7%][r=901MiB/s][r=231k IOPS][eta 00m:44s]
Jobs: 4 (f=4): [R(4)][82.1%][r=900MiB/s][r=230k IOPS][eta 00m:43s]
Jobs: 4 (f=4): [R(4)][82.5%][r=900MiB/s][r=230k IOPS][eta 00m:42s]
Jobs: 4 (f=4): [R(4)][82.9%][r=900MiB/s][r=230k IOPS][eta 00m:41s]
Jobs: 4 (f=4): [R(4)][83.3%][r=900MiB/s][r=230k IOPS][eta 00m:40s]
Jobs: 4 (f=4): [R(4)][83.8%][r=899MiB/s][r=230k IOPS][eta 00m:39s]
Jobs: 4 (f=4): [R(4)][84.2%][r=901MiB/s][r=231k IOPS][eta 00m:38s]
Jobs: 4 (f=4): [R(4)][84.6%][r=901MiB/s][r=231k IOPS][eta 00m:37s]
Jobs: 4 (f=4): [R(4)][85.0%][r=900MiB/s][r=231k IOPS][eta 00m:36s]
Jobs: 4 (f=4): [R(4)][85.4%][r=900MiB/s][r=230k IOPS][eta 00m:35s]
Jobs: 4 (f=4): [R(4)][85.8%][r=901MiB/s][r=231k IOPS][eta 00m:34s]
Jobs: 4 (f=4): [R(4)][86.2%][r=900MiB/s][r=230k IOPS][eta 00m:33s]
Jobs: 4 (f=4): [R(4)][86.7%][r=901MiB/s][r=231k IOPS][eta 00m:32s]
Jobs: 4 (f=4): [R(4)][87.1%][r=900MiB/s][r=230k IOPS][eta 00m:31s]
Jobs: 4 (f=4): [R(4)][87.5%][r=900MiB/s][r=230k IOPS][eta 00m:30s]
Jobs: 4 (f=4): [R(4)][87.9%][r=898MiB/s][r=230k IOPS][eta 00m:29s]
Jobs: 4 (f=4): [R(4)][88.3%][r=902MiB/s][r=231k IOPS][eta 00m:28s]
Jobs: 4 (f=4): [R(4)][88.8%][r=900MiB/s][r=230k IOPS][eta 00m:27s]
Jobs: 4 (f=4): [R(4)][89.2%][r=900MiB/s][r=231k IOPS][eta 00m:26s]
Jobs: 4 (f=4): [R(4)][89.6%][r=900MiB/s][r=230k IOPS][eta 00m:25s]
Jobs: 4 (f=4): [R(4)][90.0%][r=901MiB/s][r=231k IOPS][eta 00m:24s]
Jobs: 4 (f=4): [R(4)][90.4%][r=900MiB/s][r=230k IOPS][eta 00m:23s]
Jobs: 4 (f=4): [R(4)][90.8%][r=900MiB/s][r=231k IOPS][eta 00m:22s]
Jobs: 4 (f=4): [R(4)][91.2%][r=901MiB/s][r=231k IOPS][eta 00m:21s]
Jobs: 4 (f=4): [R(4)][91.7%][r=900MiB/s][r=230k IOPS][eta 00m:20s]
Jobs: 4 (f=4): [R(4)][92.1%][r=900MiB/s][r=230k IOPS][eta 00m:19s]
Jobs: 4 (f=4): [R(4)][92.5%][r=900MiB/s][r=230k IOPS][eta 00m:18s]
Jobs: 4 (f=4): [R(4)][92.9%][r=900MiB/s][r=231k IOPS][eta 00m:17s]
Jobs: 4 (f=4): [R(4)][93.3%][r=900MiB/s][r=230k IOPS][eta 00m:16s]
Jobs: 4 (f=4): [R(4)][93.8%][r=900MiB/s][r=230k IOPS][eta 00m:15s]
Jobs: 4 (f=4): [R(4)][94.2%][r=901MiB/s][r=231k IOPS][eta 00m:14s]
Jobs: 4 (f=4): [R(4)][94.6%][r=900MiB/s][r=230k IOPS][eta 00m:13s]
Jobs: 4 (f=4): [R(4)][95.0%][r=900MiB/s][r=230k IOPS][eta 00m:12s]
Jobs: 4 (f=4): [R(4)][95.4%][r=901MiB/s][r=231k IOPS][eta 00m:11s]
Jobs: 4 (f=4): [R(4)][95.8%][r=900MiB/s][r=230k IOPS][eta 00m:10s]
Jobs: 4 (f=4): [R(4)][96.2%][r=900MiB/s][r=230k IOPS][eta 00m:09s]
Jobs: 4 (f=4): [R(4)][96.7%][r=902MiB/s][r=231k IOPS][eta 00m:08s]
Jobs: 4 (f=4): [R(4)][97.1%][r=900MiB/s][r=230k IOPS][eta 00m:07s]
Jobs: 4 (f=4): [R(4)][97.5%][r=901MiB/s][r=231k IOPS][eta 00m:06s]
Jobs: 4 (f=4): [R(4)][97.9%][r=900MiB/s][r=230k IOPS][eta 00m:05s]
Jobs: 4 (f=4): [R(4)][98.3%][r=900MiB/s][r=230k IOPS][eta 00m:04s]
Jobs: 4 (f=4): [R(4)][98.8%][r=900MiB/s][r=230k IOPS][eta 00m:03s]
Jobs: 4 (f=4): [R(4)][99.2%][r=898MiB/s][r=230k IOPS][eta 00m:02s]
Jobs: 4 (f=4): [R(4)][99.6%][r=895MiB/s][r=229k IOPS][eta 00m:01s]
Jobs: 4 (f=4): [R(4)][100.0%][r=878MiB/s][r=225k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=4): err= 0: pid=49992: Tue Aug 29 01:36:44 2023
  read: IOPS=199k, BW=778MiB/s (815MB/s)(182GiB/240001msec)
    slat (usec): min=2, max=4381, avg=11.30, stdev=21.62
    clat (usec): min=298, max=63975, avg=5131.42, stdev=1692.02
     lat (usec): min=304, max=63983, avg=5142.90, stdev=1694.66
    clat percentiles (usec):
     |  1.00th=[ 2147],  5.00th=[ 2737], 10.00th=[ 3163], 20.00th=[ 3720],
     | 30.00th=[ 4146], 40.00th=[ 4555], 50.00th=[ 4883], 60.00th=[ 5276],
     | 70.00th=[ 5866], 80.00th=[ 6521], 90.00th=[ 7439], 95.00th=[ 8029],
     | 99.00th=[ 9896], 99.50th=[10945], 99.90th=[13304], 99.95th=[14484],
     | 99.99th=[17171]
   bw (  KiB/s): min=423064, max=1610103, per=100.00%, avg=796953.27, stdev=51948.43, samples=1916
   iops        : min=105766, max=402525, avg=199238.29, stdev=12987.09, samples=1916
  lat (usec)   : 500=0.01%, 750=0.01%, 1000=0.02%
  lat (msec)   : 2=0.61%, 4=25.49%, 10=72.96%, 20=0.92%, 50=0.01%
  lat (msec)   : 100=0.01%
  cpu          : usr=4.99%, sys=64.26%, ctx=6254991, majf=0, minf=1078
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
     issued rwts: total=47778947,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=256

Run status group 0 (all jobs):
   READ: bw=778MiB/s (815MB/s), 778MiB/s-778MiB/s (815MB/s-815MB/s), io=182GiB (196GB), run=240001-240001msec
```
</details>

実行ログを見ていくと、下記の様に上昇していることが分かります。
30秒ほど経過して138Kが154Kに上昇（eta 03m:30sあたり）→VPU 70
25秒ほど経過して154Kが169Kに上昇（eta 03m:05sあたり）→VPU 80
20秒ほど経過して169Kが184Kに上昇（eta 02m:46sあたり）→VPU 90
25秒ほど経過して184Kが200Kに上昇（eta 02m:20sあたり）→VPU 100
25秒ほど経過して200Kが215Kに上昇（eta 01m:57sあたり）→VPU 110
20秒ほど経過して215Kが231Kに上昇（eta 01m:35sあたり）→VPU 120

実行後、ブロックボリュームのコンソール画面からも、
自動チューニングIOPSが230,400 IOPSとなっていること、
パフォーマンスの自動チューニングがUHP (VPU/GB:120) となっていることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/b2824e68-389c-4d2d-5b4e-0ffbd0b06ecc.png)

さらにメトリクスを見てみると、さきほどのVPU60からVPU120まで上がっていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/7f2c5b09-38f8-fa71-ed4d-51cbef053774.png)

IOPS、スループットについても同様に上昇が確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/748bdf39-a595-c945-3385-2bd4ddb3c6d8.png)

下記リファレンスの表記を確認すると、
[動的パフォーマンス・スケーリング](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/autotunevolumeperformance.htm "")
「パフォーマンスを上げるための調整は、必要に応じて安定的にパフォーマンスを向上させるために、**数十秒単位で繰り返され、短時間で効果が出ます。**」
とあるように、検証の結果として、**20～30秒の間でVPUが1段階ずつ上がっていき、それに伴いIOPSも上昇していることがわかります。**

# 検証２：大きな負荷をかけた後、デフォルトのパフォーマンスに戻る時間

この状態のまま、放置します。
VPUが徐々に下がってきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/c5667f27-9ed2-f72f-2e63-84d46d4ffcc3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/7a3e7253-f213-13bc-2698-2b80866ab421.png)
コンソール画面からも下がっていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/c8cf5992-7bff-2fe1-5e00-0d5fdbdc7ed3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/ac5ca7ed-a742-8982-bf88-7f9200d65bee.png)


結果、負荷を与え終わってから**30分ほどから緩やかにVPUが下降し、併せてIOPSも下がっている**ことがわかります。

12:33時点でVPU120
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/c58b67cf-43cf-c6d9-cfff-f6e25b31f466.png)
12:58時点でVPU110
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/4e99b488-4c25-3db1-0882-c22fc9a21def.png)
12:59時点でVPU100
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/1d273a31-6ffc-ae22-3c43-6cd2f766e315.png)
・・・

13:09時点でVPU10
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/5fbf3d1b-cd38-3d22-fbaf-9f996a0001ab.png)

最初のVPU下降は25分ほど、以降は1分単位でVPUが下がっていくことが分かりました。

コンソール画面のVPUもデフォルトの10に戻っていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325706/e065f2b7-cf4d-44ad-de75-24039a4303ce.png)


検証の結果、下記リファレンスの表記通りとなることがわかりました。
「パフォーマンスを下げるための調整は、**最初の調整が有効になるのが1時間以内**で、**その後の調整は数分**というように、効果が出るのに時間がかかります。このため、パフォーマンスがまだ必要なときに、**ボリューム・パフォーマンスが突然低下することはありません。**」
[動的パフォーマンス・スケーリング](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/autotunevolumeperformance.htm "")

# まとめ

動的パフォーマンス・スケーリングで、IOPSが向上すること、負荷がかからない状態ではVPUが緩やかに下がっていくことが確認できました。
オンプレミスの性能と比較し、クラウドのストレージIOPS性能が課題となるワークロードは複数あり、IOPSを上げるためのコストが高くつく話はよく聞きますが、OCIのブロックボリューム、動的パフォーマンス・スケーリングを活用することで、必要なときに必要なパフォーマンスを発揮しながら、必要のないときはコストを抑えることができます。
コスト最適化しながら、ワークロードの特性に合わせてパフォーマンスを柔軟にチューニングできる動的パフォーマンス・スケーリングをご検討ください！