我正在尝试创建一个非常简单的批处理脚本,以便在占用内存(RAM)较少的情况下充分利用CPU和磁盘。
目的是使系统测试和修复一些超时异常问题的速度非常慢。
对于高CPU使用率,我可以使用这个简单的批处理脚本并运行4-5个实例来实现它。
@echo off
:loop
goto loop
我修改了脚本以执行一些读写操作以获得高磁盘使用率,但是尽管我正在运行多个实例,但我仍然使用我的SSD磁盘获得几乎0%的磁盘使用率。以下是我修改过的脚本 -
@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
有关如何增加磁盘使用量的任何建议。
注意:
答案 0 :(得分:1)
使用Powershell:
"while (1) { echo (date) | out-file 'temp.file'; sleep 0.1; rm 'temp.file' } "
> loadme.ps1
~\Desktop $
.\loadme.ps1
答案 1 :(得分:1)
根据@Squashman的建议,我发现Diskspd实用程序符合我的要求。
运行此简单命令的单个实例使我的磁盘使用率达到100%,CPU使用率达到50%。
Diskspd.exe -b8K -d60 -h -L -o2 -t4 -r -w30 -c50M c:\ io.dat
我的系统配置:
CPU:Intel Core i7-6600U 2.81Ghz
拉姆:16演出
答案 2 :(得分:0)
使用Diskspd Utility作为@squashman建议的受控I / O负载。
这是低脚印,高CPU使用率脚本。没有.NET内存足迹来处理。如果您只想删除暂停,则删除暂停,否则,您访问并按下某个键的每个cmd窗口都会为您跳过CPU使用率(我的盒子上大约10%)。在服务器类机器上,您可能必须增加创建的控制台数量。
@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