Megosztás a következőn keresztül:


Az Oracle-adatbázis teljesítménye az Azure NetApp Files önálló kötetein

Ez a cikk a következő témaköröket ismerteti a felhőbeli Oracle-ről. Ezek a témakörök különösen érdekesek lehetnek egy adatbázis-rendszergazda, felhőmérnök vagy tártervező számára:

  • Ha online tranzakciófeldolgozási (OLTP) számítási feladatot (többnyire véletlenszerű I/O) vagy online elemzési (OLAP) számítási feladatot vezet (többnyire szekvenciális I/O), hogyan néz ki a teljesítmény?
  • Mi a különbség a normál Linux kernel NFS -ügyfél (kNFS) és az Oracle saját Közvetlen NFS-ügyfele között?
  • Ami a sávszélességet illeti, elegendő-e egy Azure NetApp Files-kötet teljesítménye?

Fontos

Az Orace dNFS helyes és optimális üzembe helyezéséhez kövesse az itt ismertetett javítási irányelveket.

Tesztelési környezet és összetevők

Az alábbi ábra a teszteléshez használt környezetet mutatja be. A konzisztencia és az egyszerűség érdekében az Ansible forgatókönyveket használták a tesztágy minden elemének üzembe helyezéséhez.

Oracle tesztelési környezet

A virtuális gép konfigurációja

A tesztek a következő beállítást használták a virtuális géphez:

  • Operációs rendszer:
    RedHat Enterprise Linux 7.8 (wle-ora01)
  • Példánytípusok:
    Két modellt használtak a teszteléshez – D32s_v3 és D64s_v3
  • Hálózati adapterek száma:
    Egy (1) a 3. alhálózatban
  • Lemezek:
    Az Oracle bináris fájljai és operációs rendszere egyetlen prémium lemezre lett helyezve

Az Azure NetApp Files konfigurálása

A tesztek a következő Azure NetApp Files-konfigurációt használták:

  • Kapacitáskészlet mérete:
    A készlet különböző méretei konfigurálva lettek: 4 TiB, 8 TiB, 16 TiB, 32 TiB
  • Szolgáltatási szint:
    Ultra (128 MiB/s sávszélesség 1 TiB lefoglalt kötetkapacitásonként)
  • Kötetek:
    Egy és két kötetes teszt kiértékelése

Számítási feladatok generátora

A tesztek a SLOB 2.5.4.2 által létrehozott számítási feladatot használták. Az SLOB (Silly Little Oracle Benchmark) egy jól ismert számítási feladatgenerátor az Oracle-térben, amely az I/O-alrendszer SGA-pufferelt fizikai I/O-számítási feladatokkal való stresszelésére és tesztelésére lett kialakítva.

Az SLOB 2.5.4.2 nem támogatja a csatlakoztatható adatbázist (PDB). Ezért a program módosította a setup.sh dokumentumot, és runit.sh a szkriptek is hozzáadták a PDB-támogatást.

A tesztekben használt SLOB-változókat a következő szakaszok ismertetik.

Számítási feladat 80% SELECT, 20% FRISSÍTÉS | Véletlenszerű I/O – slob.conf változók

UPDATE_PCT=20
SCAN_PCT=0
RUN_TIME=600
WORK_LOOP=0
SCALE=75G
SCAN_TABLE_SZ=50G
WORK_UNIT=64
REDO_STRESS=LITE
LOAD_PARALLEL_DEGREE=12

Számítási feladat 100%SELECT | Szekvenciális I/O – slob.conf változók

UPDATE_PCT=0
SCAN_PCT=100
RUN_TIME=600
WORK_LOOP=0
SCALE=75G
SCAN_TABLE_SZ=50G
WORK_UNIT=64
REDO_STRESS=LITE
LOAD_PARALLEL_DEGREE=12

Adatbázis

A tesztekhez használt Oracle-verzió az Oracle Database Enterprise kiadás 19.3.0.0.

Az Oracle-paraméterek a következők:

  • sga_max_size: 4096M
  • sga_target: 4096
  • db_writer_processes: 12
  • awr_pdb_autoflush_enabled:igaz
  • filesystemio_options: SETALL
  • log_buffer: 134217728

Létre lett hozva egy PDB a SLOB-adatbázishoz.

Az alábbi ábrán a PERFIO nevű táblatér látható, amelynek mérete 600 GB (20 adatfájl, egyenként 30 GB) négy SLOB-felhasználói séma üzemeltetésére jött létre. Minden felhasználói séma 125 GB méretű volt.

Oracle Database

Teljesítmény-mérőszámok

A cél az volt, hogy az alkalmazás által tapasztalt IO-teljesítményt jelentse. Ezért a cikkben szereplő összes diagram az Oracle-adatbázis által az Automatikus számítási feladattár (AWR) jelentéseivel jelentett metrikákat használja. A diagramokban használt metrikák a következők:

  • Átlagos IO-kérések másodpercenként
    Az átlagos olvasási IO-kérések/s és az átlagos írási IO-kérések/másodperc összegének felel meg a terhelésprofil szakaszból
  • Átlagos IO MB/s
    Az átlagos olvasási IO MB/s és az átlagos írási IO MB/s összegnek felel meg a terhelésprofil szakaszából
  • Átlagos olvasási késés
    Megfelel az Oracle wait event "db fájl szekvenciális olvasásának" átlagos késésének mikroszekundumokban
  • Szálak/séma száma
    A felhasználói sémánkénti SLOB-szálak számának felel meg

Teljesítménymérés eredményei

Ez a szakasz a teljesítménymérés eredményeit ismerteti.

Linux kNFS-ügyfél és Oracle Direct NFS

Ez a forgatókönyv egy Azure-beli virtuálisgép-Standard_D32s_v3 futott (Intel E5-2673 v4 @ 2,30 GHz). A számítási feladat 75%-os SELECT és 25%-os FRISSÍTÉS, többnyire véletlenszerű I/O, és az adatbázis puffer találata ~7,5%.

Az alábbi ábrán látható módon az Oracle DNFS-ügyfél akár 2,8-szor nagyobb átviteli sebességet biztosított, mint a hagyományos Linux kNFS-ügyfél:

Linux kNFS-ügyfél az Oracle Direct NFS-hez képest

Az alábbi ábrán az olvasási műveletek késési görbéje látható. Ebben az összefüggésben a kNFS-ügyfél szűk keresztmetszete az ügyfél és az NFS-kiszolgáló (az Azure NetApp Files-kötet) közötti egyetlen NFS TCP-szoftvercsatorna-kapcsolat.

Linux kNFS-ügyfél az Oracle Direct NFS késési görbéjével összehasonlítva

A DNFS-ügyfél több IO-kérést tudott leküldni másodpercenként, mivel több száz TCP-szoftvercsatornás kapcsolatot tudott létrehozni, így kihasználva a párhuzamosságot. Az Azure NetApp Files konfigurációjában leírtaknak megfelelően minden további lefoglalt tib kapacitás további 128MiB/s sávszélességet tesz lehetővé. A DNFS 1 GiB/s átviteli sebességre van felosztva, ami a 8 TiB kapacitás kiválasztásának korlátja. A nagyobb kapacitás miatt több átviteli sebesség lett volna hajtva.

Az átviteli sebesség csak az egyik szempont. Egy másik szempont a késés, amely elsődleges hatással van a felhasználói élményre. Az alábbi ábrán látható, hogy a késés növekedése sokkal gyorsabban várható a kNFS esetében, mint a DNFS esetében.

Linux kNFS-ügyfél az Oracle Direct NFS olvasási késésével összehasonlítva

A hisztogramok kiváló betekintést nyújtanak az adatbázis késéseibe. Az alábbi diagram teljes nézetet nyújt a rögzített "db fájl szekvenciális olvasása" szempontjából, miközben a DNFS-t a legmagasabb egyidejűségi adatponton (32 szál/séma) használja. Ahogy az alábbi ábrán látható, az olvasási műveletek 47%-át 512 mikroszekundum és 1000 mikroszekundum között teljesítették, míg az olvasási műveletek 90%-át 2 ms alatti késéssel teljesítették.

Linux kNFS-ügyfél és Oracle Direct NFS hisztogramok

Összefoglalva, egyértelmű, hogy a DNFS-nek kötelezőnek kell lennie, amikor az Oracle-adatbázispéldányok teljesítményének javítása az NFS-en.

Egykötetes teljesítménykorlátok

Ez a szakasz egy kötet teljesítménykorlátait ismerteti véletlenszerű I/O-val és szekvenciális I/O-val.

Véletlenszerű I/O

A DNFS sokkal nagyobb sávszélességet képes fogyasztani, mint amit egy 8 TB-os Azure NetApp Files teljesítménykvóta biztosít. Az Azure NetApp Files kötetkapacitásának 16 TiB-ra való növelésével, amely azonnali változás, a kötet sávszélessége 1024 MiB/s-ről 2X-ről 2048 MiB/s-ra nőtt.

Az alábbi ábrán egy 80%-os kiválasztási és 20%-os frissítési számítási feladat konfigurációja látható, és az adatbázis-puffer találati aránya 8%. A SLOB egyetlen kötetet tudott másodpercenként 200 000 NFS I/O-kérésre vezetni. Figyelembe véve, hogy minden művelet 8 KiB méretű, a vizsgált rendszer ~200 000 IO-kérést/másodpercet vagy 1600 MiB/s-t tudott kézbesíteni.

Oracle DNFS átviteli sebessége

Az alábbi olvasási késési görbe ábrája azt mutatja, hogy az olvasási sebesség növekedésével a késés zökkenőmentesen növekszik az 1 ms-os vonal alatt, és a görbe térdét ~165 000 átlagos olvasási IO-kérelem/másodperc értéken éri el a ~1,3 ms átlagos olvasási késéssel. Ez az érték hihetetlen késési érték egy olyan I/O-sebesség esetében, amely szinte bármilyen más azure-felhőbeli technológiával elérhetetlen.

Oracle DNFS-késési görbe

Szekvenciális I/O

Ahogy az alábbi ábrán látható, nem minden I/O véletlenszerű jellegű, figyelembe véve egy RMAN biztonsági mentést vagy egy teljes táblázatos vizsgálatot, például olyan számítási feladatokat, amelyek a lehető legtöbb sávszélességet igénylik. A korábban ismertetett konfigurációt használva, de a kötet 32 TiB-ra való átméretezése esetén az alábbi ábra azt mutatja, hogy egyetlen Oracle DB-példány 3900 MB/s átviteli sebességre képes felfelé haladni, nagyon közel az Azure NetApp Files-kötet 32 TB-os teljesítménykvótához (128 MB/s * 32 = 4096 MB/s).

Oracle DNFS I/O

Összefoglalva, az Azure NetApp Files segítségével az Oracle-adatbázisokat a felhőbe viheti. Teljesítményre képes, amikor az adatbázis igényli. A kötetkvótát bármikor dinamikusan és megszakításmentesen átméretezheti.

Következő lépések