用于在高内存占用情况下实现高CPU和磁盘使用的脚本

时间:2017-12-22 21:00:36

标签: performance powershell batch-file memory cpu-usage

我正在尝试创建一个非常简单的批处理脚本,以便在占用内存(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

有关如何增加磁盘使用量的任何建议。

注意:

  1. 如果我可以将CPU和磁盘使用率提高,我的任务就会完成,但我很想知道如何增加内存使用量。
  2. 我明白使用Powershell和7Zip等许多zip / unzip这样复杂的解决方案可能会有效。但是我想在不使用任何第三方工具(烧录测试)的情况下尽可能简单地实现这一点。
  3. 我也可以使用PowerShell,没有任何第三方工具。

3 个答案:

答案 0 :(得分:1)

使用Powershell:

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

使用IO读/写,它可以加载到25%。enter image description here

答案 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