บังเอิญมีปัญหาเรื่องเซิร์ฟเวอร์ตายบ่อยๆ เพราะคนเข้าเว็บเยอะจนล้น แก้ปัญหาโดยการบีบโดนการใช้ mod_cband ไม่ได้ผลเพราะจะไม่มีใครเข้าเว็บได้เลย ซึ่งอาการหนักพอสมควร กรณีนี้แก้ไขได้โดยใช้ load balancing แต่ขึ้นอยู่ว่าจะ load balance ที่ไหน มาทำความเข้าใจปัญหากันก่อนครับ ตอนนี้ Web Server มีตัวเดียว เครื่องเซิร์ฟเวอร์รองรับ load ไม่ได้มากนัก CPU/RAM เต็มบ่อยๆ จนนิ่ง ปรับแก้ไข Config แล้วก็ตายเช่นเดิม ดังนั้นแก้ไขโดนการเพิ่มเซิร์ฟเวอร์เข้าไปอีก ในกรณีนี้เลือกวิธี load balancing ที่ง่ายสุดคือใช้ DNS load balancing คือ เป็นเว็บเดียวกันแต่มีหลายเครื่องและบอก DNS ว่ามีเซิร์ฟเวอร์หลายเครื่อง หมุน IP Address เอา ลองดูตัวอย่าง Google กัน

# host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 64.233.181.105
www.l.google.com has address 64.233.181.106
www.l.google.com has address 64.233.181.147
www.l.google.com has address 64.233.181.99
www.l.google.com has address 64.233.181.103
www.l.google.com has address 64.233.181.104

จากข้อมูลข้างต้น www.google.com มี aliase อยู่ 6 ตัว ถ้าคุณเข้า www.google.com มันก็จะหมุน IP Address ให้เราใหม่ให้ลองใช้คำสั่ง host www.google.com อีกครั้งคุณจะได้ข้อมูลดังนี้

#host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 64.233.181.106
www.l.google.com has address 64.233.181.105
www.l.google.com has address 64.233.181.104
www.l.google.com has address 64.233.181.103
www.l.google.com has address 64.233.181.99
www.l.google.com has address 64.233.181.147

# host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 64.233.181.103
www.l.google.com has address 64.233.181.99
www.l.google.com has address 64.233.181.147
www.l.google.com has address 64.233.181.106
www.l.google.com has address 64.233.181.105
www.l.google.com has address 64.233.181.104

จะเห็นว่า IP Address จะหมุนเป็น Round Robin ซึ่งเครื่อง client ก็จะเลือก IP Address ที่อยู่อันดับแรกเสมอ นั่นคือเวลาเราเข้าเว็บ www.google.com ในแต่ละครั้งเรียกเว็บเซิร์ฟเวอร์คนละตัวกันแต่หน้าเว็บเหมือนกัน ซึ่งเป็นการกระจาย load ให้เว็บเซิร์ฟเวอร์อย่างง่ายๆ ไม่ต้องคิดมาก :) วิธีการตั้งค่า DNS Load balancing มีดังนี้

www 60 IN 10.1.1.111
www 60 IN 10.1.1.112
www 60 IN 10.1.1.113
www 60 IN 10.1.1.114
www 60 IN 10.1.1.115
www 60 IN 10.1.1.116

หรือตั้งค่าแบบนี้ก็ได้ผลเช่นเดียวกัน

www 60 IN 10.1.1.111
60 IN 10.1.1.112
60 IN 10.1.1.113
60 IN 10.1.1.114
60 IN 10.1.1.115
60 IN 10.1.1.116

ทีนี้เราก็กระจาย load ของเว็บเซิร์ฟเวอร์ได้แล้ว แต่กรณีนี้ไม่ได้แก้ปัญหา fail over นะครับ มาดูกรณีที่เป็นปัญหากันครับ หากเว็บเซิร์ฟเวอร์ตายไปสักตัวนึงใน 6 ตัวนี้แล้ว ผู้ใช้โชคดีได้ IP Address ของเว็บเซิร์ฟเวอร์ที่ตาย ก็จะเข้าหน้าเว็บไม่ได้นั่นไง ดังนั้นกรณีนี้ต้อง monitor เครื่องเว็บเซิร์ฟเวอร์ให้อยู่ในดีมีสุขอยู่เสมอ เพราะถึงมีเว็บเซิร์ฟเวอร์ มากขึ้นแต่โอกาสที่จะเข้าเว็บแล้วเจอเว็บเซิร์ฟเวอร์ที่ตายก็ยังมีอยู่ แต่อย่างน้อยก็กระจาย load ได้ครับ

Comments are closed.