PostgreSQL, cơ sở dữ liệu phổ biến thứ tư và DBMS của năm vào năm 2017, đã trở nên phổ biến trong cộng đồng phát triển và cơ sở dữ liệu trên toàn thế giới. Đánh cắp thị phần từ các nhà dẫn đầu Oracle, MySQL và Microsoft SQL Server, dịch vụ lưu trữ PostgreSQL cũng được các doanh nghiệp mới tận dụng rất nhiều trong các không gian thú vị như IoT, thương mại điện tử, SaaS, phân tích, v.v.
Vậy Xu hướng trong Quản lý PostgreSQL là gì?
Chúng tôi đã tham dự PostgresOpen ở San Francisco vào tháng trước để khám phá những xu hướng mới nhất từ chính các chuyên gia.
Công việc quản lý PostgreSQL tiêu tốn nhiều thời gian nhất
Vậy, điều gì đang ngốn thời gian của bạn trên mặt trận quản lý PostgreSQL? Mặc dù có hàng nghìn nhiệm vụ liên quan đến việc quản lý triển khai sản xuất PostgreSQL của bạn, nhưng quản lý truy vấn là công cụ dẫn đầu với hơn 30% từ người trả lời.
Quản lý không gian chỉ là một giây phút xa vời với 15% người dùng PostgreSQL nhận thấy đây là nhiệm vụ khó khăn nhất của họ, tiếp theo là sao chép, nâng cấp và giám sát. 23% người dùng PostgreSQL rơi vào danh mục “Tất cả những người khác”, bao gồm các tác vụ như vá lỗi, khôi phục, phân vùng và di chuyển.
Quản lý Phân tích Truy vấn PostgreSQL
Với việc dẫn đầu trong việc quản lý các truy vấn PostgreSQL, chúng tôi tìm hiểu sâu hơn để xem những tác vụ cụ thể nào đang tiêu tốn thời gian của họ. Kết quả trải dài trong toàn bộ quá trình quản lý truy vấn, từ cấu trúc khi thiết lập đến tối ưu hóa sau khi phân tích.
Để giải thích thêm về vấn đề này, hãy bắt đầu từ đầu quy trình quản lý truy vấn:
Cấu trúc Truy vấn
Phân khúc nhỏ nhất, quản lý cấu trúc truy vấn, chiếm 22% phản hồi từ người dùng PostgreSQL, những người đã chọn truy vấn làm nhiệm vụ quản lý tốn nhiều thời gian nhất của họ.
Trước khi bắt đầu, bạn cần tạo một kế hoạch truy vấn PostgreSQL xung quanh các cụm của mình để khớp cấu trúc truy vấn với các thuộc tính dữ liệu của bạn. Chúng bao gồm các nút, từ các nút quét ở cấp dưới cùng để trả về bảng hàng thô, cùng với các hàng không phải bảng, chẳng hạn như giá trị.
Phân tích truy vấn chậm
Sau khi bạn đã thiết lập cấu trúc của mình, bước tiếp theo là phân tích các truy vấn của bạn để xác định các truy vấn chạy chậm có thể ảnh hưởng đến hiệu suất ứng dụng của bạn. Theo mặc định, "truy vấn chậm" được định nghĩa là các truy vấn mất nhiều hơn 100 mili giây.
Tối ưu hóa Truy vấn
Bây giờ bạn đã xác định được các truy vấn chậm của mình, công việc thực sự sẽ bắt đầu - tối ưu hóa các truy vấn PostgreSQL của bạn. Điều chỉnh hiệu suất Postgres có thể là một nhiệm vụ khủng khiếp, nhưng với xác định và phân tích thích hợp, bạn có thể khắc phục các điểm nghẽn và thực hiện các thay đổi truy vấn cần thiết và thêm các chỉ mục khi cần thiết để cải thiện quá trình thực thi của bạn. Đây là một bài viết tuyệt vời về các truy vấn điều chỉnh hiệu suất trong PostgreSQL.
Xu hướng PostgreSQL mới nhất:Nhiệm vụ tiêu tốn nhiều thời gian nhất &các chỉ số quan trọng để theo dõi Nhấp để đăng
Các chỉ số quan trọng nhất cần theo dõi để có hiệu suất PostgreSQL
Bây giờ chúng tôi đã xác định được nhiệm vụ quản lý PostgreSQL tốn nhiều thời gian nhất, hãy cùng tìm hiểu sâu hơn về các chỉ số quan trọng mà người dùng PostgreSQL theo dõi để tối ưu hóa hiệu suất của họ.
Kết quả số liệu PostgreSQL quan trọng nhất đồng đều hơn đáng kể so với các tác vụ quản lý, dẫn đến mối ràng buộc bốn chiều giữa số liệu thống kê sao chép, sử dụng CPU và RAM, giao dịch mỗi giây (TPS) và các truy vấn chậm:
Số liệu thống kê về bản sao
Theo dõi trạng thái sao chép PostgreSQL của bạn là một nhiệm vụ quan trọng để đảm bảo các bản sao của bạn được thực thi đúng cách và các triển khai sản xuất của bạn vẫn có tính khả dụng cao. Quy trình sao chép phải được tùy chỉnh để phù hợp nhất với nhu cầu ứng dụng của bạn và giám sát điểm cuối liên tục là cách tốt nhất để đảm bảo dữ liệu của bạn được an toàn và sẵn sàng phục hồi.
Điều quan trọng là phải theo dõi số liệu trên cả máy chủ dự phòng và máy chủ chính của bạn. Các máy chủ dự phòng của bạn phải được theo dõi về trạng thái sao chép và phục hồi đến, và các máy chủ chính của bạn phải được theo dõi về các vị trí sao chép và nhân bản gửi đi. Nếu bạn đang sử dụng nhân rộng phát trực tuyến PostgreSQL, thì không phải lúc nào bạn cũng cần có các vị trí sao chép. Nhân rộng luồng đảm bảo dữ liệu sẵn có ngay lập tức trên các máy chủ dự phòng của bạn và lý tưởng cho các máy chủ TPS thấp.
Sử dụng CPU &RAM
Theo dõi mức sử dụng CPU và RAM (bộ nhớ) là những chỉ số quan trọng cần theo dõi để đảm bảo tình trạng hoạt động của các máy chủ PostgreSQL của bạn. Nếu mức sử dụng CPU của bạn quá cao, ứng dụng của bạn sẽ bị chậm lại khiến người dùng của bạn gặp khó khăn. Đó thường là kết quả của các truy vấn được tối ưu hóa kém hoặc thậm chí là số lượng song song truy vấn cao. Theo dõi RAM là rất quan trọng để đảm bảo bạn có đủ dung lượng đĩa và hiểu chính xác RAM của bạn đang được sử dụng để làm gì. Bạn nên phân bổ khoảng 25% bộ nhớ của mình cho shared_buffers. PostgreSQL cũng mặc định kích thước bộ nhớ đệm hoạt động là 4MB, thường là quá ít và dẫn đến thời gian thực thi cao.
Giao dịch mỗi giây
Giám sát số lượng giao dịch mỗi giây cho phép bạn xác định tải trên hệ thống và thông lượng hiện tại. Bằng cách phân tích số liệu này, người ta có thể quyết định mở rộng hệ thống cho phù hợp để đạt được thông lượng mong muốn. Bạn cũng có thể xác định cách một thay đổi trong cài đặt cấu hình hoặc tài nguyên hệ thống ảnh hưởng đến thông lượng.
Truy vấn chậm
Các truy vấn không hiệu quả có thể làm chậm hiệu suất PostgreSQL ngay cả khi hệ thống được định cấu hình với đầy đủ tài nguyên. Luôn luôn là một phương pháp hay để phân tích các truy vấn không hiệu quả này và khắc phục chúng. PostgreSQL cung cấp tham số có tên là log_min_duration_statement . Khi điều này được đặt, nó làm cho thời lượng của mỗi câu lệnh đã hoàn thành được ghi lại nếu câu lệnh chạy trong ít nhất một số mili giây được chỉ định. Sau khi nhận được các truy vấn chậm, bạn có thể chạy GIẢI THÍCH PHÂN TÍCH để hiểu kế hoạch thực thi. Điều này sẽ cho phép bạn theo dõi vấn đề và tối ưu hóa truy vấn cho phù hợp. Do đó, theo dõi các truy vấn chậm thường xuyên sẽ tránh được sự chậm chạp trong hiệu suất.
Tìm chúng tôi vào tuần tới tại sự kiện PostgresConf Silicon Valley 2018, nơi chúng tôi hy vọng sẽ khám phá thêm thông tin chi tiết về xu hướng trong không gian quản lý PostgreSQL. Nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào, hãy chia sẻ chúng với chúng tôi tại đây trong phần nhận xét của chúng tôi hoặc trên Twitter tại @scalegridio.