52 votes

Le processus s'exécute plus lentement en tant que tâche programmée qu'en mode interactif.

J'ai programmé une tâche très gourmande en ressources CPU et IO, qui prend environ quatre heures à exécuter (construction du code source, si vous êtes curieux). Cette tâche est un script Powershell script qui génère divers sous-processus pour effectuer son travail. Lorsque j'exécute le même processus de manière interactive à partir d'une invite Powershell, avec le même compte d'utilisateur, il s'exécute en deux heures et demie environ. La tâche est exécutée sur Windows Server 2008 R2.

Ce que je veux savoir, c'est pourquoi il faut beaucoup plus de temps pour l'exécuter en tant que tâche planifiée - plus d'une heure de plus. Une chose que j'ai remarquée est que le planificateur de tâches fonctionne avec une priorité inférieure à la normale, de sorte que lorsque ma tâche démarre, elle hérite de la même priorité réduite. Cependant, j'ai mis à jour le script pour rétablir la priorité du processus Powershell à Normal, et cela prend toujours autant de temps.

Quelqu'un a-t-il une idée de ce qui pourrait différer entre les deux scénarios ? J'ai exclu les différences de charge du processeur et des entrées-sorties - cette tâche est la seule chose pour laquelle le système est utilisé, donc il n'y a rien d'autre en cours d'exécution qui pourrait être en concurrence pour les ressources.

1voto

Yifan Zhou Points 111

Cette question date d'il y a un certain temps et concerne le serveur Windows 2008R2. J'avais la même question, mais pour Windows 10. Sur Windows 10 (vérifié sur 1703 et 1809), il suffit de définir la "Priorité" à 4 via le xml importé pour vous donner la même priorité de base, priorité dynamique, priorité d'E/S et priorité de mémoire qu'un processus lancé interactivement.

0voto

Rowan Johnson Points 139

Dans un premier temps, vous pouvez utiliser une priorité supérieure à la normale (élevée par exemple)

Ensuite, vous devez comprendre que la session en avant-plan utilise certaines ressources, principalement les entrées-sorties du disque dur et la mémoire, de sorte que les tâches programmées sont réduites. Pour une analyse comparative claire, vous devez vous déconnecter lorsque le script powershell script est en cours d'exécution.

Vous pouvez également essayer d'ajouter de la mémoire, d'utiliser un lecteur de mémoire vive ou de répartir le travail sur plusieurs disques durs afin d'accélérer les processus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X