الأولوية في جدولة المهام في Windows

أي شخص يُشغّل مهامًا في مُجدول مهام ويندوز سيواجه عاجلًا أم آجلًا اختلافات غير مُفسّرة في وقت التشغيل. نص PHP برمجي يعمل في 5 دقائق على سطر الأوامر، يستغرق فجأة 20 دقيقة عند تنفيذه عبر مُجدول مهام ويندوز. نفس المستخدم، نفس الصلاحيات، نفس الكود - أربعة أضعاف وقت التنفيذ. ماذا كان يحدث؟


بعد ساعات من تصحيح الأخطاء، وجلسات مراقبة العملية، ومقارنات لا تُحصى للتكوينات، كان الحل بسيطًا للغاية: يُحدد مُجدول مهام Windows أولوية عملية أقل افتراضيًا. القيمة الافتراضية للمهام في مُجدول المهام هي 7 (أقل من المعدل الطبيعي) ليس 4-6 (طبيعي) كما هو متوقع. قد يؤدي هذا الاختلاف البسيط إلى انخفاض كبير في الأداء في العمليات كثيفة الإدخال/الإخراج.

مستويات أولوية Windows بالتفصيل هي:

قيمةأولويةوصف
0في الوقت الحالىأعلى أولوية (تحذير!)
1عاليأولوية عالية
2-3فوق المعدل الطبيعيحول الوضع الطبيعي
4-6طبيعيمعيار العمليات التفاعلية
7أقل من المعدل الطبيعيافتراضيًا في جدول المهام
8-9أقل من المعدل الطبيعيأقل حتى
10عاطلأقل أولوية

المشكلة المتعلقة بالأولوية في جدولة المهام متعددة الطبقات: عندما تقوم بتصدير مهمة وتنظر إلى XML، ستجد غالبًا لا تحديد الأولوية. سيستخدم Windows بعد ذلك القيمة الافتراضية بصمت. 7. تعرض واجهة المستخدم الرسومية هذه القيمة أثناء التصدير، ولكنها لا تُخزَّن صراحةً في المهمة. لا يُؤدي انخفاض الأولوية إلى تقليل وقت وحدة المعالجة المركزية فحسب، بل أيضًا:

  • عمليات إدخال/إخراج القرص المخنوق
  • أولوية الشبكة المنخفضة
  • تخزين مؤقت ضعيف لنظام الملفات
  • تأخيرات في الوصول إلى قاعدة البيانات

حتى إذا استخدمتَ نفس المستخدم وفعّلتَ خيار "التشغيل بأعلى صلاحيات"، فسيتم تشغيل المهمة في بيئة سطح مكتب/محطة ويندوز مختلفة بأولويات مختلفة. لتحديد المشكلة، يمكنك استخدام PowerShell لعرض جميع المهام مع أولوياتها الفعلية.:

38b7fa6c77dc344401485cd338ea4128

تم تنفيذ جميع مهامي تقريبًا بالأولوية 7. نقوم الآن بتصحيح أولوية العديد من المهام في وقت واحد على وجه التحديد:

38b7fa6c77dc344401485cd338ea4128

بعد تحديد الأولوية لـ 4 عادةً، يعمل نص PHP الخاص بي مجددًا خلال الـ 300 ثانية المتوقعة. إذا كنت قد هيأت مهامًا بحساب مستخدم محدد، فيمكنك أيضًا تحديد ذلك بسهولة في السطر العاشر كما يلي.:

38b7fa6c77dc344401485cd338ea4128

عودة