Archive for January 2014

Server soccersuck ทำงานยังไง

เพื่อนๆหลายท่านที่เล่น soccersuck คงเคยมีข้อสงสัยกันว่าเซิร์ฟเวอร์ soccersuck ทำงานยังไง
ถ้าใครเคยใช้ Appserv หลักการก็คล้ายๆกันครับ เพียงแต่เราไม่สามารถรับโหลดขนาด soccersuck นี้ได้ด้วยเครื่องเพียงเครื่องเดียว
ตอนนี้เราใช้เครื่องเกือบ 10 เครื่อง เซิร์ฟเวอร์ที่ใช้ก็ขนาดไม่ใหญ่มาก (เน้นความคุ้มค่า:P) ออกแบบเป็นโมดูล โดยมีเครื่องให้บริการหลักคือ

1. Webserver มีอยู่ 3 เครื่อง สำรอง 1 เครื่อง สมัยก่อนโน้น (เกือบสิบปี) ก็ใช้เครื่องเซิร์ฟเวอร์ 1 เครื่องเป็นทั้ง Webserver, Database พอรับไม่ไหวก็ต้องขยาย เพิ่มเครื่องสลับหน้าที่ ตอนนี้น่าจะเป็นรุ่นที่ 5 แล้ว เว็บเซิร์ฟเวอร์ก็ใช้โปรแกรมยอดฮิต Apache + PHP (compile เอง เพื่อรองรับฟีเจอร์ต่างๆ) จูนให้เหมาะสมกับลักษณะงาน ทรัพยากรเครื่อง ข้อมูลในเซิร์ฟเวอร์จะ Sync กันเอง ถ้าตายไปก็จะกระจายงานไปโหลดเอาเครื่องอื่นแทน
2. Database server ชื่อก็บอกแล้วครับ ใช้เก็บฐานข้อมูล ก็ใช้โปรแกรมที่นิยมแพร่หลาย ก็คงไม่พ้น MySQL นี่แหล่ะครับ ปรับตั้งค่าให้เหมาะสมกับเครื่อง Optimize data ให้เหมาะสมกับงานเว็บ
3. Reverse proxy ตะก่อนก็ไม่มีเครื่องนี้ครับ เราก็ใช้ DNS load balance ธรรมดาๆ แต่พอเครื่องเริ่มเยอะ มันบริหารจัดการยากครับ เกิดเครื่องไหนเจ๊งไปหายไปต้องไปแก้ DNS เพื่อตัดเครื่องนั้นออก ต่อมาจึงใช้ระบบ reverse proxy เข้ามา นอกจากจะเช็คและส่งงานไปยัง webserver แล้วยังช่วยประหยัดทรัพยากรในเครื่อง webserver ด้วย คือข้อมูลที่เป็น static (html,jpeg,gif) จะให้บริการจากเครื่องนี้เลยแทน webserver ที่รัน Apache ซึ่งกินทรัพยากรเยอะกว่ามาก
นอกจากนั้นก็เป็นเครื่องสำหรับคุยกับเว็บย่อยๆ สำหรับเมล์ สำหรับ monitor ต่างๆนาๆ
หัวใจหลักของงานคือการจูนครับ ในขณะที่เราให้บริการคนเป็นพันเป็นหมื่นคนพร้อมๆกัน การทำอะไรเอ๋อๆ ล่าช้านิดเดียวนั่นหมายถึงคูณด้วยพันหรือหมื่น
(ภาพ Bandwidth ล่าสุด เมื่อคืนที่ 1 มค. นี้)
Bandwidth สูงสุดสำหรับ soccersuck คือประมาณ 600-700 Mbps ตะก่อนน่าจะเป็นไซต์ที่ใช้ phpBB ติดอันดับโลก (เคยใช้ topic_id ซะเต็ม Integer มาแล้ว) ช่วงนี้เรามีการปรับเปลี่ยนเว็บบอร์ดเวอร์ชั่นใหม่ เพิ่มลูกเล่นต่างๆ เรียกได้ว่ายกเครื่องใหม่กันเลย คงต้องมีช่วงการปรับจูน อาจจะมีบางช่วงที่มีติดๆขัดๆงึกๆงักๆบ้าง ก็ขออภัยไว้ล่วงหน้า อย่าเพิ่งหนีเราไปที่อื่นซะก่อนนะครัชชชช