AWR: Πόσο Υπερβολική είναι η Βάση Δεδομένων;

Με αυτή τη σύντομη ανάρτηση θα ήθελα να διαλύσω μια παρεξήγηση που σχετίζεται με την ανάλυση των βάσεων δεδομένων AWR που εκτελούνται στο Oracle Exadata. Για σχεδόν 10 χρόνια, βρίσκομαι συνεχώς αντιμέτωπος με το ερώτημα: ποια είναι η συμβολή του Exadata Software στην παραγωγικότητα; Ή χρησιμοποιώντας λέξεις που επινοήθηκαν πρόσφατα: πόσο «ειδικό» είναι το έργο μιας συγκεκριμένης βάσης δεδομένων;

AWR: Πόσο Υπερβολική είναι η Βάση Δεδομένων;

Συχνά αυτή η σωστή ερώτηση, κατά τη γνώμη μου, απαντάται λανθασμένα με αναφορά στα στατιστικά στοιχεία AWR. Παρουσιάζει τη μέθοδο αναμονής συστήματος, η οποία αντιμετωπίζει τον χρόνο απόκρισης ως το άθροισμα του χρόνου λειτουργίας των επεξεργαστών (DB CPUs) και του χρόνου αναμονής διαφόρων κλάσεων.

Με την εμφάνιση του Exadata, συγκεκριμένες προσδοκίες συστήματος που σχετίζονται με τη λειτουργία του λογισμικού Exadata εμφανίστηκαν στα στατιστικά AWR. Κατά κανόνα, τα ονόματα τέτοιων αναμονής ξεκινούν με τη λέξη "κελί" (ο διακομιστής αποθήκευσης Exadata ονομάζεται κελί), από τις οποίες οι πιο συνηθισμένες είναι οι αναμονές με τα αυτονόητα ονόματα "έξυπνη σάρωση πίνακα κυττάρων", "πολλαπλό κελί φυσική ανάγνωση» και «φυσική ανάγνωση ενός μπλοκ κελιού».

Στις περισσότερες περιπτώσεις, το μερίδιο τέτοιων αναμονών Exadata στο συνολικό χρόνο απόκρισης είναι μικρό και επομένως δεν εμπίπτουν καν στην ενότητα Top10 συμβάντων στο προσκήνιο κατά συνολικό χρόνο αναμονής (σε αυτήν την περίπτωση, πρέπει να τα αναζητήσετε στην Αναμονή στο προσκήνιο ενότητα Εκδηλώσεις). Με μεγάλη δυσκολία βρήκαμε ένα παράδειγμα ημερήσιου AWR από τους πελάτες μας, στο οποίο οι προσδοκίες Exadata συμπεριλήφθηκαν στην ενότητα Top10 και συνολικά ανήλθαν σε περίπου 5%:

Συμβάν

Περιμένετε

Συνολικός χρόνος αναμονής (δευτ.)

Μέση Αναμονή

Χρόνος %DB

Τάξη αναμονής

CPU DB

115.2K

70.4

SQL*Net περισσότερα δεδομένα από το dblink

670,196

5471.5

8.16ms

3.3

Δίκτυο

φυσική ανάγνωση ενός μπλοκ κελιού

5,661,452

3827.6

676.07us

2.3

I/O χρήστη

Συγχρονισμός εξισορρόπησης ASM

4,350,012

3481.3

800.30us

2.1

ΑΛΛΑ

φυσική ανάγνωση πολλαπλών μπλοκ κελιών

759,885

2252

2.96ms

1.4

I/O χρήστη

απευθείας ανάγνωση διαδρομής

374,368

1811.3

4.84ms

1.1

I/O χρήστη

Μήνυμα SQL*Net από το dblink

7,983

1725

216.08ms

1.1

Δίκτυο

έξυπνη σάρωση τραπεζιού κυττάρων

1,007,520

1260.7

1.25ms

0.8

I/O χρήστη

θερμοκρασία ανάγνωσης άμεσης διαδρομής

520,211

808.4

1.55ms

0.5

I/O χρήστη

συν: TM - διαμάχη

652

795.8

1220.55ms

0.5

Εφαρμογή

Τα ακόλουθα συμπεράσματα εξάγονται συχνά από τέτοιες στατιστικές AWR:

1. Η συνεισφορά του Exadata magic στην απόδοση της βάσης δεδομένων δεν είναι υψηλή - δεν υπερβαίνει το 5%, και η βάση δεδομένων «εξαδατίζεται» ελάχιστα.

2. Εάν μια τέτοια βάση δεδομένων μεταφερθεί από το Exadata στην κλασική αρχιτεκτονική «server + array», τότε η απόδοση δεν θα αλλάξει πολύ. Διότι ακόμα κι αν αυτή η συστοιχία αποδειχθεί ότι είναι τρεις φορές πιο αργή από το σύστημα αποθήκευσης Exadata (πράγμα που δύσκολα είναι εφικτό για τις σύγχρονες συστοιχίες All Flash), τότε πολλαπλασιάζοντας το 5% επί τρία παίρνουμε μια αύξηση στο μερίδιο της αναμονής I/O στο 15% - η βάση δεδομένων θα επιβιώσει σίγουρα!

Και τα δύο αυτά συμπεράσματα είναι ανακριβή, επιπλέον, διαστρεβλώνουν την κατανόηση της ιδέας πίσω από το λογισμικό Exadata. Το Exadata δεν παρέχει απλώς γρήγορη I/O, αλλά λειτουργεί ριζικά διαφορετικά σε σύγκριση με την κλασική αρχιτεκτονική διακομιστή + πίνακα. Εάν η λειτουργία της βάσης δεδομένων είναι πραγματικά «εξατομικευμένη», τότε η λογική SQL μεταφέρεται στο σύστημα αποθήκευσης. Οι διακομιστές αποθήκευσης, χάρη σε μια σειρά ειδικών μηχανισμών (κυρίως Exadata Storage Indexes, αλλά όχι μόνο), βρίσκουν μόνοι τους τα απαραίτητα δεδομένα και στέλνουν το DB στους διακομιστές. Το κάνουν αυτό αρκετά αποτελεσματικά, επομένως το μερίδιο των τυπικών αναμονής Exadata στο συνολικό χρόνο απόκρισης είναι μικρό. 

Πώς θα αλλάξει αυτό το μερίδιο εκτός Exadata; Πώς θα επηρεάσει αυτό την απόδοση της βάσης δεδομένων στο σύνολό της; Η δοκιμή θα απαντήσει καλύτερα σε αυτές τις ερωτήσεις. Για παράδειγμα, η αναμονή για μια «έξυπνη σάρωση τραπεζιού κυψέλης» έξω από το Exadata μπορεί να μετατραπεί σε τόσο βαριά Πλήρη σάρωση πίνακα που η είσοδος/έξοδος καταλαμβάνει ολόκληρο τον χρόνο απόκρισης και η απόδοση υποβαθμίζεται δραματικά. Γι' αυτό είναι λάθος, όταν αναλύουμε το AWR, να θεωρούμε το συνολικό ποσοστό των προσδοκιών του Exadata ως τη συνεισφορά της μαγείας του στην απόδοση, και ακόμη περισσότερο να χρησιμοποιούμε αυτό το ποσοστό για να προβλέψουμε την απόδοση εκτός του Exadata. Για να κατανοήσετε πόσο «ακριβής» είναι η εργασία της βάσης δεδομένων, πρέπει να μελετήσετε τα στατιστικά στοιχεία AWR της ενότητας «Στατιστικά στοιχεία δραστηριότητας παρουσίας» (υπάρχουν πολλά στατιστικά στοιχεία με αυτονόητα ονόματα) και να τα συγκρίνετε μεταξύ τους.

Και για να κατανοήσετε πώς θα αισθάνεται μια βάση δεδομένων εκτός του Exadata, είναι καλύτερο να δημιουργήσετε έναν κλώνο βάσης δεδομένων από ένα αντίγραφο ασφαλείας της αρχιτεκτονικής στόχου και να αναλύσετε την απόδοση αυτού του κλώνου υπό φόρτωση. Κατά κανόνα, οι ιδιοκτήτες Exadata έχουν αυτήν την ευκαιρία.

Συντάκτης: Alexey Struchenko, επικεφαλής του τμήματος βάσεων δεδομένων Jet Infosystems

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο