AWR: Hiệu suất cơ sở dữ liệu “chuyên nghiệp” như thế nào?

Với bài viết ngắn này tôi muốn xóa tan một sự hiểu lầm liên quan đến việc phân tích cơ sở dữ liệu AWR chạy trên Oracle Exadata. Trong gần 10 năm, tôi liên tục phải đối mặt với câu hỏi: Phần mềm Exadata đóng góp gì cho năng suất? Hoặc sử dụng các từ mới được đặt ra: công việc của một cơ sở dữ liệu cụ thể “chuyên nghiệp” như thế nào?

AWR: Hiệu suất cơ sở dữ liệu “chuyên nghiệp” như thế nào?

Theo tôi, câu hỏi đúng này thường được trả lời sai khi tham khảo số liệu thống kê AWR. Nó trình bày phương thức chờ của hệ thống, coi thời gian phản hồi là tổng thời gian hoạt động của bộ xử lý (CPU DB) và thời gian chờ của các lớp khác nhau.

Với sự ra đời của Exadata, những kỳ vọng cụ thể về hệ thống liên quan đến hoạt động của Phần mềm Exadata đã xuất hiện trong số liệu thống kê AWR. Theo quy định, tên của các lần chờ như vậy bắt đầu bằng từ “cell” (máy chủ Exadata Storage được gọi là cell), trong đó phổ biến nhất là các lần chờ có tên tự giải thích “quét bảng thông minh cell”, “cell multiblock” đọc vật lý” và “đọc vật lý khối đơn ô”.

Trong hầu hết các trường hợp, tỷ lệ chờ đợi Exadata như vậy trong tổng thời gian phản hồi là nhỏ và do đó chúng thậm chí không nằm trong phần Top10 Sự kiện tiền cảnh theo Tổng thời gian chờ (trong trường hợp này, bạn cần tìm kiếm chúng trong phần Chờ tiền cảnh phần Sự kiện). Rất khó khăn, chúng tôi đã tìm thấy một ví dụ về AWR hàng ngày từ khách hàng của mình, trong đó kỳ vọng Exadata được đưa vào phần Top10 và tổng cộng lên tới khoảng 5%:

Sự kiện

Chờ đợi

Tổng thời gian chờ (giây)

Chờ trung bình

%DB thời gian

Lớp chờ

CPU cơ sở dữ liệu

115.2K

70.4

SQL*Net thêm dữ liệu từ dblink

670,196

5471.5

8.16ms

3.3

mạng

đọc vật lý khối đơn ô

5,661,452

3827.6

676.07us

2.3

Người dùng vào/ra

Đồng bộ hóa cân bằng lại ASM

4,350,012

3481.3

800.30us

2.1

Nền tảng khác

đọc vật lý đa khối ô

759,885

2252

2.96ms

1.4

Người dùng vào/ra

đọc đường dẫn trực tiếp

374,368

1811.3

4.84ms

1.1

Người dùng vào/ra

Thông báo SQL*Net từ dblink

7,983

1725

216.08ms

1.1

mạng

quét bảng thông minh di động

1,007,520

1260.7

1.25ms

0.8

Người dùng vào/ra

tạm thời đọc đường dẫn trực tiếp

520,211

808.4

1.55ms

0.5

Người dùng vào/ra

enq: TM - tranh chấp

652

795.8

1220.55ms

0.5

Các Ứng Dụng

Các kết luận sau đây thường được rút ra từ số liệu thống kê AWR như vậy:

1. Sự đóng góp của phép thuật Exadata vào hiệu suất cơ sở dữ liệu không cao - nó không vượt quá 5% và cơ sở dữ liệu “exadatize” kém.

2. Nếu một cơ sở dữ liệu như vậy được chuyển từ Exadata sang kiến ​​trúc “máy chủ + mảng” cổ điển thì hiệu suất sẽ không thay đổi nhiều. Bởi vì ngay cả khi mảng này chậm hơn ba lần so với hệ thống lưu trữ Exadata (điều này khó có thể thực hiện được đối với các mảng Tất cả Flash hiện đại), thì nhân 5% với 15, chúng ta sẽ nhận được tỷ lệ I/O chờ tăng lên XNUMX% - cơ sở dữ liệu chắc chắn sẽ tồn tại được sau chuyện này!

Cả hai kết luận này đều không chính xác, hơn nữa, chúng làm sai lệch sự hiểu biết về ý tưởng đằng sau Phần mềm Exadata. Exadata không chỉ cung cấp I/O nhanh, về cơ bản nó hoạt động khác biệt so với kiến ​​trúc mảng + máy chủ cổ điển. Nếu hoạt động cơ sở dữ liệu thực sự được “exadapted” thì logic SQL sẽ được chuyển sang hệ thống lưu trữ. Các máy chủ lưu trữ, nhờ một số cơ chế đặc biệt (chủ yếu là Chỉ mục lưu trữ Exadata, nhưng không chỉ), tự tìm dữ liệu cần thiết và gửi DB đến máy chủ. Họ thực hiện việc này khá hiệu quả, do đó tỷ lệ Exadata chờ điển hình trong tổng thời gian phản hồi là nhỏ. 

Chia sẻ này sẽ thay đổi như thế nào bên ngoài Exadata? Điều này sẽ ảnh hưởng như thế nào đến hiệu suất của toàn bộ cơ sở dữ liệu? Kiểm tra sẽ trả lời tốt nhất những câu hỏi này. Ví dụ: việc chờ "quét bảng thông minh di động" bên ngoài Exadata có thể biến thành Quét toàn bộ bảng nặng đến mức I/O chiếm toàn bộ thời gian phản hồi và hiệu suất giảm đáng kể. Đó là lý do tại sao khi phân tích AWR, sẽ sai lầm nếu coi tổng tỷ lệ phần trăm kỳ vọng Exadata là sự đóng góp kỳ diệu của nó cho hiệu suất và thậm chí còn hơn thế nữa khi sử dụng tỷ lệ phần trăm này để dự đoán hiệu suất bên ngoài Exadata. Để hiểu công việc của cơ sở dữ liệu “chính xác” như thế nào, bạn cần nghiên cứu số liệu thống kê AWR của phần “Thống kê hoạt động phiên bản” (có rất nhiều số liệu thống kê có tên dễ hiểu) và so sánh chúng với nhau.

Và để hiểu cơ sở dữ liệu bên ngoài Exadata sẽ cảm thấy như thế nào, tốt nhất bạn nên tạo một bản sao cơ sở dữ liệu từ bản sao lưu trên kiến ​​trúc đích và phân tích hiệu suất của bản sao này khi tải. Theo quy định, chủ sở hữu Exadata có cơ hội này.

tác giả: Alexey Struchenko, người đứng đầu bộ phận cơ sở dữ liệu Jet Infosystems

Nguồn: www.habr.com

Thêm một lời nhận xét