เพิ่มความเร็ว Database Server ให้ถึงขีดสุด ด้วย Supermicro Server

ปัญหามาตรฐานปัญหาหนึ่งที่เหล่าผู้ดูแลระบบประสบพบอยู่ทุกวันนี้ ได้แก่ปัญหา “ความช้า” ไม่ว่าจะเป็น “Server ช้า”, “SAN Storage ช้า” และแน่นอนว่าปัญหาที่กระทบต่อระบบมากที่สุดปัญหาหนึ่งก็คือ “Database ช้า” ดังนั้นวันนี้เราจะมาดูกันนะครับว่าเราจะสามารถใช้ Supermicro จะมาช่วยแก้ปัญหานี้ได้ยังไง รวมถึงจะทำให้ Supermicro กลายเป็น Database Server ที่แรงที่สุดได้ยังไงกันบ้าง

Database ช้านั้นเป็นปัญหาที่มีสาเหตุหลากหลาย ไม่ว่าจะเป็น CPU เต็ม หรือ RAM เต็ม แต่สองสาเหตุนี้ยังพอจะแก้ได้ไม่ยาก เนื่องจากปัจจุบันการพัฒนา CPU และ RAM เองก็ไปไกลมากแล้ว ไม่ว่าจะเป็น CPU Intel Xeon ตัวล่าสุด E7-8800 ที่สามารถติดตั้งได้สูงสุดถึง 10 ชุด, 80 Core, 160 Thread และรองรับหน่วยความจำสูงถึง 2,00oGB หรือ 2TB เลยทีเดียว อีกทั้งการที่ CPU, RAM เพิ่มขึ้นนั้น ยังพอจะแก้ได้จากการสังเกตพฤติกรรมการทำงานของ Database และยัง Optimize การ Query ข้อมูลได้อยู่

ในขณะที่ตัวปัญหาจริงๆ คือปัญหา IO เต็มครับ เท่าที่พบเห็นส่วนมากปัญหานี้มักจะเกิดกับระบบฐานข้อมูลที่ยังไม่ได้ Optimize วิธีการเก็บข้อมูล และมีผู้ใช้งานเป็นจำนวนมาก โดยการเพิ่มทรัพยากรทางด้าน Hard Disk ให้รองรับกับจำนวนผู้ใช้งานในหลายๆ ครั้งเองก็เป็นเรื่องที่เกิดขึ้นได้ยากกว่าการเพิ่ม CPU หรือ RAM อยู่มาก

วิธีมาตรฐานที่ SI มักจะแนะนำกันก็คือ “เปลี่ยนจาก Standalone Server ไปใช้ SAN” แทน ซึ่งวิธีนี้ก็ถือว่าเป็นวิธีที่ถูกต้องวิธีหนึ่งครับ แต่…

  1. บางครั้งงบประมาณในการแก้ปัญหา อาจไม่เพียงพอซื้อ SAN ที่มี Disk จำนวนมากพอที่จะแก้ไขปัญหาได้ หรือ…
  2. บางครั้งปัญหานี้เกิดขึ้นบน Environment ที่ใช้ SAN Storage อยู่แล้ว

Supermicro ในฐานะของผู้นำนวัตกรรมทางด้าน Server เอง ก็มีทางออกให้สำหรับทั้ง 2 กรณีครับ

แก้ไขปัญหา Database ช้า โดยยังไม่ต้องลงทุนซื้อ SAN Storage

Supermicro มีความอิสระในการเลือกใช้ Hardware ค่อนข้างสูง ดังนั้นเราสามารถสั่ง Supermicro Server ที่ทำการ Optimize เรื่อง IO มาโดยเฉพาะได้ ด้วยการติดตั้ง Hardware เฉพาะทางต่างๆ เข้าไปครับ

Server Storage

ทางเลือกหนึ่งในกรณีนี้ คือการเลือกใช้ “Storage Server” ที่ใช้ High End RAID Controller มี Cache สูงถึง 1GB มาใช้งานร่วมกับ SAS Drives จำนวนตั้งแต่ 8 ถึง 72 ชุดบนเซิฟเวอร์เพียงชุดเดียว โดยไม่ต้องลงทุนกับ SAN Storage เพิ่มเติมเลย ทำให้ประหยัดค่าใช้จ่ายทางด้าน Storage Chassis ไปได้มาก และมาเพิ่มจำนวน Disk เพื่อเพิ่มประสิทธิภาพของระบบได้ครับ ซึงตัวเลขประสิทธิภาพอาจเป็นได้ตั้งแต่ 10,000 IOPS (IO per second) จนถึงหลายหมื่นได้ในกรณีนี้ครับ

อีกทางเลือกหนึ่งคือการนำเทคโนโลยี “Storage Tiering” มาใช้บน Supermicro ครับ โดยให้ High End Raid Controller ใช้ Solid State Drive 1-2 ชุดมาทำหน้าที่เป็น Cache อีกชั้นหนึ่งให้กับ SAS/SATA Drive ที่เหลือตั้งแต่ 8 – 72 ชุด ทำให้เมื่อมีการเรียกอ่านข้อมูลใดซ้ำบ่อยๆ แล้ว Solid State จะทำการ Cache ข้อมูลเหล่านั้นให้ และทำให้เราอ่านข้อมูลนั้นๆ ได้ด้วยความเร็วของ Solid State ครับ ซึ่ง Solid State เพียงลูกเดียวก็มีประสิทธิภาพสูงถึง 80,000 IOPS แล้ว แต่เมื่อใช้รวมกับ Disk ทั่วๆ ไป ก็อาจทำให้ค่าเฉลี่ยรวมของทั้งระบบลดลงมาพอสมควร ซึ่งการลงทุนโดยรวมก็ยังถือว่าถูกกว่าการใช้ SAN Storage ที่ใส่ Disk จำนวนมากให้เร็วเทียบเคียงกับ Solid State มาทำ Tiering อยู่ดีครับ

แก้ไขปัญหา Database ช้า แม้ว่าจะใช้ SAN Storage แล้ว

ในกรณีนี้แปลว่าระบบมีการใช้ IO สูงมากจริงๆ เนื่องจาก SAN Storage ยี่ห้อดังๆ ที่พบเจอได้บ่อยๆ ในตลาด มักจะมีค่าเฉลี่ย IOPS อยู่ที่ 10,000 IOPS จนถึง 40,000 IOPS ครับ ดังนั้นถ้าหากเราต้องการ IOPS ให้สูงกว่านี้โดยไม่ต้องขยาย SAN Storage เพิ่มแล้ว Supermicro ก็ยังมีให้อีก 2 ทางเลือกครับ

ทางเลือกแรกคือการใช้ “Solid State Storage Server” วิธีการนี้คือใช้ RAID Controller เฉพาะทางร่วมกับ Supermicro ให้ใช้ Solid State เป็น Drives ทั้งหมด และไม่เกิดการคอขวดขึ้นบน RAID Controller เมื่อมีการ Access Data บน Solid State เยอะๆ วิธีการนี้อาจทำให้เราได้พื้นที่สำหรับ Database ไม่เยอะมากนัก แต่รับรองว่าประสิทธิภาพสูงขึ้นเป็นหลัก 100,000 IOPS อย่างแน่นอน

ส่วนทางเลือกที่สอง จะแก้ปัญหาพื้นที่ไม่พอในกรณีแรกไปด้วย คือการใช้ “Supermicro Fusion-io Solutions” ครับ ด้วยการใช้การ์ด Fusion-io ที่ทำให้ผลการทดสอบร่วมกับ Supermicro มี IOPS สูงถึง 1,400,000 IOPS มาแล้ว ยังมีพื้นที่ให้เราใช้ถึง 5TB ด้วยกัน ซึ่ง Database ส่วนมากก็ใช้พื้นที่ไม่ถึงเท่านี้กันหรอกครับ และ SAN รุ่นที่จะทำประสิทธิภาพระดับนี้ได้ ส่วนใหญ่หลักราคาเป็นสิบล้านทั้งนั้นครับ แต่การใช้ Supermicro ราคาจะถูกกว่านั้นมาก 😀

โดยสรุปจริงๆ แล้วอยากให้ทุกท่านที่เจอปัญหา Database ช้า พยายามตรวจสอบต้นตอของปัญหา และแก้ไขเท่าที่จะแก้ได้ไปก่อนที่จะเลือกใช้การเปลี่ยน Hardware ครับ เพราะสุดท้ายแล้วถ้าปัญหาไม่ได้ถูกแก้ แต่แค่บรรเทาไปด้วย Hardware ที่ดีขึ้น ซักวันปัญหานั้นๆ ก็จะกลับมาหาเราอยู่ดีครับ แต่สำหรับบางกรณีที่ Hardware ไม่ไหวแล้วจริงๆ ก็ต้องรีบรู้ตัวแต่เนิ่นๆ และรีบจัดหาอุปกรณ์มาเปลี่ยนให้เร็วที่สุด ก่อนที่ข้อมูลจะเกิดความเสียหายครับ

 

สำหรับวันนี้ก็ขอจบบทความนี้ลงเพียงเท่านี้ครับ พบกันใหม่คราวหน้า สวัสดีครับ

———-

บทความโดย Throughwave Thailand

ท่านสามารถติดตามข่าวสารเพิ่มเติมได้ที่ https://www.throughwave.co.th