Tránh xung đột I/O ổ đĩa Oracle Database
1. Mở đầu
Tránh xung đột I/O ổ đĩa cũng là một tách giúp tối ưu hiệu suất của database. Bài viết sẽ hướng dẫn cách kiểm tra các vấn đề liên quan đến IO disk và giải pháp xử lí.
2. Xác định vấn đề về I/O
Sự tranh chấp ổ đĩa xảy ra khi nhiều tiến trình cố gắng truy cập cùng một ổ đĩa vật lý đồng thời. Sự tranh chấp ổ đĩa có thể được giảm thiểu, từ đó tăng hiệu suất, bằng cách phân phối các hoạt động I/O ổ đĩa đều hơn trên các ổ đĩa có sẵn.
Sự tranh chấp ổ đĩa cũng có thể được giảm bằng cách giảm thiểu các hoạt động I/O ổ đĩa. Để theo dõi sự tranh chấp ổ đĩa, hãy xem xét các chỉ số Database Files Metrics trong Cloud Control. Nhóm chỉ số này bao gồm hai tập hợp chỉ số. Thời gian đọc tệp trung bình (Average File Read Time) và thời gian ghi tệp trung bình (Average File Write Time) áp dụng cho tất cả các tệp dữ liệu liên quan đến cơ sở dữ liệu của chúng ta.
Nếu chúng ta thấy rằng một hoặc hai tệp dữ liệu có giá trị đặc biệt cao, chúng ta có thể nhấp vào một tệp và sau đó sử dụng liên kết Compare Objects File Name để xem thống kê đã thu thập giữa chúng. Nếu cả hai đều bận rộn cùng một lúc và nằm trên cùng một ổ đĩa, chúng ta có thể chọn di chuyển một tệp dữ liệu sang hệ thống tệp khác nếu chúng ta lo ngại về hiệu suất trong khoảng thời gian đó.
Chúng cũng có thể xác định các vấn đề về I/O của tệp bằng cách chạy một truy vấn:
Dưới đây là một phần kết quả truy vấn:
Chúng ta cũng có thể thấy các tệp như SYSAUX01.DBF, USERS01.DBF và EXAMPLE01.DBF.
Lưu ý
Sự chênh lệch lớn giữa số lần ghi và đọc vật lý giữa các ổ đĩa có thể cho thấy rằng một ổ đĩa đang bị quá tải. Trong ví dụ trên, các hệ thống tệp 1–3 được sử dụng rất nhiều, trong khi các hệ thống tệp 4–5 chỉ được sử dụng ít. Để có sự cân bằng tốt hơn, chúng ta sẽ muốn di chuyển một số tệp dữ liệu. Việc chia nhỏ các tệp dữ liệu trên nhiều ổ đĩa hoặc sử dụng các phân vùng cũng sẽ giúp chuyển việc truy cập vào một bảng hoặc chỉ mục sang ổ đĩa khác.
TIP
Hãy truy vấn V$FILESTAT và V$DATAFILE để xem tệp dữ liệu đã được cân bằng hiệu quả như thế nào. Lưu ý rằng các không gian bảng tạm thời được theo dõi bằng cách sử dụng V$TEMPFILE và V$TEMPSTAT.
3. Lưu Trữ Dữ Liệu và Tệp Chỉ Mục Ở Các Vị Trí Riêng Biệt
Các bảng được join (truy cập đồng thời trong một truy vấn) thường có thể tách riêng không gian bảng dữ liệu và chỉ mục ra. Ví dụ sau đây minh họa việc join bảng và một giải pháp có thể để quản lý dữ liệu:
Đây là một giải pháp quản lý dữ liệu:
Giải pháp này cho phép join bảng được thực hiện trong khi truy cập bốn ổ đĩa và bộ điều khiển khác nhau. Tách các tệp dữ liệu và chỉ mục ra các thiết bị đĩa vật lý và bộ điều khiển khác nhau; do đó, khi các bảng và chỉ mục được truy cập đồng thời, chúng sẽ không truy cập cùng một thiết bị vật lý. Chúng ta có thể mở rộng giải pháp này để liên quan đến nhiều ổ đĩa hơn. ASM của Oracle hỗ trợ rất tốt trong việc này khi chúng ta thiết lập, và nó cũng có cách để di chuyển "hot data" sang một phần khác của ổ đĩa.
TIP
Tách các tệp dữ liệu chính của Oracle trong hệ thống tệp truyền thống để đảm bảo rằng tranh chấp đĩa không trở thành điểm nghẽn. Bằng cách tách riêng các bảng và chỉ mục của các bảng thường xuyên được kết nối, chúng ta có thể đảm bảo rằng ngay cả trong trường hợp join bảng phức tạp nhất cũng không dẫn đến tranh chấp ổ đĩa. Trong Enterprise Manager (Cloud Control), Oracle giúp việc di chuyển dữ liệu đến vùng "hot" hoặc "cold" của đĩa trở nên dễ dàng.
4.. Thông tin kết nối
Nếu anh em muốn trao đổi thêm về bài viết, hãy kết nối với mình qua LinkedIn và Facebook:
- LinkedIn: https://www.linkedin.com/in/nguyentrungnam/
- Facebook: https://www.facebook.com/trungnam.nguyen.395/
Rất mong được kết nối và cùng thảo luận!
All rights reserved