Есть задумка выполнять проверку текущей скорости диска из системы мониторинга Icinga2. На данный момент разбираюсь с консольной утилитой diskspd. В дальнейшем планирую написать скрипт на powershell для выполнения проверки агентом Icinga2.

В процессе ...

Примеры использования:

#Создание файла размером 50MB
$f = new-object System.IO.FileStream c:\temp\io.dat, Create, ReadWrite
$f.SetLength(50MB)
$f.Close()




cd "C:\temp\Diskspd-v2.0.17\amd64fre"

.\diskspd -d60 -F1 -r -w50 -b4k -o10 -Rxml -D -L c:\temp\io.dat | Add-Content c:\temp\result_c.xml
.\diskspd -d60 -F1 -r -w50 -b4k -o10 -Rxml -D -L d:\temp\io.dat | Add-Content c:\temp\result_d.xml
.\diskspd -d60 -F1 -r -w50 -b4k -o10 -Rxml -D -L e:\temp\io.dat | Add-Content c:\temp\result_e.xml

..\process-diskspd.ps1 c:\Temp c:\temp\result.csv



Результаты тестов в Excel:



Описание тестаПример команды
Test for 15 seconds using a single thread
to drive 100% random 4KiB reads at a depth of 10 overlapped
diskspd -d15 -F1 -w0 -r -b4k -o10 c:\testfile.dat
Large area random concurrent reads of 4KB blocksdiskspd -c2G -b4K -F8 -r -o32 -W60 -d60 -Sh testfile.dat
Large area random concurrent writes of 4KB blocksdiskspd -c2G -w -b4K -F8 -r -o32 -W60 -d60 -Sh testfile.dat
Large area random concurrent reads of 64KB blocksdiskspd -c2G -b64K -F8 -r -o32 -W60 -d60 -Sh testfile.dat
Large area random concurrent writes of 64KB blocksdiskspd -c2G -w -b64K -F8 -r -o32 -W60 -d60 -Sh testfile.dat
Large area random serial reads of 4KB blocks.diskspd -c2G -b4K -r -o1 -W60 -d60 -Sh testfile.dat
Large area random serial writes of 4KB blocksdiskspd -c2G -w -b4K -r -o1 -W60 -d60 -Sh testfile.dat
Large area random serial reads of 64KB blocksdiskspd -c2G -b64K -r -o1 -W60 -d60 -Sh testfile.dat
Large area random serial writes of 64KB blocksdiskspd -c2G -w -b64K -r -o1 -W60 -d60 -Sh testfile.dat
Large area sequential concurrent reads of 4KB blocksdiskspd -c2G -b4K -F8 -T1b -s8b -o32 -W60 -d60 -Sh testfile.dat
Large area sequential concurrent writes of 4KB blocksdiskspd -c2G -w -b4K -F8 -T1b -s8b -o32 -W60 -d60 -Sh testfile.dat
Large area sequential concurrent reads of 64KB blocksdiskspd -c2G -b64K -F8 -T1b -s8b -o32 -W60 -d60 -Sh testfile.dat
Large area sequential concurrent writes of 64KB blocksdiskspd -c2G -w -b64K -F8 -T1b -s8b -o32 -W60 -d60 -Sh testfile.dat
Large area sequential serial reads of 4KB blocksdiskspd -c2G -b4K -o1 -W60 -d60 -Sh testfile.dat
Large area sequential serial writes of 4KB blocksdiskspd -c2G -w -b4K -o1 -W60 -d60 -Sh testfile.dat
Large area sequential serial reads of 64KB blocksdiskspd -c2G -b64K -o1 -W60 -d60 -Sh testfile.dat
Large area sequential serial writes of 64KB blocksdiskspd -c2G -w -b64K -o1 -W60 -d60 -Sh testfile.dat
Small area concurrent reads of 4KB blocksdiskspd -c100b -b4K -o32 -F8 -T1b -s8b -W60 -d60 -Sh testfile.dat
Small area concurrent writes of 4KB blocksdiskspd -c100b -w -b4K -o32 -F8 -T1b -s8b -W60 -d60 -Sh testfile.dat
Small area concurrent reads of 64KB blocksdiskspd -c100b -b64K -o32 -F8 -T1b -s8b -W60 -d60 -Sh testfile.dat
Small area concurrent writes of 64KB blocksdiskspd -c100b -w -b64K -o32 -F8 -T1b -s8b -W60 -d60 -Sh testfile.dat
Gather data about physical disk I/O events
and memory events from NT Kernel Logger
diskspd -eDISK_IO -eMEMORY_PAGE_FAULTS testfile.dat
Instruct NT Kernel Logger to use paged memory
instead of non-paged memory and gather data concerning physical disk I/O events
diskspd -eDISK_IO -ep testfile.dat
Run a DiskSpd and signal events when
the actual test starts and finishes
diskspd -ysMyTestStartedEvent -yfMyTestFinishedEvent testfile1.dat
Run a few separate instances of DiskSpd,
but synchronize their start and stop times
diskspd -o1 -t2 -a0,1 -yrMyStartEvent -ypMyStopEvent testfile1.dat
diskspd -r -t2 -a2,3 -yrMyStartEvent -ypMyStopEvent testfile2.dat
diskspd -Sh -t4 -a4,5,6,7 -yrMyStartEvent -ypMyStopEvent testfile3.dat
diskspd -yeMyStartEvent
rem After a few seconds
diskspd -yeMyStopEvent

Ссылки