以低内存占用实现高 cpu 和磁盘使用的脚本

Script to make high cpu and disk usage with low memory footprint

我正在尝试创建一个非常简单的批处理脚本,以充分利用 CPU 和低内存 (RAM) 占用空间的磁盘。

目的是让系统测试很慢,修复一些超时异常问题。

对于 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 方工具(刻录测试)的情况下尽可能简单地实现这一目标。
  3. 我也可以使用 PowerShell,无需任何第 3 方工具。

使用 Powershell:

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

并且 IO read/write 加载了 25%。

使用 Diskspd Utility @squashman 推荐的受控 I/O 负载。

这是低占用空间,高 CPU 使用脚本。无需处理 .NET 内存足迹。如果您只想继续,请删除暂停,否则,您访问并按下一个键的每个 cmd window 都会为您跳转 CPU 使用量(我的盒子上约为 10%)。在服务器 class 机器上,您可能必须增加创建的控制台数量。

@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

根据@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

Ram : 16 Gigs

dd if=/dev/urandom | gzip -9 >> /dev/null &