Gunicorn: زيادة الذاكرة بعد تشغيل الخدمة لفترة طويلة

تم إنشاؤها على ١٠ أكتوبر ٢٠١٨  ·  3تعليقات  ·  مصدر: benoitc/gunicorn

أهلا :
أستخدم flask + gunicorn لتقديم خدمة api. لأنني أرغب في مشاركة بيانات كبيرة بين معالجات العاملين ، لذلك أقوم بتهيئة البيانات في gunicorn.conf واستخدام "gunicorn -c gunicorn.conf" لإنهائها. سيتم إجراء أي بيانات في gunicorn.conf مرة واحدة فقط ، لذلك يشترك كل معالج عامل في بيانات كبيرة مشتركة. البيانات الضخمة في برنامجي جاهزة فقط ، بدون عملية كتابة. ولكن عندما أبدأ خدمتي وأعمل لفترة طويلة ، في وقت ما تزداد الذاكرة 1G فجأة ، أعتقد أنه قد يكون هناك بعض عمليات الكتابة في gunicorn بسبب آلية النسخ عند الكتابة للنظام. وكيف أشارك البيانات الضخمة بين معالجات العاملين؟ ما زلت في حيرة من أمري بسبب هذه المشكلة ، توقع ردكم !!! شكرا لك!

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

هذا متعلق بـ # 1640.

الطريقة الأخرى الوحيدة للتعامل مع هذا هي القيام بشيء يتجنب إدارة ذاكرة Python. ربما يمكن أن تساعد وحدة mmap .

ال 3 كومينتر

هذا متعلق بـ # 1640.

الطريقة الأخرى الوحيدة للتعامل مع هذا هي القيام بشيء يتجنب إدارة ذاكرة Python. ربما يمكن أن تساعد وحدة mmap .

شكرا لك!!! إنه مفيد للغاية!

أهلا:
بالمعلومات التي قدمتها لي ، أقوم بترقية python الخاص بي من 2.7 إلى 3.7 واستخدام gc.freeze () لتجنب بعض الكائنات التي يجمعها جامع القمامة. هذه المرة ، لا يبدو أن "الذاكرة تزداد بسرعة 1 غيغابايت فجأة" ، لكنها تتسبب في نمو الذاكرة ببطء باستخدام ذاكرة كل معالج فرعي زادت بمقدار 500 مليون + ، ثم توقف عن النمو. أعتقد أن gc.freeze () يعمل ويصنع مظهرًا مختلفًا للذاكرة. آمل أن يكون العمل الذي قمت به مفيدًا للآخرين. شكرا!

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