/ / PowerShell - Remote-Datei├╝bertragung mit niedriger Priorit├Ąt - Windows, PowerShell, Datei├╝bertragung, Windows-Server-2008-R2

PowerShell - Remote-Datei├╝bertragung mit niedriger Priorit├Ąt - Windows, PowerShell, Datei├╝bertragung, Windows-Server-2008-R2

Ich schreibe ein PowerShell-Skript, das sein mussSie k├Ânnen viele gro├če Dateien von vielen Servern (d. h. Windows Server-Hosts) gleichzeitig herunterladen. Viele dieser Server k├Ânnen f├╝r wichtige Aktivit├Ąten verwendet werden. Daher ist es wichtig, dass die ├ťbertragungsmethode in den Hintergrund tritt, wenn die Auslastung der Server zu hoch wird.

Hier sind 3 ├ťbertragungsmethoden, die ich kenne, zusammen mit Gr├╝nden, warum ich nicht denke, dass sie f├╝r den Job gut genug sind.

BitsTransfer: Das erste, was mir in den Sinn kam, war BitsTransfer (https://docs.microsoft.com/en-us/powershell/module/bitstransfer/start-bitstransfer?view=win10-ps) gibt es jedoch ein schwerwiegendes ProblemAnsatz darin, dass es keine Dateien ├╝bertragen kann, die zum Schreiben von anderen Prozessen verwendet werden, und viele der Dateien, die von den Servern heruntergeladen werden m├╝ssen, sich in einem solchen Zustand befinden. Sehen start-bitstransfer: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird f├╝r dieses Problem ...

Exemplar: Dies gibt keine Kontrolle ├╝ber die Priorit├Ąt. Daher besteht die M├Âglichkeit, dass eine gro├če Datei├╝bertragung einen Server zum Erliegen bringt, w├Ąhrend er eine wichtige Last verarbeitet.

Robocopy: Auch hier sehe ich keine Erw├Ąhnung von Priorit├Ąt oder Hintergrundverarbeitung.

Antworten:

0 f├╝r Antwort Ôäľ 1

Sie sollten sich f├╝r Ihren Anwendungsfall auf Multithreading, Parallelverarbeitung, Hintergrundjobs, Runspace-Jobs und Thread-Jobs konzentrieren.

https://randombrainworks.com/2018/01/28/powershell-background-jobs-runspace-jobs-thread-jobs

Ihr Code sollte zuerst pr├╝fen, ob die Datei verwendet wird, und die Datei ├╝berspringen, wenn dies der Fall ist, und sie in eine Sammlung einf├╝gen, die Sie verwenden werden, um zur├╝ckzukehren und es erneut zu versuchen.

Es scheint aber auch, dass Sie danach fragenDynamische Drosselung basierend auf dem Status des Serverressourcenverbrauchs. Dies w├╝rde auch bedeuten, dass Sie separaten Code ben├Âtigen, um nach diesem Ressourcenstatus zu suchen, bevor Sie Ma├čnahmen ergreifen, und die Warteschlange ist so nah wie m├Âglich.

https://dille.name/blog/2015/09/08/processing-a-queue-using-parallel-powershell-jobs-with-throttling