Có bao nhiêu truy vấn mỗi giây là Postgres của tôi đang thực thi?


15

Làm cách nào tôi có thể biết có bao nhiêu truy vấn mỗi giây cơ sở dữ liệu Postgres của tôi đang thực thi?


Bạn đã kiểm tra ra: serverfault.com/questions/268506/...

@thtsigma Không trả lời câu hỏi này. Truy vấn số liệu thống kê cho MySQL, chỉ thống kê giao dịch cho PG.

1
Bạn đã thử bất kỳ công cụ định hình Postgres nào, chẳng hạn như pg_top chưa?
emallove

postgresql.org/docs/9.3/static/... ví dụ như chọn tup_inserted từ pg_stat_database
sivann

Câu trả lời:


11

Sử dụng truy vấn này để đọc tổng số giao dịch được thực hiện trong tất cả các cơ sở dữ liệu:

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

Nếu bạn muốn cùng một bộ đếm cho chỉ một cơ sở dữ liệu, hãy sử dụng:

SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';

Để tính toán TPS (giao dịch mỗi giây), hãy chạy truy vấn nhiều lần và tính chênh lệch theo khoảng thời gian.

Có những công cụ đã sẵn sàng cho việc đó, một trong số đó là http://bucardo.org/wiki/Check_postgres

Thông tin thêm: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW


Cập nhật: Konrad đã sửa chữa sự hiểu lầm của tôi về câu hỏi của anh ấy. Mục tiêu là để đếm các truy vấn, không phải giao dịch.

Làm thế nào để đếm truy vấn?

Phương pháp 1

Sử dụng đóng góp pg_stat_statements .

Phương pháp 2

Cho phép ghi nhật ký đầy đủ các truy vấn trong một khoảng thời gian đại diện.

Để bật ghi nhật ký đầy đủ, đối với PostgreQuery 9.0 - 9.3, hãy thay đổi các cài đặt sau trong postgresql.conf

logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all

Nếu bạn muốn xem thêm thời gian truy vấn, bạn có thể thiết lập log_min_duration_statement = 0 thay vì của log_statement = all. Điều này rất hữu ích để điều chỉnh truy vấn.

Sau đó tải lại cấu hình (khởi động lại hoặc HUP) và thu thập đủ nhật ký để ước tính lưu lượng.

Lưu ý: không phương thức nào sẽ bao gồm các truy vấn được nhúng trong các hàm do người dùng xác định.


Tôi biết cách tính toán giao dịch mỗi giây. Câu hỏi là về các truy vấn mỗi giây cụ thể. Một giao dịch có thể có 0 hoặc nhiều truy vấn.
Konrad Garus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.