@FordAntiTrust

หลักการทำ Web Server ที่ดี เอาไปใช้ประยุกต์กับ Server แบบอื่นๆได้

  1. ซึ่งโดยทั่วไปก็คือ บริหาร IO ดีๆ ใส่ RAM เยอะๆ
  2. CPU แรงๆ ไม่มีค่อยมีผลต่างกันมากมายเท่ากับ Resouce ที่มีให้ใช้ครับ นอกจากว่าเป็นการทำงานในลักษณะประมวลผลทางด้าน CGI มากๆ ควรให้ความสำคัญด้านนี้ด้วย แต่ไม่มากเท่า RAM และ CPU ในความเร็วใกล้เคียงกัน แทบจะไม่มีผลแตกต่างกันมาก (ช่วยได้ไม่ถึง 10%) เพราะงานหลักของ httpd เน้นการบริหาร resouce ไม่ได้เน้นการคำนวณคณิตศาสตร์ CPU จึงหนักไปทางบริหาร process ของ OS มากกว่า และถ้า CPU ยัง มี usage ไม่ถึง 100% (หรือใกล้เคียง) ก็แปลว่า มันยังทำงานไหวครับ เพราะการที่ CPU ทำงานมาก แสดงว่า ต้องคำนวณมาก แต่มีผลน้อยกว่า IO ทำงานหนักครับ
  3. RAM ควรมีอย่างต่ำ 512 MBขึ้นไป แต่ว่าผมแนะนำ ที่ 1 GB อยากให้ยอมลด CPU เพื่อแรม ว่างั้นเถอะ เพราะเราทำให้ขั้นตอนประมวลผลทำงานได้เร็วขึ้นข้อมูลไม่คับคั้งมากจนเกินไป พร้อมที่จะดึงข้อมูลที่ใช้บ่อยๆ ก็เก็บใน RAM มาใช้ได้เร็วกว่า HD มาก ทำให้ระบบโดยรวมเสถียร์มากขึ้น การทำระบบ SWAP ต่างๆ ไม่ควรเกิน กว่า 60% จาก ความจุแรมเพราะไม่เสถียรและเปลี่ยงพื้นที่ HD โดยไม่จำเป็น
  4. HD ควรเป็น Ultrawide SCSI 10000 rpm ขึ้นไป ควรใช้ SCSI ครับ คนทำงานเป็น admin ชอบ SCSI เพราะมันไม่ค่อยเกเร และไม่ค่อยมีปัญหา + ทนทาน + ตอบสนองเร็ว + เหมาะกับระบบ multi user ถ้ามีงบน้อย จะใช้ HD IDE ผมก็แนะนำให้ใช้ HD IDE 2 ตัวขึ้นไป สำหรับ กระจายงาน + backup กันเอง โดยทั่วไป ระบบที่เน้นความสเถียรภาพสูงๆ มักจะต้องทำ raid ด้วย เพราะข้อมูลสำคัญมากๆ พังไม่ได้เด็ดขาด
  5. Network Card ก็ควรใช้ของดีๆ โดยทั่วไป นิยมของดังๆ เช่น Intel, 3COM เอาแบบ 100 MBit ไปเลยครับ
  6. Apache ก็ลง mod เท่าที่จำเป็น เพราะจะได้ไม่อ้วนมาก เวลาแตก process เยอะๆ
  7. Optimized WebserServer เท่าที่จะทำได้เช่น ลง Zend Optimizer/Accerator , mod_gzip, phpa (Cache), etc
  8. หมั่น Upgrade Apache บ่อยๆ เพราะรุ่นใหม่ๆ มักจะทำงานและมี security ดีกว่ารุ่นก่าๆ
  9. อย่าลืมว่า mysql (database server) ก็กินแรงเครื่องค่อนข้างเยอะเหมือนกัน ถ้ามีงบพอ อาจจะแยกเป็น database server ต่างหาก ลงแต่ mysql อย่างเดียวไปเลย (spec เครื่องปานกลาง)
  10. mysql บางรุ่น มีปัญหา+bug เช่น connection เต็มบ่อย และไม่คืนให้ ต้อง reboot เครื่องบ่อย ดังนั้น ต้องหมั่น upgrade อีก
  11. บริหาร logs ไฟล์ ให้ดี โดยแยกให้เขียนลงคนละ mount volume หรือคนละ HD กัน เพราะลดการทำงานของ IO และ หมั่นลบ หรือ rotate log ไฟล์ เพราะถ้า logไฟล์โตมากๆ จะทำให้การอ่านเขียนช้าลงไปเยอะ ส่งผลต่อความเร็วโดยรวม ซึ่งส่งผลให้การทำงานหลักๆ ล่มได้ง่าย
  12. โดยหน้าที่ของ web admin/system admin คือ หมั่นศึกษา สังเกตุ และหาความรู้ในเรื่องที่เกี่ยวข้องอยู่เสมอ เพื่อให้ระบบทำงานได้เต็มประสิทธิภาพ และ มีปัญหาน้อยๆ
  13. ควร ติดตามข่าวสาร และ upgrade ระบบบ่อยๆ โดยเฉพาะปัญหา security
  14. email server ให้ระวังการโดนแอบใช้เป็น spam gateway และพยายามหลีกเลี่ยงการให้บริการ smtp แก่บุคคลภายนอก ซึ่งอาจทำได้ โดยการ lock ip หรือ ใช้การทำการตรวจสอบ password ก่อนส่ง
  15. กำหนด Firewalls ป้องกันการกระหน่ำ ping icmp /DDOS ซึ่งทำให้ระบบล่มได้

สาเหตุที่ webserver ทั่วไปๆ จะทำงานช้า อืด ไม่ได้ดังใจเจ้าของเวปทั้งหลาย ก็มีสาเหตุหลักๆ ไม่กี่อย่าง คือ

  1. webserver ตอบสนองไม่ทัน request process และ มี process ค้างในระบบมากมาย ทำให้ process ใหม่ๆ ที่ร้องขอเข้ามา ต้องรอเข้าคิว (ทำให้รู้สึกช้า) เพราะ server ระบายงานไม่ทัน
  • internet link ความเร็วต่ำ ระบาย bandwidth ได้น้อย จึงทำให้เกิดความคับคั่งของจราจรข้อมูล (รถติดนั่นแหละ) อันนี้เป็นปัญหาโลกแตก แก้ยาก และเปลืองเงินมาก นอกจากจะย้ายไปอยู่กับ data center ที่มี bandwidth มากๆ แทน
  • เวปเพจมีขนาดใหญ่ เนื่องจากภาพกราฟิกเยอะ ทำให้ต้องส่งข้อมูลจำนวนมหาศาลเมื่อมี process ร้องขอมากๆ จึงเป็นสาเหตุหนึ่งที่ทำให้ระบบตอบสนองได้ช้าา ทางแก้คือ ต้องลดๆ + บีบอัด กราฟิกกันหน่อย และการเขียนอ่าน IO มากๆ มีผลทำให้ harddisk ตอบสนองได้ช้า โดยเฉพาะการ write ดังนั้น ถ้า IO ไม่ตอบสนอง ได้ดีพอ ก็มีผลต่อความเร็วโดยรวม และ อายุการใช้งานก็สั้นลงด้วยครับ
  • อ้างอิงมาจาก : http://www.cgitop.com/phpBB2/viewtopic.php?t=602

    Exit mobile version