เรากำลังเรียกใช้เว็บแอพ Ruby on Rails ในยูนิคอร์น แอปของเราไม่ได้เชื่อมโยงกับ CPU อย่างเคร่งครัด (เรามีระบบ Dual Xeon E5645 ที่มี 12 คอร์และค่าเฉลี่ยการโหลดสูงสุดอยู่ที่ประมาณ 6) เราเริ่มต้นด้วยคนงานยูนิคอร์น 40 คนในตอนแรก แต่การใช้งานหน่วยความจำเพิ่มขึ้นเมื่อเวลาผ่านไป ดังนั้นตอนนี้เราต้องลดจำนวนกระบวนการทำงาน ฉันคิดว่าสูตรมาตรฐาน (จำนวนคอร์ CPU + 1) ใช้กับยูนิคอร์นด้วย แต่เพื่อนร่วมงานของฉันพยายามโน้มน้าวให้ฉันฉันควรจองอินสแตนซ์ยูนิคอร์นต่อซีพียูมากขึ้นและระบุลิงก์นี้ แต่ฉันไม่แน่ใจว่าทำไมเราต้องใช้หน่วยความจำมากในกระบวนการยูนิคอร์นที่ไม่ได้ใช้งาน
คำถามของฉันคืออะไรเหตุผลที่มีมากกว่าหนึ่งตัวอย่างยูนิคอร์นต่อซีพียูคอร์? มันเป็นเพราะลักษณะทางสถาปัตยกรรมบางอย่างของยูนิคอร์นหรือไม่? ฉันทราบว่ากระบวนการ Unicorn ที่ยุ่งไม่สามารถยอมรับการเชื่อมต่อใหม่ (เราใช้ซ็อกเก็ตโดเมน UNIX เพื่อสื่อสารกับ Unicorn อินสแตนซ์ BTW) แต่ฉันคิดว่า Backlog ถูกนำมาใช้เพื่อแก้ไขปัญหานี้ เป็นไปได้ไหมที่จะเอาชนะยูนิคอร์นอินสแตนซ์ 2 ถึง 8 ตัวต่อกฎของ CPU ได้?