Fanboi Channel

Site Moderation 8

Last posted

Total of 1000 posts

30 Nameless Moderator Posted ID:0

[2018/12/03]
เว็บไซต์ไม่สามารถใช้งานได้เป็นระยะระหว่างวันที่ 2018/12/02 เวลา 9:30 จนถึงวันที่ 2018/12/03 เวลา 0:15
ซึ่งเป็นผลสืบเนื่องจากการย้ายเซิฟเวอร์จาก DigitalOcean ไปยัง Google Cloud

[Post-mortem]
1. การปรับปรุงใน >>23 มีการคาดการณ์ spec ของเซิฟเวอร์ผิดพลาด โดยใช้เซิฟเวอร์ประเภท f1-micro
ใน Google Cloud ซึ่งมี quota การใช้งานเพียง 0.5 CPU (shared core) และ RAM เพียง 0.6 GB
ซึ่งไม่สามารถตอบสนอง request ได้เร็วเพียงพอ จึงมีปัญหา 500 Service Unavailable ในช่วง 9:30 - 12:00

2. เวลาในเซิฟเวอร์ไม่ตรงกับเวลาจริง เนื่องจากทางเว็บฯ ในตอนแรกตั้งใจจะใช้ Clock Skew Daemon
ที่ Google Cloud ติดตั้งไว้ให้ แต่พบว่า Clock Skew Daemon ไม่สามารถปรับเวลาได้รวดเร็วพอ
โดยจะค่อยๆ ปรับเวลาวินาทีละ 5ms - 10ms ซึ่งนาฬิกาของเซิฟเวอร์ช้ากว่าเวลาจริงประมาณ 20 นาที
จะใช้เวลาในการปรับถึง 66 ชั่วโมง ทำให้ทางเว็บตัดสินใจเปลี่ยนไปใช้ OpenNTPD
ซึ่งเป็นโปรแกรมสำหรับปรับเวลาที่ใช้ดั้งเดิมในขณะที่เซิฟเวอร์ยังอยู่ที่ DigitalOcean

3. เว็บไซต์ฯ พยายามปรับ topology ของเซิฟเวอร์ให้สามารถรันได้อยู่ในงบประมาณ $50 ต่อเดือน
ในการปรับปรุงช่วง 12:00 ทางเว็บได้ปรับไปใช้เซิฟเวอร์ขนาด n1-standard-1 ซึ่งมี 1 CPU (dedicated core)
และ RAM 3.75 GB ซึ่งทำให้รายจ่ายในการรันเซิฟเวอร์สูงถึง $96.24 (บังคับจ่าย 3 ปี) ที่ toplogy เดิม
ซึ่งประกอบด้วย load balancer, database และ application server 3 ตัว

เพื่อเป็นการปรับปรุงให้เซิฟเวอร์สามารถรันได้อย่างราบลื่น และอยู่ในงบประมาณ $50 ต่อเดือน
เว็บไซต์ฯ ได้ทำการเปลี่ยนโปรแกรมสำหรับรันเว็บเซิฟเวอร์จาก Waitress ไปเป็น Gunicorn
เพื่อที่จะสามารถรันหลาย process ได้บน Port เดียว และทำการลด application server ลงเป็น 1 ตัว
โดยรัน Gunicorn เป็น 3 processes ซึ่งคาดว่าจะสามารถรับ traffic ได้ตามเดิม
(เนื่องจาก 1 CPU core ใน Google Cloud เป็น Skylake และไม่แชร์กับผู้อื่น)

อีกทั้งยังทำการลด load balancer ไปใช้ f1-micro หลังจากทำการ monitor ตลอดทั้งวัน
โดยพบว่า load balancer ใช้ resource ทั้ง CPU และ RAM น้อยมาก ทำให้คาดว่าน่าจะรันอยู่บน f1-micro ได้

โดยสรุปแล้ว เซิฟเวอร์ของ Fanboi Channel ในขณะนี้ มีโครงสร้างดังต่อไปนี้

1x f1-micro สำหรับ load balancer (Hitch และ Varnish) $4.70 ต่อเดือน ไม่ติดสัญญา
1x n1-standard-1 สำหรับ db (PostgreSQL และ Redis) $19.25 ต่อเดือน สัญญา 3 ปี
1x n1-standard-1 สำหรับ app (Gunicorn และ Celery) $19.25 ต่อเดือน สัญญา 3 ปี
รวมแล้ว $43.2 ต่อเดือน ซึ่งอยู่ในงบที่ตั้งไว้

Posts limit exceeded

Topic has reached maximum number of posts.

Please start a new topic.

Be Civil — "Be curious, not judgemental"

  • FAQs — คำถามที่ถามบ่อย (การใช้บอร์ด การแบน ฯลฯ)
  • Policy — เกณฑ์การใช้งานเว็บไซต์
  • Guidelines — ข้อแนะนำในการใช้งานเว็บไซต์
  • Deletion Request — แจ้งลบและเกณฑ์การลบข้อความ
  • Law Enforcement — แจ้งขอ IP address

All contents are responsibility of its posters.