Tags:
Node Thumbnail

Facebook เปิดเผยข้อมูลเชิงวิศวกรรมของ Autoscale ตัวกระจายโหลด (load balancer) ที่ออกแบบมาเพื่อให้ใช้พลังงานของเซิร์ฟเวอร์ในศูนย์ข้อมูลอย่างคุ้มค่า

การทำงานของ Facebook มีเซิร์ฟเวอร์เป็นจำนวนมาก โดยเซิร์ฟเวอร์มีอัตราการใช้พลังงานแตกต่างกันตามปริมาณงาน (โหลด) ที่ทำอยู่ในตอนนั้น

  • สถานะว่างงาน (idle) กินไฟประมาณ 60 วัตต์
  • สถานะทำงานต่ำ (low CPU utilization) กินไฟประมาณ 130 วัตต์
  • สถานะทำงานปานกลาง (medium CPU utilization) กินไฟประมาณ 150 วัตต์

จากข้อมูลนี้จะเห็นว่าอัตราการกินไฟระหว่างสองสถานะแรกต่างกันมาก ในขณะที่สองสถานะหลังไม่ต่างกันมากนัก ดังนั้นถ้าจะให้ประหยัดพลังงานก็ควรรวมงานไปรันบนเซิร์ฟเวอร์ที่มีสถานะปานกลางอยู่แล้ว แทนที่จะเปิดเซิร์ฟเวอร์ใหม่จากสถานะว่างงานมาเป็นทำงานต่ำ

แต่ตัวกระจายโหลดของ Facebook รุ่นก่อนใช้หลักแบ่งงานอย่างเท่าเทียม โดยจะวนเครื่องมารับงานไปเรื่อยๆ ตามลำดับ (round-robin) การจัดการพลังงานในภาพรวมจึงไม่ดีนัก เพราะทุกเครื่องจะมีโอกาสทำงานหมด ไม่มีเครื่องไหนอยู่ในสถานะว่างงานที่กินไฟน้อย

ปัญหานี้ยิ่งเด่นชัดในช่วงกลางคืนที่โหลดน้อย เครื่องควรอยู่ในสถานะว่างงานมาก แต่ด้วยการกระจายโหลดแบบ round-robin ทำให้เครื่องถูกปลุกมาทำงานโหลดน้อยแทน ซึ่งกินไฟมากกว่ากันมาก

วิศวกรของ Facebook จึงเขียนตัวกระจายโหลดใหม่ชื่อ Autoscaler โดยใช้แนวคิด "จัดกลุ่ม" (pool) ของเซิร์ฟเวอร์ และเลือกจ่ายงานเฉพาะเซิร์ฟเวอร์ที่อยู่ใน active pool เท่านั้น โดยจะค่อยๆ เพิ่มจำนวนเซิร์ฟเวอร์ใน active pool ขึ้นไปเรื่อยๆ ตามโหลด แต่เซิร์ฟเวอร์ที่อยู่นอก active pool จะไม่มีโอกาสทำงานเลย วิธีการนี้ช่วยให้ควบคุมการใช้พลังงานของเซิร์ฟเวอร์ได้

จุดสำคัญอยู่ที่ตรรกะ (logic) ของซอฟต์แวร์ Autoscaler ในการเลือกขนาดของเซิร์ฟเวอร์ให้เหมาะสม โดยพิจารณาจากปัจจัยต่างๆ ของงาน เช่น อัตราการใช้งานซีพียู หรือ จำนวนรีเควสต์ต่อวินาที (request-per-second) ซึ่งเมื่อสร้างซอฟต์แวร์เสร็จแล้ว พบว่าผลออกมาดีตามต้องการ โดย Autoscaler สามารถช่วย Facebook ประหยัดพลังงานได้ถึง 27% ในยามที่คนใช้งานน้อย (เช่น ตอนเที่ยงคืน) และโดยเฉลี่ยตลอด 24 ชั่วโมง สามารถประหยัดพลังงานได้ 10-15%

No Description

Facebook บอกว่าตอนนี้นำ Autoscaler มาใช้งานจริงแล้ว แต่ไม่ได้บอกว่าจะเปิดซอร์สด้วยหรือไม่ครับ

ที่มา - Facebook Engineering Blog

Get latest news from Blognone

Comments

By: ZeanPod
AndroidWindows
on 12 August 2014 - 23:26 #730825

โดยพิจารณาจากปัจจัยต่างๆ ของงาน เล่น >> เช่น