AWR: Cât de „expert” este performanța bazei de date?

Cu această scurtă postare aș dori să elimin o neînțelegere legată de analiza bazelor de date AWR care rulează pe Oracle Exadata. De aproape 10 ani, m-am confruntat constant cu întrebarea: care este contribuția Exadata Software la productivitate? Sau folosind cuvinte nou inventate: cât de „expert” este munca unei anumite baze de date?

AWR: Cât de „expert” este performanța bazei de date?

Adesea, la această întrebare corectă, în opinia mea, se răspunde incorect cu referire la statisticile AWR. Prezintă metoda de așteptare a sistemului, care tratează timpul de răspuns ca fiind suma timpului de funcționare al procesoarelor (UC-uri DB) și timpul de așteptare al diferitelor clase.

Odată cu apariția Exadata, în statisticile AWR au apărut așteptări specifice sistemului legate de funcționarea software-ului Exadata. De regulă, numele unor astfel de așteptări încep cu cuvântul „celulă” (serverul de stocare Exadata este numit o celulă), dintre care cele mai frecvente sunt așteptări cu denumiri explicative „scanare tabel inteligent de celule”, „bloc multiplu de celule”. citire fizică” și „citire fizică a unui singur bloc de celule”.

În cele mai multe cazuri, ponderea acestor așteptări Exadata în timpul total de răspuns este mică și, prin urmare, nici măcar nu se încadrează în secțiunea Top 10 evenimente din prim-plan după timpul de așteptare total (în acest caz, trebuie să le căutați în Foreground Wait secțiunea Evenimente). Cu mare dificultate, am găsit un exemplu de AWR zilnic de la clienții noștri, în care așteptările Exadata au fost incluse în secțiunea Top10 și în total se ridicau la aproximativ 5%:

eveniment

Așteaptă

Timp total de așteptare (sec)

Așteaptă medie

%DB timp

Așteaptă clasa

CPU DB

115.2 K

70.4

SQL*Net mai multe date de la dblink

670,196

5471.5

8.16ms

3.3

Reţea

citire fizică a unui singur bloc de celule

5,661,452

3827.6

676.07us

2.3

I/O utilizator

Sincronizare reechilibrare ASM

4,350,012

3481.3

800.30us

2.1

Altele

citire fizică cu mai multe blocuri de celule

759,885

2252

2.96ms

1.4

I/O utilizator

cale directă citită

374,368

1811.3

4.84ms

1.1

I/O utilizator

Mesaj SQL*Net de la dblink

7,983

1725

216.08ms

1.1

Reţea

scanarea tabelului inteligent al celulelor

1,007,520

1260.7

1.25ms

0.8

I/O utilizator

temperatură de citire a drumului direct

520,211

808.4

1.55ms

0.5

I/O utilizator

enq: TM - disputa

652

795.8

1220.55ms

0.5

aplicație

Următoarele concluzii sunt adesea trase din astfel de statistici AWR:

1. Contribuția magiei Exadata la performanța bazei de date nu este mare - nu depășește 5%, iar baza de date „exadatizează” slab.

2. Dacă o astfel de bază de date este transferată de la Exadata în arhitectura clasică „server + matrice”, atunci performanța nu se va schimba prea mult. Pentru că, chiar dacă această matrice se dovedește a fi de trei ori mai lent decât sistemul de stocare Exadata (ceea ce este greu posibil pentru matricele moderne All Flash), atunci înmulțind 5% cu trei obținem o creștere a ponderii de așteptări I/O la 15% - baza de date va supraviețui cu siguranță!

Ambele concluzii sunt inexacte, în plus, ele distorsionează înțelegerea ideii din spatele Exadata Software. Exadata nu oferă doar I/O rapidă, ci funcționează fundamental diferit față de arhitectura clasică server + array. Dacă operațiunea bazei de date este cu adevărat „exadaptă”, atunci logica SQL este transferată în sistemul de stocare. Serverele de stocare, datorită unui număr de mecanisme speciale (în primul rând Indexuri de stocare Exadata, dar nu numai), găsesc ele însele datele necesare și trimit DB-ul către servere. Ei fac acest lucru destul de eficient, astfel încât ponderea așteptărilor tipice Exadata în timpul total de răspuns este mică. 

Cum se va schimba această cotă în afara Exadata? Cum va afecta acest lucru performanța bazei de date în ansamblu? Testarea va răspunde cel mai bine la aceste întrebări. De exemplu, așteptarea unei „scanări inteligente a tabelului celular” în afara Exadata se poate transforma într-o scanare completă a tabelului atât de grea încât I/O ocupă întregul timp de răspuns și performanța se degradează dramatic. De aceea este greșit, atunci când se analizează AWR, să se considere procentul total al așteptărilor Exadata drept contribuția magiei sale la performanță și cu atât mai mult să se folosească acest procent pentru a prezice performanța în afara Exadata. Pentru a înțelege cât de „exactă” este munca bazei de date, trebuie să studiați statisticile AWR din secțiunea „Statistici de activitate ale instanțelor” (există o mulțime de statistici cu nume care se explică de la sine) și să le comparați între ele.

Și pentru a înțelege cum se va simți o bază de date din afara Exadata, cel mai bine este să creați o clonă a bazei de date dintr-o copie de rezervă pe arhitectura țintă și să analizați performanța acestei clone sub încărcare. Proprietarii Exadata, de regulă, au această oportunitate.

Autor: Alexey Struchenko, șeful departamentului de baze de date Jet Infosystems

Sursa: www.habr.com

Adauga un comentariu