ดูการใช้งานหน่วยความจำ Postgresql


11

ฉันใช้งาน Postgresql บนเซิร์ฟเวอร์ Ubuntu และต้องสามารถตรวจสอบการใช้งานหน่วยความจำได้ ขณะนี้ฉันมีสคริปต์ที่ทำงานในงาน cron หนึ่งนาทีที่ตรวจสอบ / บันทึกสถิติต่างๆและจำเป็นต้องตรวจสอบ / บันทึกการใช้งานหน่วยความจำปัจจุบันของ Postgresql ฉันค้นหาไปแล้วและไม่สามารถหาอะไรได้มากไปกว่าความจริงที่ว่า Postgresql ใช้หน่วยความจำที่ใช้ร่วมกันได้ดีดังนั้นค่าที่กำหนดโดยโปรแกรมเช่น 'top' นั้นไม่ถูกต้อง

ฉันจะตรวจสอบการใช้งานหน่วยความจำทั้งหมดของ Postgresql ได้ตลอดเวลาที่กำหนดไว้อย่างไร ข้อมูลนี้จะถูกนำมาใช้ในการสร้างกราฟสำหรับการวิเคราะห์ในภายหลัง

คำตอบ:


8

ใช้หน่วยความจำในลินุกซ์ทั่วไปและสำหรับ Postgres โดยเฉพาะอย่างยิ่งเป็นเรื่องที่ซับซ้อนสวยเป็นจุดเริ่มต้นที่ดีคือบรูซ Momjians บล็อกครอบคลุมเรื่องและการใช้งานของsmem มันเป็นการดีที่จะติดตามลิงก์ในบล็อกของ Chris Seibenmannsในเรื่องนี้


ขอบคุณสำหรับลิงก์ แต่ดูเหมือนว่า smem จะใช้งานไม่ได้เนื่องจากเคอร์เนลเวอร์ชันเก่าเกินไป แม้ว่าบทความที่ดี
Rauffle

0

คุณสามารถใช้pmapคำสั่งเพื่อรับหน่วยความจำที่ใช้ของกระบวนการ:

# pmap -p PID

น่าเสียดายที่ PMap ไม่มีประโยชน์มากในกรณีนี้เนื่องจาก Postgresql ใช้หน่วยความจำที่แชร์มากมาย ในบางครั้งหน่วยความจำทั้งหมดที่รายงานโดยเครื่องมือเช่น pmap สำหรับ Postgresql มากกว่าหน่วยความจำที่ใช้งานได้ทั้งหมดในระบบเนื่องจากสิ่งนี้
Rauffle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.