Scarsa performance di pianificazione delle attività su Windows 8 e Windows Server 2012

Sto utilizzando il Task Scheduler di Windows per avviare un programma di amministratore elevato quando un utente accede. La tecnica si basa su questo articolo:

http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html

Nota: il programma di amministratore elevato è un programma di test automatizzato, che deve eseguire come amministratore per installare programmi e eseguire vari test. Alcuni test richiedono diritti di amministratore e accesso al desktop.

L'attività è configurata per l'esecuzione a priorità sopra la normale come descritto in questo articolo:

https://stackoverflow.com/questions/2427142/is-there-any-way-for-a-win2k8-scheduled-task-to-have-normal-priority-io

Tutto funziona bene su Windows Vista, Windows 7 e Windows Server 2008.

Su Windows 8 e Windows Server 2012 le performance del programma di prova sono terribili, in genere prendendo 5-10 volte più tempo da eseguire. L'utilizzo della CPU e il disco I / O sono entrambi molto alti. Process Hacker ( http://processhacker.sourceforge.net/ ) mostra Priorità I / O come Normale e Priorità Pagina come Normale.

La scarsa prestazione avviene solo se il programma di test è eseguito dal task scheduler durante l'accesso. Se interrompere il programma di prova e riavviarlo eseguendo manualmente l'attività del task scheduler, viene ripristinata la normale prestazione.

Ecco alcuni numbers da una versione ridotta del programma di prova:

  • Dal programma di prova eseguito dall'accesso all'utente: Tempo di 37,6 secondi, errori di pagina 4530, picco WS 17,8M
  • Stesso programma di prova dopo il riavvio manuale: tempo 1.1 secondi, errori di pagina 4383, picco WS 17.7M

Qualsiasi aiuto sarebbe apprezzato.

  • Numero massimo di utenti registrati che utilizzano il desktop remoto
  • Trova la data di scadenza di un file di certificato che non ho installato
  • Powershell - Sort-Objects, elenco degli indirizzi IP
  • Server DHCP di Windows 2012 con 2 NIC
  • Certificato Wildcard di terze parti su DC per LDAPS
  • Sessione remota: passare da Desktop a modalità Metro Windows Server 2012
  • Come rimuovere un VM da Hyper-V senza eliminare il file di configuration?
  • Script di riavvio del server - nessuna credenziali
  • One Solution collect form web for “Scarsa performance di pianificazione delle attività su Windows 8 e Windows Server 2012”

    Penso di avere una soluzione al problema. Sembra che il comportmento di un'operazione pianificata in Windows 8 e Windows Server 2012 dipenda da quando viene avviata l'attività in relazione alla sequenza di accesso.

    Il mio task di test ha avuto un ritardo incorporato. L'attività è stata avviata presto nella sequenza di accesso, in pausa per 60 secondi, quindi avviato il test di esecuzione. Sono stati provati diversi ritardi, ma in each caso le performance su Windows 8 e Windows 2012 erano abissali. Nota: l'attività di test è stata eseguita in un'installazione quasi pulita di Windows, per cui 60 secondi sono stati più che sufficienti per superare la sequenza di accesso.

    Ho cambiato l'attività di prova per rimuovere il ritardo incorporato e invece utilizzi la function di ritardo di avvio del task scheduler. In Windows 8 e Windows Server 2012 l'attività di prova è configurata per avviare 60 secondi dopo l'accesso. Dopo questa modifica l'attività di prova si comport normalmente.

    Ho cercato i documenti MSFT per una spiegazione di questo comportmento, ma finora ho tracciato un vuoto.

    Sono grande grazie a @ charleswj81, @MDMarra e @ Danel Goldberg. I tuoi commenti mi hanno aiutato a guardare il problema da diversi angoli e alla fine capire un lavoro intorno.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.