Dogslow

نرم افزار تصویر:
Dogslow
جزئیات نرم افزار:
نسخه: 0.9.5
ها تاریخ: 14 Apr 15
توسعه دهنده: Erik van Zijst
پروانه: رایگان
محبوبیت: 1

Rating: nan/5 (Total Votes: 0)

در Dogslow جنگو کلاس میان دیده بان که سیاهههای مربوط به tracebacks از درخواست آهسته است.
نصب و راه اندازی:
نصب dogslow:
تصویر در تصویر dogslow نصب
سپس اگر به لیست خود را از کلاس میان در فایل settings.py جنگو خود را اضافه کنید:
MIDDLEWARE_CLASSES = (
& nbsp؛ در 'dogslow.WatchdogMiddleware،
& nbsp؛ در ...
)
برای بهترین نتایج، آن را یکی از اولین میان است که اجرا می شود.
تنظیمات:
شما می توانید خواص پیکربندی زیر را در فایل settings.py خود را به لحن دیده بان استفاده کنید:
# دیده بان به طور پیش فرض فعال باشد، به طور موقت غیر فعال کردن، تنظیم به غلط:
DOGSLOW = واقعی
# محل سکونت که در آن دیده بان ذخیره فایل های ورود آن:
DOGSLOW_OUTPUT = '/ TMP "
درخواست # ورود بیشتر از 25 ثانیه:
DOGSLOW_TIMER = 25
# وقتی که هر دو مشخص شده، ایمیل های backtraces:
DOGSLOW_EMAIL_TO = 'errors@atlassian.com'
DOGSLOW_EMAIL_FROM = 'no-reply@atlassian.com'
طریقه استفاده:
هر درخواست HTTP ورودی می شود یک فاصله 25 دوم در دیده بان. اگر درخواست می کند که در آن زمان بازگشت نیست، دیده بان فعال و طول می کشد زیرچشمی نگاه کردن در پشته موضوع درخواست و backtrace (شامل تمام متغیرهای پشته محلی - سبک جنگو) می نویسد به یک فایل ورود به سیستم.
هر درخواست کند در یک فایل جداگانه است که به نظر می رسد مثل این عبور:
درخواست ارواح ره در: 16-05-2011 02:10:12 UTC
GET HTTP: // localhost را:؟ 8000 / تاخیر = 2
ID موضوع: 140539485042432
ID فرآیند: 18010
PID مرجع: 17،762
آغاز شده: 16-05-2011 2:10:10 UTC
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/management/commands/runserver.py", خط 107، در inner_run
& nbsp؛ در اجرا (self.addr، اعضای هیات (self.port)، کنترل، از IPv6 = self.use_ipv6)
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/servers/basehttp.py"، خط 696، در اجرا
& nbsp؛ در httpd.serve_forever ()
& nbsp؛ در فایل "/usr/lib/python2.7/SocketServer.py"، خط 227، در serve_forever
را لمس کنید و. self._handle_request_noblock ()
& nbsp؛ در فایل "/usr/lib/python2.7/SocketServer.py"، خط 284، در _handle_request_noblock
& nbsp؛ در self.process_request (درخواست، client_address)
& nbsp؛ در فایل "/usr/lib/python2.7/SocketServer.py"، خط 310، در process_request
& nbsp؛ در self.finish_request (درخواست، client_address)
& nbsp؛ در فایل "/usr/lib/python2.7/SocketServer.py"، خط 323، در finish_request
& nbsp؛ در self.RequestHandlerClass (درخواست، client_address، خود)
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/servers/basehttp.py"، خط 570، در __init__
& nbsp؛ در BaseHTTPRequestHandler .__ init انجام __ (خود، * استدلال، ** kwargs)
& nbsp؛ در فایل "/usr/lib/python2.7/SocketServer.py"، خط 639، در __init__
را لمس کنید و. self.handle ()
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/servers/basehttp.py"، خط 615، در دسته
& nbsp؛ در handler.run (self.server.get_app ())
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/servers/basehttp.py"، خط 283، در اجرا
& nbsp؛ در self.result = برنامه (self.environ، self.start_response)
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py"، خط 68، در __call__
& nbsp؛ در self.application بازگشت (محیط، start_response)
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/handlers/wsgi.py"، خط 273، در __call__
& nbsp؛ در پاسخ = self.get_response (درخواست)
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/handlers/base.py"، خط 111، در get_response
را لمس کنید و. پاسخ = پاسخ به تماس (درخواست، * callback_args، ** callback_kwargs)
& nbsp؛ در فایل "/home/erik/work/middleware/middleware/sleep/views.py"، خط 6، در خواب
را لمس کنید و. time.sleep (شناور (request.GET.get ('تاخیر'، 1)))
backtrace کامل با متغیرهای محلی:
& nbsp؛ در فایل "/home/erik/work/virtualenv/bit/lib/python2.7/site-packages/django/core/management/commands/runserver.py", خط 107، در inner_run
& nbsp؛ در اجرا (self.addr، اعضای هیات (self.port)، کنترل، از IPv6 = self.use_ipv6)
و nbsp؛ ... بارهای بیشتر ...
مثال بالا نشان می دهد که موضوع درخواست را در time.sleep () در زمان dogslow در زمان عکس فوری آن مسدود شده است.
درخواست که قبل از ایست dogslow بازگشت منقضی نمی تواند وارد نشده اید.
توجه داشته باشید که dogslow تنها طول می کشد زیرچشمی نگاه کردن در پشته موضوع است. این کار به درخواست وقفه، و یا تحت تاثیر قرار آن را در هر راه دیگر. با استفاده از dogslow است بنابراین امن برای استفاده در تولید.
هشدارهای
Dogslow با استفاده از چند رشته. این یک پس زمینه تک موضوع دسته وقفه دیده بان و tracebacks طول می کشد، به طوری که موضوعات درخواست اصلی قطع شود. این تا به برخی از عواقب.
multithreading و GIL
در سیپایتون، GIL (جهانی مترجم قفل) مانع از موضوعات متعدد از اجرای کد پایتون به طور همزمان. تنها زمانی که یک موضوع به صراحت را منتشر قفل آن در GIL، می تواند دومین موضوع اجرا شود.
انتشار GIL انجام شده است به طور خودکار هر زمان که یک برنامه پایتون می سازد مسدود کردن تماس های خارج از مترجم، به عنوان مثال هنگام انجام IO.
برای dogslow این بدان معنی است که آن را می توانید تنها قابل اعتماد رهگیری درخواست که آهسته هستند زیرا آنها انجام می دهند IO، خواستار خواب و یا مشغول انتظار برای به دست آوردن قفل خود.
در اغلب موارد این خوب است. از علل مهم درخواست کند جنگو پرس و جو پایگاه داده گران است. از آنجایی که این IO است، dogslow می توانید آن را خوب رهگیری. سناریو که در آن GIL سیپایتون را مشکل ساز است وقتی است که موضوع درخواست بازدید حلقه بی نهایت در کد پایتون (یا پایتون مشروع است که بسیار گران قیمت و مدت زمان طولانی برای اجرای طول می کشد)، هرگز آزاد GIL. حتی اگر شمارنده Watchdog dogslow را runnable تبدیل می کند، می تواند پشته وارد کنیم.
همکاری روال و Greenlets
Dogslow برای استفاده در پیکربندی کارگر همزمان در نظر گرفته شده. وب سرور استفاده می کند که موضوعات اختصاص داده شده (و یا، فرآیندهای کارگر اختصاصی تک رشته ای) به خدمت درخواست. ساخته شده در سرور wsgi جنگو می کند این، به عنوان نشانی Gunicorn در حالت پیش فرض همگام کارگر آن است.
هنگامی که در حال اجرا با یک "چارچوب همکاری روال" که در آن درخواست های متعدد به صورت همزمان توسط یک موضوع خدمت کرده است، backtraces ممکن است مزخرف

مورد نیاز:.

پایتون
جنگو

نرم افزار های دیگر از توسعه دهنده Erik van Zijst

interruptingcow
interruptingcow

14 Apr 15

نظرات به Dogslow

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!