Adriano Tanaka
OCP Oracle Cloud, OCP 11g, 12c
Adriano Tanaka

OCI - Nova "categoria" de disco: Ultra High Performance

OCI - Nova

No ultimo dia 10 a Oracle lançou uma nova “categoria” para nosso serviço de armazenamento, coloco entre aspas pois para quem conhece nossos serviços, sabe que todos os nossos discos são baseados em SSDs e sua performance está ligada ao tamanho do volume e aos VPUs que você vincula e ele.

A nova categoria chamada de Ultra High Performance (ou UHP) é o equivalente à 120 VPUs por Giga(antes o máximo era 20VPU/GB na categoria High Performance), saímos de um máximo de 480MB/s de throughput com 35mil IOPS para incríveis 2,680 MB/s e até 300 mil IOPS, além disso, também foi aumentado a performance do High Performance, chegando até 614MB/s e 50 mil IOPS.

Aqui você encontra todos os detalhes de como funciona, mas abaixo listo os principais requisitos:

  • A VM precisa ter mais de 16 OCPUs
  • A VM precisa estar rodando um sistema operacional compatível(até o momento só suportamos Linux)
  • Apenas um disco UHP por VM
  • O disco pode ser entregue tanto via iSCSI ou Paravirtualizado

Uma dica que apanhei no começo é que para discos iSCSI você precisa ativar a opção Block Volume Management no OCI Cloud Agent da instância e criar uma policy que permita chamadas de API por ele(aqui você encontra ela) .

Benchmark

Deixando um pouco a parte teórica de lado, vamos ao que interessa, o UHP é realmente mais rápido? Fiz alguns testes bem simples nele.

Nos meus testes, usei uma VM com a seguinte configuração:

  • 18 OCPU
  • 24GB RAM
  • Oracle Linux 7.9
  • Disco paravirtualizado
  • Utilitário fio.

Disco de 650GB UHP:

[root@xyz opc]# fio --filename=/dev/sdb --direct=1 --rw=randrw --bs=256k --ioengine=libaio --iodepth=64 --numjobs=9 --time_based --group_reporting --name=iops --runtime=60
iops: (g=0): rw=randrw, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, (T) 256KiB-256KiB, ioengine=libaio, iodepth=64
...
fio-3.7
Starting 9 processes
Jobs: 9 (f=9): [m(9)][100.0%][r=532MiB/s,w=531MiB/s][r=2126,w=2122 IOPS][eta 00m:00s]
iops: (groupid=0, jobs=9): err= 0: pid=3688: Mon Jun 14 23:59:47 2021
   read: IOPS=2198, BW=550MiB/s (576MB/s)(32.3GiB/60180msec)
    slat (usec): min=2, max=457, avg=11.98, stdev=12.52
    clat (usec): min=547, max=415642, avg=132643.35, stdev=68005.20
     lat (usec): min=559, max=415653, avg=132655.48, stdev=68005.38
    clat percentiles (usec):
     |  1.00th=[  1663],  5.00th=[ 21103], 10.00th=[ 43779], 20.00th=[ 69731],
     | 30.00th=[ 87557], 40.00th=[106431], 50.00th=[130548], 60.00th=[154141],
     | 70.00th=[177210], 80.00th=[200279], 90.00th=[229639], 95.00th=[240124],
     | 99.00th=[252707], 99.50th=[256902], 99.90th=[316670], 99.95th=[350225],
     | 99.99th=[396362]
   bw (  KiB/s): min=46592, max=358912, per=11.11%, avg=62534.99, stdev=26194.28, samples=1080
   iops        : min=  182, max= 1402, avg=244.25, stdev=102.32, samples=1080
  write: IOPS=2201, BW=550MiB/s (577MB/s)(32.4GiB/60180msec)
    slat (usec): min=4, max=416, avg=17.50, stdev=13.18
    clat (usec): min=809, max=319541, avg=129098.20, stdev=61645.50
     lat (usec): min=825, max=319556, avg=129115.84, stdev=61645.59
    clat percentiles (msec):
     |  1.00th=[    3],  5.00th=[   14], 10.00th=[   40], 20.00th=[   68],
     | 30.00th=[   96], 40.00th=[  123], 50.00th=[  140], 60.00th=[  155],
     | 70.00th=[  167], 80.00th=[  182], 90.00th=[  205], 95.00th=[  224],
     | 99.00th=[  247], 99.50th=[  253], 99.90th=[  259], 99.95th=[  264],
     | 99.99th=[  305]
   bw (  KiB/s): min=45056, max=394752, per=11.13%, avg=62717.56, stdev=29313.89, samples=1080
   iops        : min=  176, max= 1542, avg=244.96, stdev=114.51, samples=1080
  lat (usec)   : 750=0.06%, 1000=0.18%
  lat (msec)   : 2=0.91%, 4=1.08%, 10=1.54%, 20=1.68%, 50=7.47%
  lat (msec)   : 100=21.16%, 250=64.82%, 500=1.11%
  cpu          : usr=0.43%, sys=0.83%, ctx=257284, majf=0, minf=118
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.8%
     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.1%, >=64=0.0%
     issued rwts: total=132297,132511,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
   READ: bw=550MiB/s (576MB/s), 550MiB/s-550MiB/s (576MB/s-576MB/s), io=32.3GiB (34.7GB), run=60180-60180msec
  WRITE: bw=550MiB/s (577MB/s), 550MiB/s-550MiB/s (577MB/s-577MB/s), io=32.4GiB (34.7GB), run=60180-60180msec

Disk stats (read/write):
  sdb: ios=132291/132495, merge=0/0, ticks=17502537/17083496, in_queue=34453607, util=99.93%
[root@xyz opc]# 

Disco de 2.6T UHP:

[root@xyz opc]# fio --filename=/dev/sdb --direct=1 --rw=randrw --bs=256k --ioengine=libaio --iodepth=64 --numjobs=9 --time_based --group_reporting --name=iops --runtime=60
iops: (g=0): rw=randrw, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, (T) 256KiB-256KiB, ioengine=libaio, iodepth=64
...
fio-3.7
Starting 9 processes
Jobs: 9 (f=9): [m(9)][100.0%][r=1299MiB/s,w=1318MiB/s][r=5196,w=5270 IOPS][eta 00m:00s]
iops: (groupid=0, jobs=9): err= 0: pid=4753: Tue Jun 15 00:02:43 2021
   read: IOPS=5361, BW=1340MiB/s (1406MB/s)(79.3GiB/60549msec)
    slat (usec): min=2, max=424, avg=11.93, stdev=13.91
    clat (usec): min=505, max=1128.9k, avg=52459.37, stdev=88465.58
     lat (usec): min=534, max=1128.9k, avg=52471.46, stdev=88465.63
    clat percentiles (usec):
     |  1.00th=[    685],  5.00th=[    783], 10.00th=[    857],
     | 20.00th=[   1045], 30.00th=[   1516], 40.00th=[   4490],
     | 50.00th=[  17433], 60.00th=[  40633], 70.00th=[  58459],
     | 80.00th=[  82314], 90.00th=[ 135267], 95.00th=[ 193987],
     | 99.00th=[ 497026], 99.50th=[ 566232], 99.90th=[ 633340],
     | 99.95th=[ 666895], 99.99th=[1035994]
   bw (  KiB/s): min=114176, max=410624, per=11.20%, avg=153739.73, stdev=30891.07, samples=1080
   iops        : min=  446, max= 1604, avg=600.49, stdev=120.68, samples=1080
  write: IOPS=5365, BW=1341MiB/s (1407MB/s)(79.3GiB/60549msec)
    slat (usec): min=3, max=929, avg=17.38, stdev=14.90
    clat (usec): min=772, max=984549, avg=54859.07, stdev=85136.92
     lat (usec): min=787, max=984566, avg=54876.61, stdev=85136.91
    clat percentiles (usec):
     |  1.00th=[   955],  5.00th=[  1045], 10.00th=[  1123], 20.00th=[  1303],
     | 30.00th=[  1614], 40.00th=[  4359], 50.00th=[ 18744], 60.00th=[ 42206],
     | 70.00th=[ 60031], 80.00th=[ 85459], 90.00th=[154141], 95.00th=[240124],
     | 99.00th=[387974], 99.50th=[434111], 99.90th=[574620], 99.95th=[624952],
     | 99.99th=[918553]
   bw (  KiB/s): min=  512, max=418304, per=11.16%, avg=153304.63, stdev=32820.87, samples=1084
   iops        : min=    2, max= 1634, avg=598.79, stdev=128.22, samples=1084
  lat (usec)   : 750=1.67%, 1000=8.62%
  lat (msec)   : 2=23.63%, 4=5.37%, 10=5.80%, 20=5.89%, 50=13.36%
  lat (msec)   : 100=19.64%, 250=12.16%, 500=3.22%, 750=0.61%, 1000=0.02%
  cpu          : usr=1.09%, sys=1.95%, ctx=606677, majf=0, minf=129
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.9%
     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.1%, >=64=0.0%
     issued rwts: total=324637,324886,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
   READ: bw=1340MiB/s (1406MB/s), 1340MiB/s-1340MiB/s (1406MB/s-1406MB/s), io=79.3GiB (85.1GB), run=60549-60549msec
  WRITE: bw=1341MiB/s (1407MB/s), 1341MiB/s-1341MiB/s (1407MB/s-1407MB/s), io=79.3GiB (85.2GB), run=60549-60549msec

Disk stats (read/write):
  sdb: ios=324635/324848, merge=0/0, ticks=16893064/17708514, in_queue=34284256, util=100.00%

Gráficos

Leitura

Escrita

É isso pessoal, qualquer duvida que tiverem, podem me contactar 🙂

Opinions expressed are solely my own and do not express the views or opinions of my employer.
No tag
Homepage      Uncategorized      OCI - Nova "categoria" de disco: Ultra High Performance

Adriano Tanaka

OCI - Nova "categoria" de disco: Ultra High Performance
No ultimo dia 10 a Oracle lançou uma nova "categoria" para nosso serviço de armazenamento, coloco entre aspas pois para quem conhece nossos serviços, sabe que todos os nossos…
Scan QR code to continue reading
2021-06-15