บริษัท
โดยพื้นฐานแล้ว นี่เป็นเพียงสแนปช็อตแบบวินาทีต่อวินาทีจาก pg_stat_activity แต่มีประเด็นสำคัญ:
- ข้อมูลที่สะสมทั้งหมดจะถูกจัดเก็บไว้ใน RAM เท่านั้น และจำนวนหน่วยความจำที่ใช้จะถูกควบคุมโดยจำนวนบันทึกที่เก็บไว้ล่าสุด
- เพิ่มฟิลด์ queryid แล้ว - queryid เดียวกันจากส่วนขยาย pg_stat_statements (จำเป็นต้องติดตั้งล่วงหน้า)
- มีการเพิ่มฟิลด์ top_level_query - ข้อความของแบบสอบถามที่ใช้เรียกแบบสอบถามปัจจุบัน (หากใช้ pl/pgsql)
รายการช่อง pg_active_session_history ทั้งหมด:
คอลัมน์ | พิมพ์ -------------------+----------------------------- ash_time | การประทับเวลาพร้อมโซนเวลา dadid | oid datename | ข้อความ พีไอ | usesysid จำนวนเต็ม | oid ชื่อผู้ใช้ | ข้อความ application_name | ข้อความ client_addr | ข้อความ client_hostname | ข้อความ client_port | จำนวนเต็ม backend_start | การประทับเวลาพร้อมเขตเวลา xact_start | การประทับเวลาพร้อมโซนเวลา query_start | การประทับเวลาพร้อมเขตเวลา state_change | การประทับเวลาพร้อมเขตเวลา wait_event_type | ส่งข้อความ wait_event | สถานะข้อความ | ข้อความ backend_xid | xid แบ็กเอนด์_xmin | xid top_level_query | ข้อความค้นหา | ข้อความสอบถาม ID | bigint backend_type | ข้อความ
ยังไม่มีแพ็คเกจสำเร็จรูปสำหรับติดตั้ง ขอแนะนำให้ดาวน์โหลดซอร์สและประกอบไลบรารีด้วยตนเอง ก่อนอื่นคุณต้องติดตั้งแพ็คเกจ “devel” สำหรับเซิร์ฟเวอร์ของคุณและตั้งค่าเส้นทางเป็น pg_config ในตัวแปร PATH เรารวบรวม:
ซีดี pgsentinel/src
ทำ
ให้ติดตั้ง
เพิ่มพารามิเตอร์ใน postgres.conf:
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = ทั้งหมด# จำนวนบันทึกล่าสุดที่เก็บไว้ในหน่วยความจำ
pgsentinel_ash.max_entries = 10000
รีสตาร์ท PostgreSQL และสร้างส่วนขยาย:
สร้างส่วนขยาย pgsentinel;
ข้อมูลที่สะสมช่วยให้เราสามารถตอบคำถามเช่น:
- คุณใช้เวลารอช่วงใดมากที่สุด?
- เซสชันใดที่มีการใช้งานมากที่สุด?
- คำขอใดที่มีการใช้งานมากที่สุด?
แน่นอนว่าคุณสามารถรับคำตอบสำหรับคำถามเหล่านี้ได้โดยใช้คำสั่ง SQL แต่จะสะดวกกว่าหากดูภาพนี้บนกราฟโดยการเน้นช่วงเวลาที่สนใจด้วยเมาส์ คุณสามารถทำได้ด้วยโปรแกรมฟรี
เมื่อเริ่มต้น PASH-Viewer (ตั้งแต่เวอร์ชัน 0.4.0) จะตรวจสอบการมีอยู่ของมุมมอง pg_active_session_history หรือไม่ และหากมีอยู่ ก็จะโหลดประวัติที่สะสมทั้งหมดจากนั้นและอ่านข้อมูลขาเข้าใหม่ต่อไป โดยอัปเดตกราฟทุกๆ 15 วินาที
ที่มา: will.com