Lịch sử phiên hoạt động PostgreSQL - tiện ích mở rộng pgsentinel mới

công ty pgsentinel đã phát hành phần mở rộng pgsentinel cùng tên (kho github), bổ sung chế độ xem pg_active_session_history vào PostgreSQL — lịch sử của các phiên hoạt động (tương tự như v$active_session_history của Oracle).

Về cơ bản, đây chỉ là những ảnh chụp nhanh từng giây từ pg_stat_activity, nhưng có những điểm quan trọng:

  1. Tất cả thông tin tích lũy chỉ được lưu trữ trong RAM và dung lượng bộ nhớ tiêu thụ được điều chỉnh bởi số lượng bản ghi được lưu trữ cuối cùng.
  2. Trường queryid được thêm vào - cùng một queryid từ phần mở rộng pg_stat_statements (yêu cầu cài đặt sẵn).
  3. Trường top_level_query được thêm vào - văn bản của truy vấn mà truy vấn hiện tại được gọi (nếu sử dụng pl/pgsql)


Danh sách đầy đủ các trường pg_active_session_history:

      Cột | Gõ -------------------+-------------------------- ash_time | dấu thời gian với múi giờ dat | tên ngày oid | văn bản pid | số nguyên usesysid | tên sử dụng oid | ứng dụng văn bản_name | nhắn tin client_addr | văn bản client_hostname | nhắn tin client_port | số nguyên backend_start | dấu thời gian với múi giờ xact_start | dấu thời gian với múi giờ query_start | dấu thời gian với múi giờ state_change | dấu thời gian với múi giờ wait_event_type | văn bản wait_event | trạng thái văn bản | văn bản backend_xid | xid backend_xmin | xid top_level_query | truy vấn văn bản | id truy vấn văn bản | bigint backend_type | chữ                     

Chưa có gói làm sẵn để cài đặt. Bạn nên tải xuống các nguồn và tự lắp ráp thư viện. Trước tiên, bạn cần cài đặt gói “devel” cho máy chủ của mình và đặt đường dẫn đến pg_config trong biến PATH. Chúng tôi thu thập:

cd pgsentinel/src
làm cho
thực hiện cài đặt

Thêm tham số vào postgres.conf:

Shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = tất cả

# số bản ghi gần đây được giữ trong bộ nhớ
pgsentinel_ash.max_entries = 10000

Khởi động lại PostgreSQL và tạo tiện ích mở rộng:

tạo phần mở rộng pgsentinel;

Thông tin tích lũy cho phép chúng tôi trả lời các câu hỏi như:

  • Bạn dành nhiều thời gian nhất cho những phiên chờ đợi nào?
  • Những phiên nào hoạt động tích cực nhất?
  • Những yêu cầu nào được tích cực nhất?

Tất nhiên, bạn có thể nhận được câu trả lời cho những câu hỏi này bằng truy vấn SQL, nhưng sẽ thuận tiện hơn khi xem điều này một cách trực quan trên biểu đồ bằng cách đánh dấu các khoảng thời gian quan tâm bằng chuột. Bạn có thể làm điều này với một chương trình miễn phí Trình xem PASH (bạn có thể tải xuống các tệp nhị phân được thu thập trong phần Phát hành).

Khi khởi động, PASH-Viewer (bắt đầu từ phiên bản 0.4.0) sẽ kiểm tra sự hiện diện của chế độ xem pg_active_session_history và nếu nó tồn tại, nó sẽ tải toàn bộ lịch sử tích lũy từ đó và tiếp tục đọc dữ liệu mới đến, cập nhật biểu đồ cứ sau 15 giây.

Lịch sử phiên hoạt động PostgreSQL - tiện ích mở rộng pgsentinel mới

Nguồn: www.habr.com

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