เมื่อระบบฐานข้อมูล (Database) ต้องรองรับการอ่านและเขียนข้อมูลปริมาณมหาศาลจากแอปพลิเคชันเซิร์ฟเวอร์จำนวนมาก (App Nodes) ขวดโหลด้านประสิทธิภาพมักจะตกไปอยู่ที่ช่องสัญญาณและการใช้ซีพียูของระบบฐานข้อมูลตัวหลัก การทำ **Database Load Balancing** โดยการตั้งระบบฐานข้อมูลแบบกลุ่ม (Database Clusters - เช่น Master/Replica หรือ Galera Cluster) ควบคู่กับ **HAProxy** เป็นแนวทางที่ได้รับความนิยมสูงและพิสูจน์แล้วในระบบขนาดใหญ่
HAProxy เป็นซอฟต์แวร์พร็อกซีน้ำหนักเบาที่มีความสามารถในการจัดสรร TCP connections ได้รวดเร็วและใช้แรมต่ำ สไลด์นี้สรุปแนวทางการปรับจูนประสิทธิภาพของ HAProxy เพื่อทำ Database Proxying ให้เสถียรที่สุด:
1. TCP Configuration & Connection Re-use Tuning
การเชื่อมต่อฐานข้อมูลมีการเข้าออกบ่อยครั้ง ปรับแต่งค่าพารามิเตอร์ `maxconn` ในส่วนโกลบอลให้รองรับเซสชันได้สูง (เช่น 20,000+) และปรับปรุงค่าของ timeout เช่น `timeout connect 5s`, `timeout client 50s` และ `timeout server 50s` เพื่อไม่ให้มี connection ค้างสะสมจนทรัพยากรระบบหมด
2. Kernel Network Stack sysctl Tuning
จูนค่า Kernel ลินุกซ์ที่โฮสต์รัน HAProxy เพื่อขยายขนาดพอร์ตเชื่อมต่อและลดการรอคอยของพอร์ตที่ปิดตัวลง: - `net.ipv4.ip_local_port_range = 1024 65535` (ขยายพอร์ตภายในสำหรับเชื่อมฐานข้อมูล) - `net.ipv4.tcp_tw_reuse = 1` (เปิดใช้งานพอร์ตในสถานะ TIME_WAIT ซ้ำได้รวดเร็ว)
3. Read-Write Splitting Strategy (การแยกช่องการอ่านเขียน)
สถาปัตยกรรมที่ดีควรแยกทราฟฟิก: - กำหนดพอร์ต `3306` ให้วิ่งตรงไปยัง Master Node เพื่อประมวลผลธุรกรรมการเขียนข้อมูล - กำหนดพอร์ต `3307` ให้ทำบาลานซ์ระหว่างกลุ่ม Replica Nodes เพื่อช่วยรองรับคำสั่งการอ่านและเรียกดูรายงาน ทำให้ประสิทธิภาพโดยรวมเพิ่มขึ้นหลายเท่าตัว
4. Advanced Health Checks (การตรวจสอบสุขภาพเซิร์ฟเวอร์แบบขั้นสูง)
หลีกเลี่ยงการทำเช็คฐานข้อมูลด้วย TCP Ping ทั่วไปเพราะอาจหลอกตาได้เมื่อฐานข้อมูลเกิดการล็อกเทเบิลยาวนาน ให้เขียนสคริปต์ตรวจสอบฐานข้อมูลระดับลึก เช่น `xinetd` ร่วมกับเช็คพอร์ตภายนอกที่เข้าไปรันคำสั่ง `SHOW STATUS` เช็คสถานะ Read-Only หรือ Lag time จริงของฐานข้อมูล
การปรับจูน HAProxy ให้ตอบสนองได้แม่นยำจะช่วยลดภาระการเชื่อมต่อเซิร์ฟเวอร์ได้มหาศาล และทำให้ระบบประมวลผลข้อมูลหลังบ้านของคุณมีความมั่นคง ทนทานต่อการขยายตัว และไม่ขัดข้องแม้มีทราฟฟิกถาโถม