Gunicorn: multrocessing.cpu_count () أمر خطير في الحاويات

تم إنشاؤها على ٢ مايو ٢٠١٩  ·  4تعليقات  ·  مصدر: benoitc/gunicorn

https://github.com/benoitc/gunicorn/blob/ definitely33e0009b8b07d13117f71534eb28e8dc24c5d/docs/source/configure.rst#L67

نظرًا لموقع https://bugs.python.org/issue36054 ، فإن التوصية الواردة في هذه المستندات تعتبر خطيرة عند التشغيل داخل الحاوية. إذا تم تخصيص حاويتك (على سبيل المثال) نواة واحدة و 512 ميجابايت من ذاكرة الوصول العشوائي على جهاز به 64 مركزًا ، فإن multiprocessing.cpu_count() يعتقد أنه يحتوي على 64 مركزًا بدلاً من 1 فقط ، وينتهي بك الأمر إلى إنتاج 129 عاملاً. هذه طريقة أكثر من الحاوية لديها موارد لها ، وينتهي الأمر بالتسبب في حدوث أعطال في الذاكرة.

التعليق الأكثر فائدة

twosigmajab فكرة جيدة! رجاءا واصل :)

ال 4 كومينتر

مرحبا 😄! شكرا على الإخطار.

الافتراضي في Gunicorn هو عامل واحد ، حتى لو كان التوثيق يحتوي على مثال لاكتشاف الرقم. بالنظر إلى أنه من المحتمل أن يكون هذا إصلاحًا لخلل Python في النهاية ، لست متأكدًا من وجود أي شيء يجب أن نفعله هنا على وجه الخصوص. ومع ذلك ، فإن حفظه في اتجاه مجرى النهر في flask-gunicorn أمر منطقي للغاية.

إنه شيء يجب إصلاحه في Python وليس مشكلة هناك. تم إجراء التوثيق في الوقت الذي لم يكن عامل الإرساء موجودًا حتى ولكني أعتقد أنه لا يزال مفيدًا للمثال لأنه واضح جدًا. إغلاق القضية بعد ذلك.

إن إضافة سطر صغير واحد إلى المستندات ليقول ("لكن احذر من BPO-36054 في حالة استخدام الحاويات!") يمكن أن يوفر الكثير من المتاعب للمستخدمين خلال السنوات التي سيظلون فيها يستخدمون إصدارات Python التي لم يتم إصلاحها. إذا كنت لا تعارض دمج ذلك ، فسأرسل PR إذا لم يتغلب علي أحد.

twosigmajab فكرة جيدة! رجاءا واصل :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات