Ich habe keine einfache, schnelle Lösung für Sie, aber ich habe eine Idee für etwas, das zumindest funktionieren sollte. Zuerst werde ich einige Kleinigkeiten auflisten, nach denen Sie suchen sollten - ich schätze, Sie haben sie bereits erledigt, aber es tut nicht weh, wenn Sie sicher sind. Sie haben nicht erwähnt, welches Betriebssystem Sie verwenden, aber da es nicht Ubuntu ist, vermute ich Windows. Ist dies nicht der Fall, ändern Sie die Details in dieser Lösung für Ihr Betriebssystem (z. B. verwenden Sie anstelle von PowerShell bash oder was auch immer, ersetzen Sie Dienstprogramme durch gleichwertige, usw.).
Einfache Tests
- Stellen Sie sicher, dass Sie nichts installiert haben und absichtlich so konfiguriert sind, dass die Downloadgeschwindigkeit begrenzt ist, wie z. B. NetLimiter.
- Überprüfen Sie die Netzwerknutzung aller Ihrer laufenden Prozesse (z. B. atype) und stellen Sie sicher, dass alles in Ordnung ist.
- Führen
tracert
Sie den Befehl aus, um zu sehen, ob der Holdup wirklich intern ist (und nicht etwa in Ihrem Router). Sie sagten, Sie könnten gute Geschwindigkeiten für Ihren NAS erzielen (was die Wahrscheinlichkeit für ein internes Problem weniger wahrscheinlich macht). Vielleicht gibt es einen weiteren Punkt auf Ihrer Route, der Ihre Bandbreite aus irgendeinem Grund behindert.
Komplizierter Test, um den Schuldigen Prozess / Dienst zu finden
Dies erfordert etwas Codierung - aber nicht zu viel.
Grundsätzlich besteht die Idee darin, jeden laufenden Prozess / Dienst nacheinander anzuhalten und zu sehen, ob sich die Download-Geschwindigkeit verbessert. Dafür müssen Sie die Windows-API wie im Beispiel hier verwenden (ändern GetDiskFreeSpaceW
Sie einfach die Funktion in die gewünschte Funktion).
Prozesse
- Listen Sie alle laufenden Prozesse mit Get-Process auf .
Schleife über die Liste und für jeden Prozess:
Stellen
$pid
Sie sicher, dass dies nicht der Prozess ist, mit dem das Skript ausgeführt wird, indem Sie es mit vergleichen (möglicherweise müssen Sie auch nach übergeordneten / Vorfahrenprozessen suchen; ich bin mir nicht sicher).Unterbrechen Sie den Prozess mit der
DebugActiveProcess
Windows-API-Funktion. Auch das kann sich als nützlich erweisen.Warten auf ein paar Sekunden ist hier wahrscheinlich eine gute Idee, aber es ist in Ordnung, dies zu überspringen.
Wenn der Prozess jetzt deaktiviert ist, testen Sie Ihre Download-Bandbreite. Ich habe diese Seite mit einigen Beispielen dazu in PowerShell gefunden, und dies scheint der einfachste Weg zu sein:
$a=Get-Date; Invoke-WebRequest http://client.akamai.com/install/test-objects/10MB.bin|Out-Null; "$((10/((Get-Date)-$a).TotalSeconds)*8) Mbps"
Sie können auch dieses Geschwindigkeitstestskript verwenden . Es ist in Python, daher sollten Sie es in der Lage sein, es auf einem anderen Betriebssystem auszuführen, wenn Sie dies benötigen.
Wenn die Bandbreite den gewünschten Schwellenwert überschreitet (z. B. 1 MBit / s; entscheiden Sie selbst), begrenzt dies die Downloadgeschwindigkeit. Drucken Sie den Namen oder die Prozess-ID oder was auch immer aus und stoppen Sie die Schleife.
Setzen Sie den Vorgang wieder auf, indem Sie die DebugActiveProcessStop- Funktion der Windows-API aufrufen .
Dienstleistungen
Möglicherweise ist das, was die Downloadgeschwindigkeit einschränkt, ein Dienst und kein Prozess. In diesem Fall können Sie dasselbe tun, wie ich es für Prozesse vorgeschlagen habe. Sie müssen nur verschiedene API-Funktionen ( Suspend-Service und Resume-Service ) verwenden und müssen nicht überprüfen, dass Sie sich selbst nicht suspendieren (seit dem Skript ist keine Dienstleistung).
Vorsichtsmaßnahmen
Es kann kritische Systemprozesse und Dienste geben, die Sie unbedingt stoppen sollten und möglicherweise sogar nicht. Im ersten Fall müssen Sie eine Ausschlussliste erstellen, und im letzteren Fall müssen Sie berücksichtigen, dass Ihre API-Aufrufe möglicherweise fehlschlagen (Sie sollten dies trotzdem tun und möglicherweise eine Warnung ausgeben.) wenn dies passiert und weiterfahren).
Ich weiß, dass dies alles mehr Arbeit ist, als Sie erhofft hatten, aber es ist die beste Idee, die ich für Sie habe. Ich hoffe, es hilft Ihnen, Ihr Problem zu lösen.