اولویت در برنامه زمانبندی وظایف ویندوز

هر کسی که کارها را در Windows Task Scheduler اجرا می‌کند، دیر یا زود با تفاوت‌های غیرقابل توضیح در زمان اجرا مواجه خواهد شد. یک اسکریپت PHP که در خط فرمان در ۵ دقیقه اجرا می‌شود، ناگهان هنگام اجرا از طریق Windows Task Scheduler بیست دقیقه طول می‌کشد. همان کاربر، همان مجوزها، همان کد - چهار برابر زمان اجرا. چه اتفاقی افتاده بود؟


پس از ساعت‌ها اشکال‌زدایی، جلسات نظارت بر فرآیندها و مقایسه‌های بی‌شمار پیکربندی، راه‌حل به طرز وحشتناکی ساده بود: Windows Task Scheduler به طور پیش‌فرض اولویت فرآیند پایین‌تری را تعیین می‌کند. مقدار پیش‌فرض برای وظایف در Task Scheduler برابر است با: 7 (زیر نرمال)، نه 4-6 (عادی) همانطور که انتظار می‌رفت. این تفاوت به ظاهر کوچک می‌تواند منجر به تخریب گسترده عملکرد در عملیات‌های I/O-intensive شود.

سطوح اولویت ویندوز با جزئیات عبارتند از::

ارزشاولویتشرح
0بی‌درنگبالاترین اولویت (احتیاط!)
1بالااولویت بالا
2-3بالاتر از حد نرمالدرباره عادی
4-6عادیاستاندارد برای فرآیندهای تعاملی
7پایین‌تر از حد نرمالپیش‌فرض در زمان‌بندی وظایف
8-9پایین‌تر از حد نرمالحتی پایین‌تر
10بیکارکمترین اولویت

مشکل اولویت در زمان‌بندی وظایف چندلایه است: وقتی یک وظیفه را اکسپورت می‌کنید و به XML آن نگاه می‌کنید، اغلب... خیر تنظیم اولویت. سپس ویندوز بی‌سروصدا از مقدار پیش‌فرض استفاده خواهد کرد. 7. رابط کاربری گرافیکی (GUI) این مقدار را هنگام خروجی گرفتن نمایش می‌دهد، اما به طور صریح در وظیفه ذخیره نمی‌شود. اولویت پایین‌تر نه تنها منجر به زمان کمتر CPU می‌شود، بلکه:

  • عملیات ورودی/خروجی دیسک با محدودیت
  • اولویت شبکه پایین‌تر
  • حافظه پنهان ضعیف سیستم فایل
  • تأخیر در دسترسی به پایگاه داده

حتی اگر از همان کاربر استفاده کنید و «اجرا با بالاترین امتیازات» را فعال کنید، این وظیفه در یک محیط ویندوز استیشن/دسکتاپ متفاوت با اولویت‌های متفاوت اجرا می‌شود. برای شناسایی مشکل، می‌توانید از PowerShell برای فهرست کردن تمام وظایف با اولویت‌های واقعی آنها استفاده کنید.:

38b7fa6c77dc344401485cd338ea4128

تقریباً تمام وظایف من با اولویت انجام شدند 7. اکنون ما به طور خاص اولویت چندین کار را به طور همزمان اصلاح می‌کنیم:

38b7fa6c77dc344401485cd338ea4128

پس از تنظیم اولویت 4 (معمولاً) اسکریپت PHP من دوباره در ۳۰۰ ثانیه مورد انتظار اجرا شد. اگر وظایف را با یک حساب کاربری خاص پیکربندی کرده‌اید، می‌توانید به راحتی این را در خط ۱۰ به شرح زیر نیز مشخص کنید.:

38b7fa6c77dc344401485cd338ea4128

بازگشت