以低内存占用实现高 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
关于如何增加磁盘使用率的任何建议。
注:
- 如果我能使 CPU 和磁盘使用率高,我的任务就完成了,但我很想知道如何增加内存使用率。
- 我知道使用 Powershell 和 7Zip 等的许多 zip/unzip 等复杂解决方案可能有效。但我想在不使用任何第 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 &
我正在尝试创建一个非常简单的批处理脚本,以充分利用 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
关于如何增加磁盘使用率的任何建议。
注:
- 如果我能使 CPU 和磁盘使用率高,我的任务就完成了,但我很想知道如何增加内存使用率。
- 我知道使用 Powershell 和 7Zip 等的许多 zip/unzip 等复杂解决方案可能有效。但我想在不使用任何第 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 &