การย้ายเครื่องแม่ข่ายมาคราวนี้เป็นการย้ายเครื่องจากเครื่องช้ามายังเครื่องเร็วครับ และวันนี้ผมค้นพบอะไรบางอย่างซึ่งช่วย speed up การทำงานของ Ruby on Rails ขึ้น

อืมม.. ที่จริงที่ผ่านมาผมก็ค้นพบโน่นพบนี่มาตลอดเพื่อทำให้ GotoKnow.org ทำงานให้เร็วที่สุดเท่าที่เร็วได้นั่นละครับ แต่ไม่ได้มีโอกาสเขียนบันทึก เพราะระบบมันช้า การที่ผมไม่มาเขียนก็เป็นการลด load ระบบไปอีกหนึ่งคน (ฮา.. เป็นเหตุผล)

เครื่องก่อนหน้านี้เป็นเครื่องช้า ผมเลยเรียก FastCGI instance ของ KnowledgeVolution ทำงานพร้อมๆ กัน 10 ตัว ก็รองรับผู้ใช้ได้ เรียกว่ามีมือสิบมือมาสลับสับเปลี่ยนกันรองรับผู้ใช้พร้อมๆ กัน แต่เป็นมือสิบที่ทำงานช้า แต่อย่างน้อยผู้ใช้เมื่อเรียกใช้ ก็จะมีมือ "ว่าง" ต้อนรับการเรียกใช้นั้น

ที่จริงแล้วผมทดสอบมาจาก 4 ตัวก่อนและผมทดลองเพิ่มเรื่อยๆ ทีละสองตัว พบว่ายิ่งเพิ่ม "ความรู้สึก" ว่าระบบตอบสนองได้เร็วก็จะเพิ่มขึ้น แต่พอเพิ่มไปถึง 10 ตัวก็เห็นท่าว่าหน่วยความจำไม่พอ ถ้ามากกว่านี้ระบบจะใช้ swap memory ซึ่งจะทำให้ระบบช้าไปใหญ่

พอมาเป็นเครื่องเร็ว ผมก็เรียกให้ทำงาน 10 ตัวเหมือนเดิม ความเร็วก็ใช้ได้ แต่ปรากฎว่าเมื่อลองให้ทำงานเพียง 4 ตัวกลับทำงานได้เร็วกว่า สาเหตุก็คือมือทั้งสี่มือนี้ทำงานเสร็จเร็ว การที่มีน้อยการใช้ทรัพยากรระบบก็จะยิ่งมีประสิทธิภาพมากขึ้นก็จะยิ่งทำให้มือทั้งสี่นี้ทำงานได้เร็วขึ้นและเปิดโอกาสให้ระบบว่างมากขึ้นด้วย เพราะเป็นการลดงานให้แก่ระบบปฎิบัติการในการต้องคอยสลับงาน

สรุปว่า ถ้าหัวไวให้ทำงานแต่น้อย เพราะทำงานเสร็จเร็ว แต่ถ้าหัวช้าให้ทำงานพร้อมๆ กันเยอะๆ เพราะทำงานเสร็จช้าแต่งานก็จะเสร็จไปได้เรื่อยๆ

วิธีการนี้ใช้กับการพัฒนาระบบคอมพิวเตอร์ได้ แต่ผมสงสัยจริงว่าจะใช้กับการบริหารงานของบุคคลได้หรือเปล่านะ?