พระเจ้าช่วย!


ช่วงหลายวันนี้ผมใช้ "สิ่งศักดิ์สิทธิ์" ในการดูแลเครื่องแม่ข่ายครับ ปรากฎว่าได้ผลดีมาก แต่เรื่องนี้เล่ายาวครับ

ที่จริงแล้ว Ruby on Rails นี่เป็น framework ที่ไม่ได้สุดยอดมากมายอะไรนักครับ จากประสบการณ์ในการใช้งานมาทั้งหมดในหนึ่งปีนี้ ผมว่า framework ทำเองก่อนหน้านี้ที่ทำด้วย Python เผลอๆ จะทรหดอดทนกว่าด้วยซ้ำ

สาหตุที่ผมบอกว่าทนกว่าเพราะ framework แบบ "บ้านๆ" นั้นทำงานผ่าน mod_python ซึ่งมี Apache ควบคุมไว้อีกทีหนึ่ง ดังนั้นถ้ามีปัญหา crash ขึ้นมา Apache ยุคใหม่สดใสก็จะ spawn ขึ้นมาใหม่ให้

แต่ Ruby on Rails ไม่เป็นเช่นนั้น เพราะตอนนี้ web server ที่ใช้ทำงาน Rails application ที่แนะนำกันคือ Mongrel ซึ่งก็ดี "ก็ดี" ในที่นี้คือเรียก Rails application ทำงานได้ดี แต่เวลามีปัญหา crash ขึ้นมา เจ้า Mongrel มันไม่พยายาม spawn ขึ้นมาใหม่แฮะ บางครั้งมันก็หายไปเฉยๆ เลย

เรื่องนี้ต้องใช้ "พระเจ้า" ช่วย

ผมจึงใช้ god (http://god.rubyforge.org/) มาควบคุม mongrel processes ซึ่งปรากฎว่าได้ผลดีมาก โดย god จะคอยตรวจสอบ Mongrel processes ว่ายังทำงานอยู่ดีอยู่หรือเปล่าตามช่วงเวลาที่เรากำหนดไว้ หาก god พบว่า Mongrel processes นิ่งไปนาน (แสดงว่ามีปัญหาอะไรบางอย่าง) ก็จะทำการฆ่าทิ้งแล้วสร้างขึ้นมาใหม่

เรื่องนี้เป็นเรื่องที่ดีมาก ทำให้ระบบโดยรวม stable ขึ้นเยอะ เพราะได้มี Mongrel processes ที่ fresh จริงๆ ทำงาน

แต่อย่างไรก็ตาม ถ้าถามผมลึกๆ แล้ว ผมเริ่มไม่ happy กับ solution ที่ใช้อยู่ในปัจจุบันเท่าไหร่แล้วครับ เพราะการที่ต้องใช้ software (god) มาควบคุม software (Mongrel) ที่ควบคุม software (Rails) เพื่อช่วยทำงานให้แก่ software (Apache) นี่มันซับซ้อนเกินความจำเป็น

เป็น solution ที่ทำให้ KnowledgeVolution ที่เราพัฒนานี้นำไปติดตั้งในหน่วยงานต่างๆ ยากขึ้น

การทำอย่างนี้เหมาะในการทำเว็บไซต์ที่ configure ได้อย่างใจไม่ต้องกังวลอะไรทั้งนั้น เพราะไม่ต้องให้ใครไปติดตั้งเหมือนกับเรา นั่นคือถ้าเราทำแค่ GotoKnow.org อย่างเดียวนั้นไม่มีปัญหาเลย แต่การทำอย่างนี้เป็นเรื่องไม่ดีสำหรับสิ่งที่เรากำลังทำอยู่เป็นหลัก คือพัฒนาซอฟต์แวร์ KnowledgeVolution เพื่อให้สามารถนำไปติดตั้งภายในองค์กรต่างๆ ได้โดยง่าย

เอาเถอะ ลงเรือ Rails แล้วก็ต้อง Rails กันต่อไป

คำสำคัญ (Tags): #god#ruby#rails#mongrel#process monitoring
หมายเลขบันทึก: 125103เขียนเมื่อ 4 กันยายน 2007 23:49 น. ()แก้ไขเมื่อ 11 กุมภาพันธ์ 2012 20:14 น. ()สัญญาอนุญาต:


ความเห็น (6)

พระเจ้าช่วย!  จริงๆ ด้วย ฮาา

god ผมว่าไม่น่าจะมีคนใช้มาก  เพราะเว็บทั่วๆไป traffic คงไม่หนักขนาดเท่า G2K :?

 

ช่วงสองสัปดาห์มานี้ traffic เราไม่หนักเท่าไหร่ครับ เราเจอ "Google งอน" (downgrade GotoKnow เพราะว่ามีอยู่ช่วงหนึ่งที่เข้ามาเก็บข้อมูลไม่ได้)

  • สวัสดีครับ อาจารย์ธวัชชัย
  • ส่งกำลังใจมาให้ครับ ผมว่าในที่สุดแล้วก็คงไม่เกินความสามารถของอาจารย์และทีมงานเก่ง ๆ ไปได้หรอกครับ สาธุ สาธุ จงสำเร็จ ๆ ๆ นะครับ
  • แวะมาให้กำลังใจคะอาจารย์
  • ตอนนี้ G2K ดีขึ้นมากคะ
  • ขอบพระคุณอาจารย์และทีมงานทุกๆท่านด้วยนะคะ

ขอขอบพระคุณอาจารย์ธวัชชัย...

  • แวะมาขอบคุณ 'god' ที่ช่วยให้ Go2know ก้าวไปอีกหลายก้าวครับ
  • ขอขอบพระคุณ
ในแง่การติดตั้ง kv
ถ้า vmware-player, server ยังฟรีอยู่
ผมว่า ถ้าทำเป็น virtual machine
ก็น่าจะช่วยลด แรงเสียดทานของการนำ
gotoknow ไปใช้ได้บ้าง
(เสียอย่างเดียว ว่า file มันใหญ่ไปหน่อย
ทำให้ distribution ยากขึ้น)

ส่วนเรื่อง performance 
ถ้าใช้ในหน่วยงาน 
ผมว่าระดับ virtual machine นี่
น่าจะรองรับไหวนะครับ

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