Postgres ของฉันมีการค้นหากี่ครั้งต่อวินาที


15

ฉันจะบอกได้อย่างไรว่ามีคิวรีจำนวนเท่าไรต่อวินาทีที่ฐานข้อมูล Postgres ของฉันกำลังดำเนินการอยู่


คุณได้เช็คเอาต์แล้ว: serverfault.com/questions/268506/…

@thtsigma ไม่ตอบคำถามนี้ แบบสอบถามสถิติสำหรับ MySQL เพียงธุรกรรมสถิติสำหรับ PG

1
คุณได้ลองใช้เครื่องมือทำโปรไฟล์ Postgres เช่นpg_top แล้วหรือยัง?
emallove

postgresql.org/docs/9.3/static/ ...... เช่นเลือก tup_inserted จาก pg_stat_database
sivann

คำตอบ:


11

ใช้แบบสอบถามนี้เพื่ออ่านจำนวนธุรกรรมทั้งหมดที่ดำเนินการในฐานข้อมูลทั้งหมด:

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

ถ้าคุณต้องการตัวนับเดียวกันสำหรับฐานข้อมูลเดียวให้ใช้:

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

ในการคำนวณ TPS (ธุรกรรมต่อวินาที) ให้เรียกใช้แบบสอบถามหลายครั้งและคำนวณความแตกต่างตามช่วงเวลา

มีเครื่องมือที่พร้อมใช้แล้วหนึ่งในนั้นคือhttp://bucardo.org/wiki/Check_postgres

ข้อมูลเพิ่มเติม: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW


อัปเดต: Konrad แก้ไขความเข้าใจที่คลาดเคลื่อนในคำถามของเขา เป้าหมายคือการนับการค้นหาไม่ใช่การทำธุรกรรม

วิธีนับแบบสอบถาม

วิธีที่ 1

ใช้pg_stat_statements contrib

วิธีที่ 2

เปิดใช้งานการบันทึกการสืบค้นแบบเต็มสำหรับระยะเวลาตัวแทน

หากต้องการเปิดใช้งานการบันทึกแบบเต็มสำหรับ PostgreSQL 9.0 - 9.3 ให้เปลี่ยนการตั้งค่าต่อไปนี้ใน postgresql.conf

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

หากคุณต้องการที่จะดูระยะเวลาแบบสอบถามคุณสามารถตั้งค่าlog_min_duration_statement = 0 แทนlog_statement = allของ สิ่งนี้มีประโยชน์มากสำหรับการปรับแต่งแบบสอบถาม

จากนั้นโหลดการกำหนดค่าใหม่ (รีสตาร์ทหรือ HUP) และรวบรวมบันทึกเพียงพอที่จะประมาณการปริมาณการใช้งาน

หมายเหตุ:ไม่มีวิธีใดที่จะรวมข้อความค้นหาที่ฝังอยู่ในฟังก์ชั่นที่ผู้ใช้กำหนด


ฉันรู้วิธีคำนวณธุรกรรมต่อวินาที คำถามนั้นเกี่ยวกับข้อความค้นหาต่อวินาทีโดยเฉพาะ ธุรกรรมหนึ่งรายการสามารถมีข้อความค้นหาตั้งแต่ 0 รายการขึ้นไป
Konrad Garus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.