Առաջնահերթություն Windows-ի առաջադրանքների ժամանակացույցում

Windows Task Scheduler-ում առաջադրանքներ կատարող յուրաքանչյուր ոք վաղ թե ուշ կհանդիպի անհասկանալի աշխատանքային ժամանակի տարբերությունների: Հրամանի տողում 5 րոպեում աշխատող PHP սկրիպտը հանկարծակի 20 րոպե է պահանջում, երբ այն կատարվում է Windows Task Scheduler-ի միջոցով: Նույն օգտատերը, նույն թույլտվությունները, նույն կոդը՝ կատարման չորս անգամ ավելի շատ ժամանակ: Ի՞նչ էր կատարվում:


Ժամեր շարունակ վրիպազերծումից, Process Monitor-ի սեսիաներից և անթիվ կարգավորումների համեմատություններից հետո լուծումը սարսափելիորեն պարզ էր. Windows Task Scheduler-ը լռելյայնորեն ավելի ցածր գործընթացի առաջնահերթություն է սահմանում: Task Scheduler-ում առաջադրանքների լռելյայն արժեքը հետևյալն է. 7 (Նորմալից ցածր), ոչ 4-6 (Նորմալ), ինչպես և սպասվում էր։ Այս թվացյալ փոքր տարբերությունը կարող է հանգեցնել կատարողականի զանգվածային վատթարացման I/O ինտենսիվ գործողություններում։

Windows-ի առաջնահերթության մակարդակները մանրամասն ներկայացված են:

ԱրժեքԱռաջնահերթությունՆկարագրություն
0Իրական ժամանակումԱմենաբարձր առաջնահերթություն (զգուշություն!)
1ԲարձրԲարձր առաջնահերթություն
2-3Նորմայից բարձրՆորմալի մասին
4-6ՆորմալՍտանդարտ ինտերակտիվ գործընթացների համար
7Նորմայից ցածրDEFAULT-ը առաջադրանքների ժամանակացույցում
8-9Նորմայից ցածրՆույնիսկ ավելի ցածր
10ԱնգործունԱմենացածր առաջնահերթությունը

Առաջադրանքների ժամանակացույցում առաջնահերթության հետ կապված խնդիրը բազմաշերտ է. Երբ դուք արտահանում եք առաջադրանք և նայում XML-ին, դուք հաճախ ոչ Առաջնահերթության կարգավորում։ Այնուհետև Windows-ը լուռ կօգտագործի լռելյայն արժեքը։ 7. Գրաֆիկական ինտերֆեյսը (GUI) ցուցադրում է այս արժեքը արտահանման ժամանակ, բայց այն հստակորեն չի պահվում առաջադրանքի մեջ։ Ավելի ցածր առաջնահերթությունը ոչ միայն հանգեցնում է պրոցեսորի ժամանակի կրճատման, այլև:

  • Սահմանափակված սկավառակի մուտքի/ելքի գործողություններ
  • Ցանցի ավելի ցածր առաջնահերթություն
  • Ֆայլային համակարգի վատ քեշավորում
  • Տվյալների բազայի մուտքի ուշացումներ

Նույնիսկ եթե դուք օգտագործում եք նույն օգտատիրոջը և միացնում եք «Գործարկել ամենաբարձր արտոնություններով» տարբերակը, առաջադրանքը կատարվում է Windows-ի այլ կայանում/աշխատասեղան միջավայրում՝ տարբեր առաջնահերթություններով: Խնդիրը հայտնաբերելու համար կարող եք օգտագործել PowerShell-ը՝ բոլոր առաջադրանքները իրենց իրական առաջնահերթություններով ցուցակագրելու համար::

38b7fa6c77dc344401485cd338ea4128

Գրեթե բոլոր առաջադրանքներս առաջնահերթությամբ էին ընթանում 7. Մենք այժմ հատուկ կերպով շտկում ենք մի քանի առաջադրանքների առաջնահերթությունը միանգամից:

38b7fa6c77dc344401485cd338ea4128

Առաջնահերթությունը սահմանելուց հետո 4 (Սովորաբար) իմ PHP սկրիպտը կրկին աշխատեց սպասվող 300 վայրկյանում: Եթե դուք կարգավորել եք առաջադրանքներ որոշակի օգտատիրոջ հաշվով, կարող եք նաև հեշտությամբ նշել դա 10-րդ տողում՝ հետևյալ կերպ::

38b7fa6c77dc344401485cd338ea4128

Վերադառնալ