คำถามติดแท็ก pgbouncer

3
PostgreSQL ความพร้อมใช้งาน / ความสามารถในการปรับขนาดสูงโดยใช้ HAProxy และ PGBouncer
ฉันมีเซิร์ฟเวอร์ PostgreSQL หลายเครื่องสำหรับเว็บแอปพลิเคชัน โดยทั่วไปแล้วจะเป็นทาสหลักและทาสหลายคนในโหมดฮอตสแตนบาย (การจำลองการส่งกระแสข้อมูลแบบอะซิงโครนัส) ฉันใช้ PGBouncer สำหรับการรวมการเชื่อมต่อ: หนึ่งอินสแตนซ์ที่ติดตั้งบนเซิร์ฟเวอร์ PG แต่ละตัว (พอร์ต 6432) เชื่อมต่อกับฐานข้อมูลบน localhost ฉันใช้โหมดกลุ่มธุรกรรม ในการโหลดการเชื่อมต่อแบบอ่านอย่างเดียวของฉันกับทาสฉันใช้ HAProxy (v1.5) กับ conf มากกว่าหรือน้อยกว่าเช่นนี้ listen pgsql_pool 0.0.0.0:10001 mode tcp option pgsql-check user ha balance roundrobin server master 10.0.0.1:6432 check backup server slave1 10.0.0.2:6432 check server slave2 10.0.0.3:6432 check server slave3 10.0.0.4:6432 check …

1
pgBouncer ใช้งานได้ดี แต่บางครั้งก็ใช้งานไม่ได้
ฉันกำลังเรียกใช้ pgBouncer หน้าฐานข้อมูล postgres 9 ที่ไม่ว่าง สำหรับส่วนใหญ่เวลาทำงานได้ดี แต่ทุก ๆ สองสามชั่วโมงฉันจะได้รับอีเมลข้อผิดพลาดจากแอปพลิเคชันของฉันโดยมีข้อยกเว้นจาก psycopg2: OperationalError ('ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์: ไม่สามารถกำหนดที่อยู่ที่ร้องขอเซิร์ฟเวอร์ทำงานบนโฮสต์ "neo-hulk" และยอมรับการเชื่อมต่อ TCP / IP บนพอร์ต 6432 หรือไม่') แอพนี้เป็นแอพที่มีคนทำงานคื่นฉ่ายหลายคนกำลังทำงานอยู่ เมื่อข้อผิดพลาดเหล่านั้นมาถึงฉันจะตรวจสอบ pgbouncer db และขนาดพูลอยู่ในขีด จำกัด หลังจากการทดลองบางอย่างฉันได้ตั้งค่าขนาดสูงสุดของพูลเป็น 400 และขนาดพูลเป็น 200 โหมดพูคือ "เซสชัน" (คำขอส่วนใหญ่จะกระทำโดยอัตโนมัติเกือบจะไม่มีธุรกรรม) อะไรทำให้ pgBouncer 'หายไป' อย่างนั้น? เป็นเพียงช่วงเวลาสั้น ๆ เท่านั้น (และโดยรวมแล้วเรากำลังพูดถึงคำขอจำนวนเล็กน้อยเมื่อเทียบกับปริมาณคำขอที่แท้จริงที่มอบให้) แต่คำขอที่ล้มเหลวนั้นมีความสำคัญ ขอบคุณ!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.