التحقيق في عملية بيثون لمعرفة ما يأكل وحدة المعالجة المركزية

StackOverflow https://stackoverflow.com/questions/760039

سؤال

لدي عملية بيثون (Webapp WebApp) تستخدم باستمرار 10-30٪ من وحدة المعالجة المركزية. سأستطيع تحسين / ضبط التسجيل للحصول على بعض نظرة ثاقبة ما يحدث، ولكن حتى ذلك الحين، هل هناك أي أدوات / تقنيات تسمح لمعرفة ما هي عملية الثعبان التي تقوم بها، كم وكيف المواضيع المزدحمة التي لديها الخ؟

تحديث:

  • سجل الوصول المكون الذي يوضح أنه لا توجد طلبات مستمرة، و WebApp هو مجرد الخمول
  • لا تشير إلى التوصيل في Paste.Profile في سلسلة الوسيطة نظرا لعدم وجود طلبات، يجب أن يحدث النشاط إما في خيوط WebApp's Webarner أو خادم الويب
  • تشغيل الأقارب مثل هذا: "بيثون -M CProfile - outfile / USR / BIN / PARASE SERVEN SERV.INI" وتبين نتائج الفحص أن معظم الوقت ينفق في "posix.waitpid". يعمل Paster WebApp في Subprocess، لا يتم التقاط نشاط Subprocess بواسطة Profiler
  • تبحث في؛ القرصنة أمر "خدمة" "خدمة" بحيث يتم عرض procirocesses الفرعية

تحديث آخر:

بعد الكثير من العبث، التمسك بالتعريف في أماكن مختلفة والتعرف على دواخل المعالجة، اكتشفت أن حمولة وحدة المعالجة المركزية المستمرة يذهب بعيدا إذا بدأ التطبيق دون المعلمة "- التحميل" (يخبر هذه العلامة عن صورة لإعادة تشغيل نفسها إذا تغير التعليمات البرمجية، مفيد في التنمية)، وهو ما يرام في بيئة الإنتاج.

هل كانت مفيدة؟

المحلول

التنميط قد تساعدك على تعلم بعض ما تفعله. إذا قمت بفرز الإخراج عن طريق "الوقت"، سترى الوظائف التي تقوم بتصنيع وقت وحدة المعالجة المركزية، والتي يجب أن تعطيك بعض التلميحات الجيدة.

نصائح أخرى

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

يمكنك تغيير الفاصل الزمني لإعادة التحميل مع خيار - Releload-Invalion، سيؤدي ذلك إلى تقليل استخدام وحدة المعالجة المركزية عند استخدام - التحميل لأنه سيجقق أقل في كثير من الأحيان.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top