I / O มากเกินไปที่สร้างขึ้นโดยกระบวนการตัวรวบรวมสถานะของ postgres


10

ฉันใช้ XenServer กับเครื่องเสมือนหลายเครื่องที่มีฐานข้อมูลท้องถิ่น postgres แม้ว่าแอปพลิเคชันทั้งหมดจะไม่ได้ใช้งานและฐานข้อมูลไม่ได้ใช้งาน แต่ vm แต่ละตัวจะก่อให้เกิดทราฟฟิกเครือข่ายการจัดเก็บข้อมูลคงที่ซึ่งลดประสิทธิภาพของอุปกรณ์เก็บข้อมูล iscsi

หลังจากทำงานiotopฉันได้สังเกตเห็นว่ากระบวนการประมวลผลตัวรวบรวมสถานะ postgres กำลังเขียนลงดิสก์อย่างต่อเนื่องในอัตราประมาณ 2 MByte / s

ฉันปิดการรวบรวมสถิติโดยการแก้ไข/etc/postgresql/8.4/main/postgresql.conf:

#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = off
track_counts = off
...

ตามข้อเสนอแนะในhttp://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm

สิ่งนี้ตัดการเขียนอย่างต่อเนื่อง แต่มีข้อเสียใด ๆ ที่ปิดการติดตามสถิติหรือไม่

หรือฉันควรวางไดเรกทอรี pg_stat_tmp บน ramdisk เพื่อหลีกเลี่ยงการรับส่งข้อมูลดิสก์ / เครือข่าย

ระบบนี้เป็นเวอร์ชันเดเบียนที่ทันสมัย ​​6.0.7 (บีบ) ที่มี postgres 8.4 และฐานข้อมูลประมาณ 20 ตารางประมาณ 50 ตารางขนาดไฟล์ดัมพ์รวมน้อยกว่า 100 MByte

คำตอบ:


7

เนื่องจากการอัพเกรด PostgreSQL ไม่ใช่ตัวเลือกฉันได้ลองวางไดเรกทอรี pg_stat_tmp บนระบบไฟล์ tmpfs ซึ่งให้การปรับปรุงประสิทธิภาพที่สำคัญ ตอนนี้ฉันใช้งานระบบนี้หลายสิบสองสามเดือนโดยไม่มีข้อบกพร่องใด ๆ

หากต้องการทำสิ่งนี้เพียงติดตั้ง pg_stat_tmp ด้วย tmpfs ในไฟล์ / etc / fstab ของคุณ:

# <file system> <mount point>                                <type>  <options>  <dump>  <pass>
tmpfs           /var/lib/postgresql/8.4/main/pg_stat_tmp     tmpfs   defaults,noatime,mode=1777,uid=postgres,gid=postgres,nosuid,nodev 0 0

ฉันทำสิ่งนี้เพื่อ Postgresql 9.1 หนึ่งในเซิร์ฟเวอร์ของฉันมีการเขียนอย่างต่อเนื่อง 1 MB / s ตลอดทั้งวัน นี่เองที่ทำให้มันแทบจะไม่เหลืออะไรเลย ได้รับการอนุมัติจากเอกสาร BTW: "... การชี้ไปที่ระบบไฟล์ที่ใช้ RAM จะลดความต้องการ I / O ทางกายภาพและสามารถนำไปสู่การปรับปรุงประสิทธิภาพ"
Halfgaar

0

อัพเกรด PostgreSQL อย่างน้อยที่สุดให้แน่ใจว่าคุณใช้รุ่น 8.4 ล่าสุด; หากไม่ได้ระบุที่อยู่และเป็นไปได้ที่จะทำเช่นนั้นคุณควรอัปเกรดเป็น 9.2 อย่างน้อยบางส่วนปัญหารอบสถิติสะสมได้รับการแก้ไขตั้งแต่ 8.4 และจะถึงจุดสิ้นสุดของชีวิตในประมาณหนึ่งปี คุณอาจจะสามารถหาข้อมูลเพิ่มเติมได้โดยการค้นหา pgsql ทั่วไปจดหมายเหตุรายชื่อผู้รับจดหมาย

คุณไม่ควรมีปัญหามากเกินไปในการอัพเกรดจาก 8.4 เป็น 9.2 แต่ตามปกติคุณจะต้องอ่านส่วนการอัพเกรดของบันทึกประจำรุ่นสำหรับการเปิดตัวแต่ละครั้งใน. 0 (9.0, 9.1 และ 9.2) ความสนใจโดยเฉพาะและstandard_conforming_stringsbytea_output


0

ปัญหาเดียวกันที่นี่ ฉันยังปิดการใช้งานtrack_*และอื่น ๆ

ผลข้างเคียงautovacuumคือการใช้ข้อมูลที่เก็บรวบรวมนี้จะเริ่มขึ้น

vacuumdbดังนั้นฉันจะดูแลเพื่อกำหนดตารางการคืน

วิธีอื่นคือตั้งค่าให้autovacuum_naptimeสูงพอที่จะพักระบบได้

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