ทำงานเร็วได้เพราะการ caching


เมื่อวานทางทีมงานได้เปิด GotoKnow ที่ใช้ KnowledgeVolution ปรากฎว่าเครื่องถล่มทลายเสียจนนิ่งสนิทต้องปิดเป็นการชั่วคราวอย่างที่ได้เห็นกันครับ

ทางเราก็ต้องถอยมาตั้งหลัก ปรากฎว่า Ruby on Rails ซึ่งเป็น framework ที่เราใช้พัฒนา KnowledgeVolution นั้น ถ้าไม่ได้ทำ caching ดีๆ แล้ว จะกินทรัพยากรระบบสูงมาก นึกดูนะครับ FastCGI แต่ละ instance จองหน่วยความจำไว้สัก 300-400 MB เมื่อตอบสนองต่อผู้ใช้จำนวนหนึ่ง ในขณะที่ระบบเก่าของเราที่พัฒนา framework เองด้วยภาษา Python นั้น กินแค่ 10-20 MB เท่านั้น ไม่รู้ว่าเป็นเพราะ framework เราขนาดเล็กกว่าเยอะ (เพราะซับซ้อนน้อยกว่า) หรือ Python interpreter ทำงานได้ดีกว่า Ruby interpreter ก็ไม่แน่ใจ

เมื่อการทำ caching เป็นสิ่งที่ต้องทำแล้ว พวกเราก็ก้มหน้าก้มตาทำส่วน caching กันใหญ่เพื่อให้ทันเปิดในวันต่อไป และก็ทำเสร็จด้วยความห่วงว่าเราปิดระบบมาหลายวันชักจะนานเกินไปแล้ว

ปรากฎว่าหลังจากทำส่วน caching แล้ว Ruby on Rails ก็ไม่ได้ทำให้ผิดหวัง ทำงานได้รวดเร็วสมชื่อเสียงจริงๆ อย่างไรก็ตาม แต่ละ FastCGI instance ก็ยังกินหน่วยความจำเยอะอยู่ เลยเริ่มสงสัยว่าเป็น algorithm อะไรบางอย่างภายใน Rails (หรือ Ruby?) หรือเปล่าที่จะจองหน่วยความจำไว้เพื่อใช้ซ้ำและจะปล่อยเมื่อจำเป็นเท่านั้น จะได้ไม่ต้องเสียเวลาจองหน่วยความจำอีก เรื่องนี้ก็ต้องศึกษากันต่อไป

อย่างไรก็ตาม FastCGI instance ที่เราต้อง run นั้นเราตั้งไว้แค่สูงสุดไม่เกิน 5 instances ก็เพียงพอต่อการรับผู้ใช้แล้ว ในขณะที่ระบบเก่าของเราแม้จะกินหน่วยความจำน้อยกว่าแต่ก็ต้อง run ไว้ประมาณ 15-20 instances ถึงจะรองรับได้ แต่ยังสรุปไม่ได้ว่า Ruby กินหน่วยความจำมากกว่าแต่ตอบสนองเร็วกว่า ส่วน Python นั้นกินหน่วยความจำน้อยกว่าแต่ตอบสนองช้ากว่า ก็คงต้องดูกันต่อไปครับ

KnowledgeVolution จะเปิดให้ download ไปติดตั้งในองค์กรได้ภายในไม่นานนี้ครับ ตอนนี้ขอรอดูอาการว่าไม่มี bug อื่นๆ หรืออะไรที่ critical ต้องแก้ไขก่อน

ตอนนี้ท่านที่จะนำ KnowledgeVolution ไปใช้ในองค์กรเตรียมเครื่องไว้ได้เลยครับ ไม่นานเกินรอแน่นอนครับ

หมายเลขบันทึก: 33216เขียนเมื่อ 7 มิถุนายน 2006 15:02 น. ()แก้ไขเมื่อ 11 กุมภาพันธ์ 2012 15:06 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท