คำถามติดแท็ก unicorn

5
ต้องการเพิ่มปริมาณงาน nginx ให้กับซ็อกเก็ตยูนิกซ์อัปสตรีม - การปรับแต่งเคอร์เนลลินุกซ์หรือไม่?
ฉันกำลังเรียกใช้เซิร์ฟเวอร์ nginx ที่ทำหน้าที่เป็นพร็อกซีไปยังซ็อกเก็ตอัพสตรีมยูนิกซ์เช่นนี้ upstream app_server { server unix:/tmp/app.sock fail_timeout=0; } server { listen ###.###.###.###; server_name whatever.server; root /web/root; try_files $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } เซิร์ฟเวอร์แอปบางตัวจะดึงคำขอออก/tmp/app.sockเมื่อพร้อมใช้งาน เซิร์ฟเวอร์แอปที่ใช้งานเฉพาะที่นี่คือยูนิคอร์น แต่ฉันไม่คิดว่าเกี่ยวข้องกับคำถามนี้ ปัญหาคือดูเหมือนว่าผ่านการโหลดจำนวนหนึ่ง nginx ไม่สามารถรับการร้องขอผ่านซ็อกเก็ตในอัตราที่เร็วพอ ไม่ว่าฉันจะติดตั้งแอปเซิร์ฟเวอร์จำนวนเท่าใด ฉันได้รับข้อความเหล่านี้จำนวนมากในบันทึกข้อผิดพลาด nginx: connect() to …

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