HeadlinesBriefing HeadlinesBriefing.com

كينو: خادم ويب راثور Ruby 4.0+

Hacker News •
×

كينو هو خادم ويب Ractor عالي الأداء لـ Ruby 4.0+. لا يمكن لخطوط Ruby تشغيل الكود بالتوازي، لذلك تقوم إعدادات الإنتاج بإنشاء عملية لكل نواة وتدفع مقابل كل نسخة في الذاكرة. يعمل كينو على تشغيل كودك على كل نواة في عملية صغيرة واحدة. يملك واجهة Rust (tokio + hyper) الشبكة؛ يعمل العمال Ractor المتوازيون على تطبيق Rack 3 الخاص بك، ويعمل وضع التراجع بالخطوط على كل شيء آخر، بما في ذلك Rails. سريع. على خادم حقيقي 8 نوى، يتفوق كل وضع من كينو بمقدار 1.5‑2× على مجموعة فروع Puma على نقاط النهاية الخفيفة للـ I/O. يحقق وضع Ractor أيضًا فوزًا على CPU النقي، بنسبة 30%+. المقاييس أدناه. جزء من الذاكرة. تقريبًا 7× على تطبيق Ractor البسيط، و تقريبًا 4× أقل ذاكرة مقارنةً بملف فروع Puma الذي يخدم Rails في وضع التراجع بالخطوط. متوازي بدون استنساخ.

يعمل وضع Ractor على تشغيل عمل CPU أسرع أكثر من 5× من وضع الخيوط المرتبط بـ GVL الخاص بـ كينو نفسه، في نفس العملية الصغيرة. البنية التحتية للإنتاج تشمل: تصريف لطيف، إشراف على الأعطال وإعادة التشغيل، قوائم انتظار محدودة مع ضغط 503، مهلات الطلب، مدخلات معززة (slowloris ومواعيد انتهاء handshake TLS، حدود الاتصال وحجم الجسم)، خطاف on_error لتتبع الأخطاء الخاص بك، TLS (rustls)، إحصاءات حية، وصول غير متزامن وتسجيل التطبيق. يخبرك لماذا.

CLI وDSL التكويني لـ كينو يشبهان Puma؛ إذا كان بإمكانك تشغيل Puma، يمكنك تشغيل كينو.

المصدر: Hacker News · لخّصه HeadlinesBriefing