AWR: Sejauh mana "pakar" prestasi pangkalan data?

Dengan catatan ringkas ini saya ingin menghapuskan satu salah faham yang berkaitan dengan analisis pangkalan data AWR yang dijalankan pada Oracle Exadata. Selama hampir 10 tahun, saya sentiasa berhadapan dengan persoalan: apakah sumbangan Perisian Exadata kepada produktiviti? Atau menggunakan perkataan yang baru dicipta: sejauh manakah "pakar" kerja pangkalan data tertentu?

AWR: Sejauh mana "pakar" prestasi pangkalan data?

Selalunya soalan yang betul ini, pada pendapat saya, dijawab dengan salah dengan merujuk kepada statistik AWR. Ia membentangkan kaedah menunggu sistem, yang menganggap masa tindak balas sebagai jumlah masa operasi pemproses (CPU DB) dan masa menunggu pelbagai kelas.

Dengan kemunculan Exadata, jangkaan sistem khusus yang berkaitan dengan pengendalian Perisian Exadata muncul dalam statistik AWR. Sebagai peraturan, nama penantian sedemikian bermula dengan perkataan "sel" (pelayan Storan Exadata dipanggil sel), yang paling biasa adalah menunggu dengan nama penjelasan sendiri "imbasan jadual pintar sel", "berbilang blok sel. bacaan fizikal" dan "bacaan fizikal blok tunggal sel".

Dalam kebanyakan kes, bahagian Exadata seperti itu menunggu dalam jumlah masa tindak balas adalah kecil, dan oleh itu mereka tidak termasuk ke dalam Peristiwa Latar Depan Teratas mengikut bahagian Jumlah Masa Menunggu (dalam kes ini, anda perlu mencarinya dalam Menunggu Latar Depan bahagian acara). Dengan susah payah, kami menemui contoh AWR harian daripada pelanggan kami, di mana jangkaan Exadata dimasukkan dalam bahagian Top10 dan secara keseluruhan berjumlah kira-kira 10%:

Acara

Menunggu

Jumlah Masa Menunggu (saat)

Purata Tunggu

% DB masa

Kelas Tunggu

CPU DB

115.2K

70.4

SQL*Net lebih banyak data daripada dblink

670,196

5471.5

8.16ms

3.3

rangkaian

Bacaan fizikal blok tunggal sel

5,661,452

3827.6

676.07us

2.3

I/O pengguna

Segerakkan pengimbangan semula ASM

4,350,012

3481.3

800.30us

2.1

lain-lain

bacaan fizikal berbilang blok sel

759,885

2252

2.96ms

1.4

I/O pengguna

laluan langsung dibaca

374,368

1811.3

4.84ms

1.1

I/O pengguna

Mesej SQL*Net daripada dblink

7,983

1725

216.08ms

1.1

rangkaian

imbasan meja pintar sel

1,007,520

1260.7

1.25ms

0.8

I/O pengguna

laluan terus membaca temp

520,211

808.4

1.55ms

0.5

I/O pengguna

enq: TM - perbalahan

652

795.8

1220.55ms

0.5

Kesesuaian

Kesimpulan berikut sering dibuat daripada statistik AWR tersebut:

1. Sumbangan sihir Exadata kepada prestasi pangkalan data adalah tidak tinggi - ia tidak melebihi 5%, dan pangkalan data "mengeluarkan" dengan teruk.

2. Jika pangkalan data sedemikian dipindahkan dari Exadata ke seni bina "pelayan + tatasusunan" klasik, maka prestasi tidak akan banyak berubah. Kerana walaupun tatasusunan ini ternyata tiga kali lebih perlahan daripada sistem storan Exadata (yang hampir tidak mungkin untuk tatasusunan Semua Flash moden), kemudian mendarabkan 5% dengan tiga kita mendapat peningkatan bahagian menunggu I/O kepada 15% - pangkalan data pasti akan bertahan dalam keadaan ini!

Kedua-dua kesimpulan ini adalah tidak tepat, lebih-lebih lagi, ia memesongkan pemahaman idea di sebalik Perisian Exadata. Exadata bukan sahaja menyediakan I/O pantas, ia berfungsi secara asasnya berbeza berbanding dengan pelayan klasik + seni bina tatasusunan. Jika operasi pangkalan data benar-benar "ditambahkan", maka logik SQL dipindahkan ke sistem storan. Pelayan storan, terima kasih kepada beberapa mekanisme khas (terutamanya Indeks Storan Exadata, tetapi bukan sahaja), cari data yang diperlukan sendiri dan hantar DB ke pelayan. Mereka melakukan ini dengan agak cekap, jadi bahagian Exadata biasa menunggu dalam jumlah masa tindak balas adalah kecil. 

Bagaimanakah perkongsian ini akan berubah di luar Exadata? Bagaimanakah ini akan menjejaskan prestasi pangkalan data secara keseluruhan? Ujian terbaik akan menjawab soalan-soalan ini. Contohnya, menunggu "imbasan jadual pintar sel" di luar Exadata boleh bertukar menjadi Imbasan Penuh Jadual yang begitu berat sehingga I/O mengambil keseluruhan masa tindak balas dan prestasi merosot secara mendadak. Itulah sebabnya adalah salah, apabila menganalisis AWR, untuk menganggap jumlah peratusan jangkaan Exadata sebagai sumbangan keajaibannya kepada prestasi, dan lebih-lebih lagi untuk menggunakan peratusan ini untuk meramalkan prestasi di luar Exadata. Untuk memahami betapa "tepat" kerja pangkalan data, anda perlu mengkaji statistik AWR bahagian "Statistik Aktiviti Contoh" (terdapat banyak statistik dengan nama yang menerangkan sendiri) dan membandingkannya antara satu sama lain.

Dan untuk memahami perasaan pangkalan data di luar Exadata, yang terbaik adalah membuat klon pangkalan data daripada sandaran pada seni bina sasaran dan menganalisis prestasi klon ini di bawah beban. Pemilik Exadata, sebagai peraturan, mempunyai peluang ini.

Pengarang Alexey Struchenko, ketua jabatan pangkalan data Jet Infosystems

Sumber: www.habr.com

Tambah komen