Facebook ได้ออกมาเปิดเผยถึงปัญหาที่พบภายใน Data Center ที่เริ่มเติบโตขึ้นจน CPU ของ Intel พัฒนาตามไม่ทันต่อการเติบโต และเริ่มพบข้อจำกัดด้านพลังงานที่ต้องใช้ภายใน Data Center และได้ทำการแก้ไขปัญหาเหล่านี้ด้วยการร่วมออกแบบ CPU กับ Intel ออกมาเป็น Intel Xeon-D และออกแบบ Server Hardware ใหม่สำหรับให้บริการเป็น Web Server ได้อย่างมีประสิทธิภาพสูงสุด และดูแลได้อย่างง่ายดายที่สุดโดยเฉพาะ ซึ่งทางทีมงาน TechTalkThai ขอสรุปเนื้อหาเอาไว้ดังนี้
Web Server Workload เติบโตจนกลายเป็นปัญหา
ใน Cluster แต่ละแห่งของ Facebook นั้นจะประกอบไปด้วย Server มากกว่า 10,000 เครื่องที่ใช้ HHVM ที่รองรับภาษา Hack และ PHP เพื่อรับ Request จากผู้ใช้งานจำนวนมากในแต่ละวัน โดยมีประเด็นที่สำคัญคือ Latency ต้องต่ำ และมี Throughput ที่สูง
ด้วยความต้องการนี้ ทำให้ Facebook ต้องการ Server ที่มีเพียง CPU ที่สามารถประมวลผล Single-Thread และรองรับ Throughput จำนวนมากได้เพื่อให้สามารถรองรับ Concurrent Thread จำนวนมหาศาลได้ เพื่อให้การทำ Stateless Execution บน PHP เพื่อรับมือ Request ต่างๆ แบบ Parallel มีประสิทธิภาพสูงสุด
แต่ในการใช้งานจริงนั้น เนื่องจากโค้ดมีขนาดใหญ่ และแต่ละ Request นั้นมีการเข้าถึงข้อมูลจำนวนมหาศาล ก็เลยทำให้ Workload นี้เน้นไปที่ Memory-Bandwidth แทน ทำให้ระบบ Cache บน CPU ยิ่งทวีความสำคัญมากยิ่งขึ้นไปนั่นเอง
ก่อนหน้านี้ Facebook ใช้ CPU Intel Xeon E5 แบบ 2 Socket ที่มี QPI ทำให้เกิดปัญหาในการใช้ NUMA และยากต่อการดูแลรักษา ในขณะที่มี Chipset อื่นๆ พ่วงมาด้วยมากมายทำให้เปลืองพลังงานมากขึ้น และทำให้ถึงแม้จะพยายามปรับแต่ง Hardware ยังไง Facebook ก็รู้สึกว่ากินพลังงานมากและไม่สามารถ Scale ระบบได้ดี
ด้วยเหตุนี้ Facebook จึงตัดสินใจที่จะรื้อ Hardware สำหรับ Web Server ทั้งหมดนั่นเอง
ร่วมออกแบบ CPU Xeon-D กับทาง Intel
3 ปีที่แล้ว Facebook ได้ร่วมมือกับ Intel เพื่อสร้าง CPU ใหม่ภายใต้ชื่อ Broadwell-D โดยอ้างอิง Requirement ต่างๆ ของ Facebook เป็นหลัก ด้วยการตัด Feature ต่างๆ ออกจาก Intel Xeon ให้เหลือน้อยที่สุด, ถอด QPI Link ออก และปรับให้เป็น Single Socket แทน จนสุดท้ายก็กลายมาเป็น System-on-a-Chip (SOC) แทน ซึ่งลดพลังงานและความร้อนที่เกิดขึ้นใน Data Center ได้เป็นอย่างดี และเกิดมาเป็น Intel Xeon-D นั่นเอง ซึ่งถือว่าไม่ง่ายเหมือนกันกับการให้ Intel ช่วยแตกไลน์ CPU ใหม่เพื่อการนี้โดยเฉพาะแบบนี้
จากเดิมนั้น Facebook จำกัดพลังงานต่อ Rack เอาไว้ที่ 11kW ซึ่ง Intel Xeon E5 รุ่นก่อนๆ ที่ใช้พลังงานมากถึง 120W นั้นสามารถทำงานพร้อมๆ กันได้เพียง 60 CPU เท่านั้น ในขณะที่ Intel Xeon-D นี้ช่วยให้ Facebook รองรับได้ถึง 120 CPU ในพลังงานเท่าเดิม
แต่เพื่อให้พื้นที่ของตู้ Rack มีความหนาแน่นสูงสุด เพื่อประหยัดค่าใช้จ่ายให้มากที่สุด Facebook ก็ต้องพยายามทำให้ Intel Xeon-D ที่เป็นแบบ Single Socket นี้สามารถใช้งานได้เป็นจำนวนมากต่อพื้นที่ Rack 1U
กำเนิด Mono Lake และ Yosemite เพิ่มความหนาแน่นต่อ Rack

Facebook ได้ออกแบบ Mono Lake ซึ่งเป็น Building Block ของระบบ SOC ที่มี Intel Xeon-D เป็นหัวใจหลัก โดยรอรับการติดตั้ง FPGA และ GPU เพิ่มเติมได้ โดย Mono Lake แต่ละตัวนี้จะมี RAM 32GB และมี Storage 128GB (สำหรับ Boot และเก็บข้อมูล Log)

Mono Lake จำนวน 4 ชุดจะถูกติดตั้งลงไปบน Yosemite เพื่อเชื่อมต่อ Network Interface ผ่านทาง PCI-e รวมกัน และจ่ายออกไปเป็น 2x 25Gbps โดยทำ Port Aggregation เชื่อมต่อไปยัง Top-of-Rack Switch นั่นเอง
ด้วยวิธีการนี้ทำให้แต่ละ CPU สามารถทำงานร่วมกันได้อย่างรวดเร็วผ่านระบบเครือข่าย และแก้ไขปัญหาเรื่อง NUMA ได้อย่างง่ายดาย ทำให้การเปลี่ยนหรือลดจำนวน Mono Lake สามารถทำได้อย่างอิสระ
บทสรุป: ประหยัดพลังงานลงได้มหาศาล แต่ยังต้องพัฒนาต่อไป
ด้วยวิธีการนี้ทำให้ Facebook สามารถรองรับการเติบโตของ Data Center ได้โดยที่ประสิทธิภาพ Performance/Watt ดีขึ้นแบบก้าวกระโดด อีกทั้งยังพบว่าระบบที่มี CPU เดียวนั้นทำงานได้ดีกว่า Dual CPU เป็นอย่างมากอีกด้วย
สำหรับปัญหาที่พบใน Intel Xeon-D ตอนนี้ก็คือการรองรับ RAM ได้น้อยไปหน่อย แต่ก็ยังเพียงพอต่อการใช้งานในปัจจุบัน ซึ่งทั้งขนาดของ RAM และ Bandwidth นี้ก็ยังเป็นสิ่งที่ต้องปรับปรุงต่อไป
นอกจากนี้ LLC Cache Partitioning ก็เป็นอีกหนึ่งความสามารถที่ Facebook พัฒนาร่วมกับ Intel อย่างใกล้ชิด เพื่อแบ่ง Partition เฉพาะสำหรับ Instruction ที่ถูกเรียกใช้บ่อยๆ ไปเลย ก็ทำให้ลดปริมาณการใช้ Memory Bandwidth ลงไปได้และช่วยเพิ่มประสิทธิภาพของระบบ
Facebook ยังได้บอกอีกว่าทั้งหมดนี้เป็นเพียง 1% ของสิ่งที่ต้องการจะทำ ดังนั้นหลังจากนี้ก็จะมีการพัฒนาสิ่งใหม่ๆ ออกมาอย่างต่อเนื่องแน่นอน