DEV Community

CodeBanBan
CodeBanBan

Posted on • Edited on

บันทึกการปรับ Performance ให้ระบบ Code Name: Peppermint #1 Upgrade Server Spec

เกี่ยวกับ Project Code Name: Peppermint

  • โปรเจครัน production มาได้ประมาณ 5 ปี
  • เริ่มจากที่คิดกันว่าจะเป็น product เล็กๆ คงมี User ใช้งานไม่เท่าไหร่
  • ทีมเริ่มต้นมี 4 คน ใช้เวลาประมาณ 6 เดือน ปล่อย release แรก
  • อีก 6 เดือนถัดมา เป็นการปรับแต่งตาม feedback ลูกค้า
  • หลังจาก project เริ่มนิ่ง ทีมปรับเหลือคนมาดูแล แค่ 1 - 2 คน
  • ด้วยความที่ต้องการเร่งให้ release เร็วที่สุด และประเมินแล้วว่ามี user ไม่น่าจะเยอะ ทางทีมเลยเลือกที่จะเขียนโดยไม่ได้คำนึงถึง performance ของระบบ เช่น การวนลูป Query Data
  • ช่วงแรก ก็ทำงานได้เร็วปกติ
  • แต่ช่วง 2 ปีหลัง เริ่มมีลูกค้าสนใจมาใช้งานเพ่ิมขึ้นต่อเนื่อง

จนกระทั้งช่วงปีใหม่ ของปี 2023

  • ระบบเริ่มทำงานได้ช้ามาก เนื่องจากมี user เพิ่มขึ้น
  • ทางทีมจึงทำการปรับ performance เบื้องต้น คือ optimize SQL บางคำสั่ง และทำ Index ให้กับ Table ที่ยังไม่ได้ทำไว้
  • ผลลัพธ์ออกมาได้ผล คือ ค่อนข้างพอไหว
  • แต่เนื่องจากยังมี product และ feature อื่นอยู่ในคิว ค่อนข้างเยอะ
  • ทางทีมจึงตัดสินใจว่า ปล่อยไปก่อน น่าจะรับไหวได้อีกสักปี

June 2023

  • ช่วงพีคของวัน ระบบอืดหนักมาก user บางคน ไม่สามารถทำรายการได้เลย
  • ทางคนที่ช่วยดู server แจ้งว่า CPU average usage อยู่ที่ 95%++
  • สรุปการแก้ไขเบื้องต้น คือ Upgrade เครื่องโดยเพิ่ม CPU และ Ram เข้าไปก่อน
  • ผลการแก้ไข ช่วยให้ CPU ลดลงมาอยู่ที่ประมาณ 45%
  • ทางทีมจึงเริ่มต้องลงมาปรับ performance อย่างจริงๆจัง เนื่องจากปริมาณ user ที่เพิ่มขึ้นต่อเนื่อง และมีตัวแทนมาเอา Product ไปขายแบบ white label

Image description

จากรูปจะเห็นว่า CPU ลดลงมาอย่างชัดเจน

Top comments (0)