Bài viết gốc được xuất bản bởi TriCore: 11 tháng 4, 2017
Loạt bài blog hai phần này bao gồm các tính năng tinh chỉnh hiệu suất mới của Oracle® Database phiên bản 12.1.0.1 và 12.1.0.2. Phần 1 thảo luận phiên bản sớm hơn.
Tính năng mới trong Oracle Database 12.1.0.1
Các tính năng sau là mới trong Oracle Database phiên bản 12.1.0.1:
- Real-Time Automatic Database Diagnostic Monitor (ADDM)
- Hỗ trợ giới hạn kích thước Program Global Area (PGA)
- Nâng cao Active Session History (ASH)
Real-Time ADDM
Real-Time ADDM giúp bạn phân tích và giải quyết vấn đề trong database bị treo (hung) mà không cần khởi động lại database. Phần này mô tả Real-Time ADDM chi tiết.
Chế độ kết nối Real-Time ADDM
Real-Time ADDM dùng một trong hai chế độ kết nối để kết nối đến database qua Oracle Enterprise Manager (OEM). Chế độ nó dùng phụ thuộc vào trạng thái database:
Kết nối bình thường (Normal connection): Ở chế độ này, Real-Time ADDM dùng Java Database Connectivity (JDBC) để kết nối đến database. Chế độ này thực hiện phân tích hiệu suất mở rộng của database khi kết nối khả dụng.
Kết nối chẩn đoán (Diagnostic connection): Ở chế độ này, Real-Time ADDM thực hiện kết nối latch-less đến database. Chế độ này hữu ích cho tình huống treo cực đoan khi kết nối JDBC bình thường không thể.
Kích hoạt Real-Time ADDM (Real-Time ADDM Triggers)
Real-Time ADDM chạy tự động mỗi ba giây và dùng dữ liệu trong bộ nhớ để chẩn đoán vấn đề hiệu suất database. Nó tự động kích hoạt phân tích khi phát hiện vấn đề hiệu suất. Chức năng này bao gồm các bước sau:
- Mỗi ba giây, tiến trình manageability monitor (MMON) thực hiện hành động để lấy thống kê hiệu suất không cần lock hoặc latch.
- Tiến trình MMON kiểm tra thống kê này và kích hoạt phân tích Real-Time ADDM nếu nó tìm thấy bất kỳ vấn đề nào xuất hiện trong Bảng 1.
- Tiến trình MMON slave tạo báo cáo và lưu nó trong Automatic Workload Repository (AWR). Để biết thêm thông tin, bạn có thể kiểm tra view
DBA_HIST_REPORTSvàDBA_HIST_REPORTS_DETAILS.
Bạn cũng có thể dùng lệnh sau để tạo báo cáo thủ công:
SQL> select dbms_addm.real_time_addm_report() from dual;
Bảng 1: Vấn đề hiệu suất và điều kiện kích hoạt phân tích Real-Time ADDM
| Vấn đề | Điều kiện |
|---|---|
| High load | Average active sessions lớn hơn 3x số nhân CPU |
| I/O bound | Tác động I/O trên active sessions dựa trên hiệu suất đọc block đơn |
| CPU bound | Active sessions lớn hơn 10% tổng load và CPU utilization lớn hơn 50% |
| Over-allocated memory | Cấp phát bộ nhớ vượt quá 95% bộ nhớ vật lý |
| Interconnect bound | Dựa trên thời gian chuyển interconnect block đơn |
| Session limit | Giới hạn session gần 100% |
| Process limit | Giới hạn process gần 100% |
| Hung session | Hung sessions lớn hơn 10% tổng sessions |
| Deadlock detected | Bất kỳ deadlock nào được phát hiện |
Nguồn: Database Performance Tuning Guide, Chapter 7: Automatic Performance Diagnostics: Real-Time ADDM Connection Modes
Điều khiển kích hoạt Real-Time ADDM (Real-Time ADDM trigger controls)
Để đảm bảo các kích hoạt tự động không tiêu tốn quá nhiều tài nguyên hệ thống, Real-Time ADDM dùng các điều khiển sau:
Khoảng thời gian giữa các báo cáo: Nếu kích hoạt tự động tạo báo cáo Real-Time ADDM trong năm phút qua, thì không tạo báo cáo mới.
Điều khiển Oracle Real Application Clusters (RAC): Kích hoạt tự động là cục bộ cho instance database. Với Oracle RAC, chỉ một instance database có thể tạo báo cáo Real-Time ADDM tại một thời điểm.
Kích hoạt lặp lại: Kích hoạt tự động cho bất kỳ vấn đề nào phải có tác động 100% hoặc cao hơn báo cáo trước có cùng vấn đề kích hoạt trong 45 phút trước.
Vấn đề mới được xác định: Nếu vấn đề mới được phát hiện mà chưa được phát hiện trong 45 phút qua, thì báo cáo mới được tạo.
Giới hạn kích thước PGA
Việc sử dụng PGA quá mức có thể dẫn đến tỷ lệ swapping cao. Khi điều này xảy ra, hệ thống có thể trở nên không phản hồi và không ổn định. Nếu điều này xảy ra, hãy cân nhắc dùng tham số khởi tạo PGA_AGGREGATE_LIMIT để giới hạn sử dụng PGA tổng thể.
Phần sau mô tả cách giới hạn kích thước PGA bằng tham số khởi tạo PGA_AGGREGATE_LIMIT trong Oracle Database 12c R1 (12.1.0.1) và cao hơn.
Về tham số PGA_AGGREGATE_LIMIT
Nếu giá trị định nghĩa trong tham số PGA_AGGREGATE_LIMIT bị vượt quá, Oracle Database hủy bỏ hoặc kết thúc các session hoặc process đang tiêu thụ nhiều untunable PGA memory nhất. Oracle Database thực hiện kết thúc theo thứ tự sau:
- Gọi cho session tiêu thụ nhiều untunable PGA memory nhất và hủy bỏ chúng.
- Nếu việc sử dụng PGA memory vẫn vượt quá
PGA_AGGREGATE_LIMIT, Oracle Database kết thúc session và process tiêu thụ nhiều untunable PGA memory nhất.
Oracle Database coi parallel query như một đơn vị đơn lẻ. Mặc định, tham số PGA_AGGREGATE_LIMIT được đặt thành giá trị lớn hơn trong ba giá trị: 2 GB, 200% giá trị PGA_AGGREGATE_TARGET, hoặc 3 MB nhân với giá trị tham số PROCESSES. Tuy nhiên, nó không vượt quá 120% kích thước bộ nhớ vật lý trừ đi tổng kích thước System Global Area (SGA).
Thiết lập tham số PGA_AGGREGATE_LIMIT
Tham số khởi tạo PGA_AGGREGATE_LIMIT có thể được thiết lập động. Database không cần khởi động lại. Bạn có thể đặt giá trị PGA_AGGREGATE_LIMIT bất kể Oracle Database có dùng automatic memory management hay không.
Thay đổi tham số PGA_AGGREGATE_LIMIT
Đặt tham số khởi tạo PGA_AGGREGATE_LIMIT thành giá trị mới tính bằng byte. Đặt giá trị thành 0 sẽ vô hiệu hóa giới hạn cứng trên PGA memory.
Khi PGA_AGGREGATE_LIMIT bị vượt quá, Oracle Database thực hiện các hành động sau:
- Hủy bỏ các call liên quan đến session đang dùng nhiều untunable memory nhất.
- Nếu tổng sử dụng PGA memory vẫn vượt quá giới hạn, kết thúc session đang dùng nhiều untunable memory nhất.
sys.processes và background processes trừ job queue processes không bị ảnh hưởng. Thay vào đó, nếu chúng dùng nhiều untunable memory nhất, chúng định kỳ ghi tóm tắt ngắn gọn về việc sử dụng PGA của chúng vào trace file.
Nâng cao ASH (ASH enhancements)
Tính từ Oracle 12c, bạn có thể truy cập trực quan dữ liệu ASH qua trang OEM mới tên ASH Analytics. Trang này cho phép bạn đi sâu vào các chiều logic. Bạn cũng có thể gửi báo cáo cho người dùng khác để họ xem offline.
Nguồn ảnh: OCP 12C – Emergency Monitoring, Real-Time ADDM
Kết luận
Các tính năng mới này cùng nhau giúp bạn khắc phục sự cố và nâng cao hiệu suất database cho Oracle Database 12c Release 1. Phần 2 của loạt bài này bao gồm thêm các tính năng mới và thay đổi tinh chỉnh hiệu suất trong Oracle Database 12.1.0.2.
Sử dụng tab Feedback để bình luận hoặc đặt câu hỏi.
Tham khảo
Các nguồn sau được dùng làm tham khảo cho bài blog này:
- Database Performance Tuning Guide, Chapter 7: Automatic Performance Diagnostics: Real-Time ADDM Connection Modes
- Database Performance Tuning Guide, Chapter 7: Automatic Performance Diagnostics: ADDM Analysis Results