2017-12-22 9 views
1

Ich versuche ein sehr einfaches Stapelscript zu erstellen, um CPU und Festplatte mit geringem Speicherbedarf (RAM) zu nutzen.Skript für hohe CPU- und Festplattennutzung mit geringem Speicherbedarf

Der Zweck besteht darin, das System sehr langsam zum Testen zu machen und einige Timeout-Ausnahmen zu beheben.

Für hohe CPU-Auslastung kann ich es mit diesem einfachen Batch-Skript erreichen und 4-5 Instanzen davon ausführen.

@echo off 
:loop 
goto loop 

modifizierte ich das Drehbuch einig Lese-Schreib-Operationen auch tut hohe Festplattennutzung zu bekommen, aber trotz ich mich fast 0% Festplattennutzung mit meiner SSD Platte bin immer noch mehrere Instanzen leite bekommen. Unten ist mein modifiziertes Skript -

@echo off 
:loop 
set file=D:\text%random%.txt 
FOR /L %%A IN (1,1,20) DO (ECHO This is garbage text. >> %file%) 
del %file% 
goto loop 

Alle Vorschläge, wie Sie die Festplattennutzung erhöhen.

Hinweis:

  1. Meine Aufgabe getan werden würde, wenn ich kann CPU und Festplattenauslastung hoch, aber ich wäre neugierig, wie auch die Speichernutzung zu erhöhen.
  2. Ich verstehe, dass komplexe Lösung wie viele zip/unzip mit Powershell und 7Zip, etc funktionieren kann. Aber ich möchte das so einfach wie möglich ohne die Verwendung von Drittanbieter-Tools (Burnt-Tests) erreichen.
  3. Ich kann PowerShell auch verwenden, ohne irgendwelche Drittanbieterwerkzeuge zur Verfügung gestellt.
+0

Powershell ist kein Dritter Werkzeug. Wenn Sie es nicht verwenden möchten, warum haben Sie das Powershell-Tag verwendet? – Squashman

+0

@Squashman: Ich weiß PS ist keine 3rd Party, ich kann es benutzen. Ich wollte nur auf 3rd Party Tools wie 7zip hinweisen. Wenn es verwirrend ist, würde ich meine Aussage umformulieren. – Koder101

+1

Microsoft hat ein altes Dienstprogramm, das Sie von ihnen erhalten können, so dass es sich nicht um einen Dritten handelt. [SQLIO] (https://www.microsoft.com/de-de/download/details.aspx?id=20163). Es wurde durch [DISKSPD] ersetzt (https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223). – Squashman

Antwort

1

Wie @Squashman vorgeschlagen, fand ich Diskspd Dienstprogramm meine Anforderung zu erfüllen.

Durch Ausführen der einzelnen Instanz dieses einfachen Befehls wurde die Festplattenbelegung auf 100% und die CPU-Auslastung auf 50% erhöht.

Diskspd.exe -b8K -d60 -h -L -O2 -T4 -r -w30 -c50M c: \ io.dat

Mein System Config:

CPU: Intel Core i7-6600U 2.81Ghz

Ram: 16 Gigs

1

Mit Powershell:

"while (1) { echo (date) | out-file 'temp.file'; sleep 0.1; rm 'temp.file' } " 
> loadme.ps1 
~\Desktop $ 
.\loadme.ps1 

und es wird bis zu 25% mit IO geladen Lese-/Schreib. enter image description here

+0

Wie erreichen Sie diese Transparenz mit Ihrem Konsolenfenster? – TheIncorrigible1

+1

@ TheIncorrigible1 Win10 verbessert es :) Siehe Eigenschaften -> Farben -> Deckkraft – Artyom

+0

Sweet! Hätte nie gedacht, dass sie das aktualisieren würden. – TheIncorrigible1

0

Verwenden Sie Diskspd Utility, wie @squashman für kontrollierte E/A-Lasten empfiehlt.

Hier ist Low-Base-Print, hohe CPU-Auslastung Skript. Kein .NET-Speicherfußabdruck, um damit umzugehen. Entfernen Sie die Pause, wenn Sie nur darauf zugreifen möchten, andernfalls springt jedes cmd-Fenster, das Sie besuchen und einen Schlüssel eingibt, Ihre CPU-Auslastung für Sie (~ 10% auf meiner Box). Auf einem Server-Klassencomputer müssen Sie möglicherweise die Anzahl der erstellten Konsolen erhöhen.

@setlocal 
@set prompt=$G 
@if not defined _procCount set _procCount=0 
@echo _procCount==%_procCount% 
@set /a _procCount+=1 
@set _thisScript=%~f0 
@if %_procCount% lss 32 call start "Burn CPU %_procCount%" cmd.exe /k %_thisScript% 
@pause 

@set _accumulator=0 
@set _counter=2 
@set _result=0 

:top 
@set /a _counter+=1 
@set /a _result=%_counter%/2 
@if %_result% == 65535 @goto :ResetCounter 
@goto :top 

:ResetCounter 
@set /a _accumulator+=1 
@set _counter=2 
@echo %_accumulator% 
goto :top