Megosztás a következőn keresztül:


A DISKSPD használata a számítási feladatok tárolási teljesítményének teszteléséhez

A következőkre vonatkozik: Azure Stack HCI, 22H2 és 21H2 verzió; Windows Server 2022, Windows Server 2019

Fontos

Az Azure Stack HCI mostantól az Azure Local része. Az Azure Stack HCI régebbi verziói, például a 22H2 azonban továbbra is hivatkozni fognak az Azure Stack HCI-re, és nem tükrözik a névváltoztatást. További információ.

Ez a témakör útmutatást nyújt a DISKSPD használatával a számítási feladatok tárolási teljesítményének teszteléséhez. Be van állítva egy Azure Stack HCI-fürt, minden készen áll az indulásra. Nagyszerű, de honnan tudható, hogy az ígért teljesítménymetrikákat kapja, legyen szó a késésről, az átviteli sebességről vagy az IOPS-ről? Ilyenkor érdemes használni a DISKSPD-t. A témakör elolvasása után megtudhatja, hogyan futtathatja a DISKSPD-t, megismerheti a paraméterek egy részhalmazát, értelmezheti a kimenetet, és általános ismereteket szerezhet a számítási feladatok tárolási teljesítményét befolyásoló változókról.

Mi az a DISKSPD?

A DISKSPD egy I/O-generáló parancssori eszköz a mikro-teljesítményméréshez. Nagyszerű, szóval mit jelentenek ezek a kifejezések? Bárkinek, aki beállít egy Azure Stack HCI-fürtöt vagy fizikai kiszolgálót, oka van. Lehet, hogy web hosting környezetet állít be, vagy virtuális asztalokat futtat az alkalmazottak számára. Bármi is legyen a valós használati eset, valószínűleg egy tesztet szeretne szimulálni a tényleges alkalmazás üzembe helyezése előtt. Az alkalmazás valós forgatókönyvben való tesztelése azonban gyakran nehéz – itt jön be a DISKSPD.

A DISKSPD egy olyan eszköz, amelyet testre szabhat, hogy saját szintetikus számítási feladatokat hozzon létre, és az üzembe helyezés előtt tesztelje az alkalmazást. Az eszközben az a jó, hogy lehetővé teszi a paraméterek konfigurálását és finomhangolását, hogy egy olyan forgatókönyvet hozzon létre, amely a valódi számítási feladathoz hasonlít. A DISKSPD bepillantást nyerhet abba, hogy a rendszer mire képes az üzembe helyezés előtt. A DISKSPD egyszerűen egy csomó olvasási és írási műveletet ad ki.

Most már tudja, mi a DISKSPD, de mikor érdemes használni? A DISKSPD nehezen emulál összetett számítási feladatokat. A DISKSPD azonban akkor nagyszerű, ha a munkaterhelés nem egy szálas fájlmásolattal közelíthető meg, és egy egyszerű eszköz szükséges, amely elfogadható alapvető eredményeket hoz létre.

Rövid útmutató: A DISKSPD telepítése és futtatása

A DISKSPD telepítéséhez és futtatásához nyissa meg a PowerShellt rendszergazdaként a felügyeleti pc-n, majd kövesse az alábbi lépéseket:

  1. A DISKSPD eszköz ZIP-fájljának letöltéséhez és kibontásához futtassa a következő parancsokat:

    # Define the ZIP URL and the full path to save the file, including the filename
    $zipName = "DiskSpd.zip"
    $zipPath = "C:\DISKSPD"
    $zipFullName = Join-Path $zipPath $zipName
    $zipUrl = "https://github.com/microsoft/diskspd/releases/latest/download/" +$zipName
    
    # Ensure the target directory exists, if not then create
    if (-Not (Test-Path $zipPath)) {
    New-Item -Path $zipPath -ItemType Directory | Out-Null
    }
    # Download and expand the ZIP file
    Invoke-RestMethod -Uri $zipUrl -OutFile $zipFullName
    Expand-Archive -Path $zipFullName -DestinationPath $zipPath
    
    
  2. Ha hozzá szeretné adni a DISKSPD könyvtárat a $PATH környezeti változóhoz, futtassa a következő parancsot:

    $diskspdPath = Join-Path $zipPath $env:PROCESSOR_ARCHITECTURE
    if ($env:path -split ';' -notcontains $diskspdPath) {
    $env:path += ";" + $diskspdPath
    }
    
  3. Futtassa a DISKSPD-t a következő PowerShell-paranccsal. Cserélje le a szögletes zárójeleket a megfelelő beállításaira.

    diskspd [INSERT_SET_OF_PARAMETERS] [INSERT_CSV_PATH_FOR_TEST_FILE] > [INSERT_OUTPUT_FILE.txt]
    

    Íme egy példaparancs, amelyet futtathat:

    diskspd -t2 -o32 -b4k -r4k -w0 -d120 -Sh -D -L -c5G C:\ClusterStorage\test01\targetfile\IO.dat > test01.txt
    

    Feljegyzés

    Ha nem rendelkezik tesztfájllal, a -c paraméterrel hozzon létre egyet. Ha ezt a paramétert használja, mindenképpen adja meg a tesztfájl nevét az elérési út meghatározásakor. Például: [INSERT_CSV_PATH_FOR_TEST_FILE] = C:\ClusterStorage\CSV01\IO.dat. A példaparancsban IO.dat a tesztfájl neve, test01.txt pedig a DISKSPD kimeneti fájl neve.

Kulcsparaméterek megadása

Nos, ez egyszerű volt, igaz? Sajnos ennél többről van szó. Csomagoljuk ki, amit tettünk. Először is vannak különböző paraméterek, amelyekkel bütyköghet, és konkrétak lehetnek. A következő alapparamétereket használtuk azonban:

Feljegyzés

A DISKSPD-paraméterek megkülönböztetik a kis- és nagybetűket.

-t2: Ez a cél-/tesztfájlonkénti szálak számát jelzi. Ez a szám gyakran a processzormagok számán alapul. Ebben az esetben két szálat használtak az összes processzormag stresszelésére.

-o32: Ez azt jelzi, hogy a függőben lévő I/O-kérések száma célonként és szálonként. Ezt az üzenetsor mélységének is nevezik, és ebben az esetben 32-et használtak a processzor terhelésére.

-b4K: Ez a blokk méretét jelzi bájtokban, KiB-ben, MiB-ben vagy GiB-ben. Ebben az esetben 4K blokkmérettel szimuláltak egy véletlenszerű I/O-tesztet.

-r4K: Ez azt jelzi, hogy a véletlenszerű I/O a megadott mérethez igazodik bájtokban, KiB-ben, MiB-ben, Gibben vagy blokkokban (felülbírálja a -s paramétert). A közös 4K bájtméretet használták a blokk méretének megfelelő igazításához.

-w0: Ez az írási kérelmeket tartalmazó műveletek százalékos arányát adja meg (a-w0 100%-os olvasási aránynak felel meg). Ebben az esetben 0%-os jelöléseket használtak egy egyszerű teszt céljából.

-d120: Ez a teszt időtartamát határozza meg, a lehűlést és a bemelegítést nem beleértve. Az alapértelmezett érték 10 másodperc, de javasoljuk, hogy legalább 60 másodpercet használjon bármilyen komoly számítási feladathoz. Ebben az esetben 120 másodpercet használtak a kiugró értékek minimalizálására.

-Suw: Letiltja a szoftveres és hardveres írási gyorsítótárazást (egyenértékű az -Sh-val).

-D: Ezredmásodpercenként (szálonként, célonként) rögzíti az IOPS-statisztikákat, például a szórást.

-L: A késési statisztikákat méri.

-c5g: A tesztben használt mintafájl méretét állítja be. Bájtokban, KiB-ben, MiB-ben, GiB-ben vagy blokkokban állítható be. Ebben az esetben egy 5 GB-os célfájlt használtunk.

A paraméterek teljes listáját a GitHub-adattárban találja.

A környezet megismerése

A teljesítmény nagyban függ a környezetétől. Szóval, mi a környezetünk? Az általunk megadott specifikáció egy Azure Stack HCI-fürtöt tartalmaz tárolókészlettel és a Storage Spaces Direct (S2D) szolgáltatással. Pontosabban öt virtuális gép létezik: DC, node1, node2, node3 és a felügyeleti csomópont. Maga a fürt egy háromcsomópontos fürt, amely háromirányú tükrözött rugalmassági struktúrával rendelkezik. Ezért a rendszer három adatmásolatot tart fenn. A klaszter minden "csomópontja" egy Standard_B2ms virtuális gép, amelynél az IOPS-korlát maximálisan 1920 lehet. Minden csomóponton belül négy prémium P30 SSD-meghajtó található, amelyek maximális IOPS-korlátja 5000. Végül minden SSD-meghajtó 1 TB memóriával rendelkezik.

A tesztfájlt az egységes névtérben (C:\ClusteredStorage), amelyet a fürt megosztott kötete (CSV) biztosít, azért hozza létre, hogy a meghajtók teljes készletét használja.

Feljegyzés

A példakörnyezet nem rendelkezik Hyper-V-rel vagy beágyazott virtualizációs struktúrával.

Mint láthatja, teljesen lehetséges, hogy önállóan elérje az IOPS-t vagy a sávszélesség felső határát a virtuális gépen vagy a meghajtó korlátján. Ezért fontos megérteni a virtuális gép méretét és meghajtótípusát, mert mindkettő maximális IOPS-korlátot és sávszélesség-felső határt biztosít. Ez a tudás segít megtalálni a szűk keresztmetszeteket, és megérteni a teljesítmény eredményeit. Ha többet szeretne megtudni arról, hogy milyen méret felelhet meg a számítási feladatnak, tekintse meg a következő erőforrásokat:

A kimenet ismertetése

Ha tisztában van a paraméterekkel és a környezettel, készen áll a kimenet értelmezésére. Először is a korábbi teszt célja az IOPS maximális kihasználása volt, a késésre való tekintet nélkül. Így vizuálisan láthatja, hogy eléri-e a mesterséges IOPS-korlátot az Azure-ban. Ha grafikusan szeretné megjeleníteni a teljes IOPS-t, használja a Windows Felügyeleti központot vagy a Feladatkezelőt.

Az alábbi ábra a DISKSPD-folyamat megjelenését mutatja be a példakörnyezetben. Egy nem koordinátor csomópont 1 MiB írási műveletére mutat példát. A háromirányú rugalmassági struktúra és a nem koordinátor csomópontból származó művelet két hálózati ugrást eredményez, csökkentve a teljesítményt. Ha kíváncsi arra, hogy mi a koordinátori csomópont, ne aggódjon! Erről a Megfontolandó dolgok szakaszban olvashat. A piros négyzetek a virtuális gép és a meghajtó szűk keresztmetszeteit jelképezik.

A DISKSPD-vel végzett teljesítmény teszteléséhez használt mintakörnyezet.

Most, hogy megismerte a vizualizációt, vizsgáljuk meg a .txt fájlkimenet négy fő szakaszát:

  1. Bemeneti beállítások

    Ez a szakasz a futtatott parancsot, a bemeneti paramétereket és a tesztfuttatás további részleteit ismerteti.

    A példakimenet parancs- és bemeneti paramétereket jelenít meg.

  2. CPU-kihasználtság részletei

    Ez a szakasz olyan információkat emel ki, mint a tesztelési idő, a szálak száma, a rendelkezésre álló processzorok száma, valamint az egyes processzormagok átlagos kihasználtsága a teszt során. Ebben az esetben két processzormag van, amelyek átlagosan körülbelül 4,67%-os használatot jelentettek.

    Példa CPU-részletekre.

  3. Teljes I/O

    Ez a szakasz három alszakaszból áll. Az első szakasz kiemeli az általános teljesítményadatokat, beleértve az olvasási és írási műveleteket is. A második és a harmadik szakasz külön kategóriákra osztotta az olvasási és írási műveleteket.

    Ebben a példában láthatja, hogy a teljes I/O-szám 234408 volt a 120 másodperces időtartam alatt. IOPS = 234408 /120 = 1953,30. Az átlagos késés 32,763 ezredmásodperc volt, az átviteli sebesség pedig 7,63 MiB/s volt. A korábbi információkból tudjuk, hogy az 1953.30 IOPS közel van a Standard_B2ms virtuális gépünkre vonatkozó 1920 IOPS korlátozáshoz. Nem hiszed el? Ha ezt a tesztet különböző paraméterekkel, például az üzenetsor mélységének növelésével futtatja újra, akkor azt fogja tapasztalni, hogy az eredmények továbbra is ezen a számon maradnak.

    Az utolsó három oszlop az IOPS szórását mutatja 17,72-nél (-D paramétertől), a késés szórását 20,994 ezredmásodpercben (-L paramétertől) és a fájl elérési útját.

    A példa a teljes I/O-teljesítményadatokat mutatja.

    Az eredmények alapján gyorsan megállapíthatja, hogy a klaszterkonfiguráció rossz. Láthatja, hogy az 5000 SSD-korlátozás előtt elérte az 1920-ra vonatkozó virtuálisgép-korlátozást. Ha nem a virtuális gép, hanem az SSD okozta a korlátozást, akár 20000 IOPS-t (4 meghajtó * 5000) is kihasználhatott volna azzal, hogy a tesztfájlt több meghajtóra átszeli.

    Végül el kell döntenie, hogy az adott számítási feladat milyen értékeket fogad el. Az alábbi ábra néhány fontos kapcsolatot mutat be, amelyek segítenek megfontolni a kompromisszumokat:

    Az ábrán a számítási feladatok közötti kapcsolatok kompromisszumoi láthatók.

    Az ábrán a második kapcsolat fontos, és néha Little's Law-nak is nevezik. A törvény bemutatja, hogy három jellemző szabályozza a folyamat viselkedését, és hogy csak az egyiket kell módosítania, hogy befolyásolja a másik kettőt, és így az egész folyamatot. Tehát, ha elégedetlen a rendszer teljesítményével, akkor három szabadságfokkal rendelkezik, hogy befolyásolja azt. A Little's Law azt diktálja, hogy a példánkban az IOPS az "átviteli sebesség" (bemeneti kimeneti műveletek másodpercenként), a késés az "üzenetsor ideje", az üzenetsor mélysége pedig a "leltár".

  4. Késés percentilis elemzése

    Ez az utolsó szakasz a tárolási teljesítmény művelettípusonkénti késéseit részletezi a minimális értéktől a maximális értékig.

    Ez a szakasz azért fontos, mert meghatározza az IOPS "minőségét". Megmutatja, hogy az I/O-műveletek közül hány tudott elérni egy bizonyos késési értéket. A percentilis elfogadható késésének eldöntése Önön múlik.

    A "kilences" a kilences számra utal. A "3-kilences" érték például a 99. percentilisnek felel meg. A kilences szám azt jelzi, hogy hány I/O-művelet futott ezen a percentilisen. Végül el fog érni egy pontot, ahol már nincs értelme komolyan venni a késési értékeket. Ebben az esetben láthatja, hogy a késési értékek állandóak maradnak a "4-9s" után. Ezen a ponton a késési érték a 234408 műveletek közül csak egy I/O-műveleten alapul.

    A példa a tárolási teljesítmény művelettípusonkénti késéseit mutatja be.

Megfontolandó szempontok

Most, hogy megkezdte a DISKSPD használatát, több szempontot is figyelembe kell venni a valós teszteredmények lekéréséhez. Ezek közé tartozik a beállított paraméterek figyelmes megfigyelése, a tárterület egészségi állapota és a változók figyelése, a CSV tulajdonjoga, valamint a DISKSPD és a fájlmásolás közötti különbség.

DISKSPD és valós világ

A DISKSPD mesterséges tesztje viszonylag összehasonlítható eredményeket ad a valós számítási feladathoz. Azonban nagy figyelmet kell fordítania a beállított paraméterekre, és hogy azok megfelelnek-e a valós forgatókönyvnek. Fontos tisztában lenni azzal, hogy a szintetikus számítási feladatok soha nem fogják tökéletesen képviselni az alkalmazás valós számítási feladatait az üzembe helyezés során.

Előkészítés

A DISKSPD-teszt futtatása előtt van néhány ajánlott művelet. Ezek közé tartozik a tárolóterület állapotának ellenőrzése, az erőforrás-használat ellenőrzése, hogy egy másik program ne zavarja a tesztet, és előkészítse a teljesítménykezelőt, ha további adatokat szeretne gyűjteni. Mivel azonban a témakör célja a DISKSPD gyors futtatása, nem veszi figyelembe ezeknek a műveleteknek a sajátosságait. További információ: Tárolóhelyek teljesítmény tesztelése szintetikus számítási feladatok használatával a Windows Serveren.

A teljesítményt befolyásoló változók

A tárolási teljesítmény kényes dolog. Ez azt jelenti, hogy számos változó befolyásolhatja a teljesítményt. Így valószínű, hogy olyan számmal találkozik, amely nem felel meg az elvárásainak. Az alábbiakban néhány olyan változót emelünk ki, amelyek befolyásolják a teljesítményt, bár ez nem átfogó lista:

  • Hálózati sávszélesség
  • Rugalmasság választása
  • Tárolólemez konfigurációja: NVME, SSD, HDD
  • I/O-puffer
  • Gyorsítótár
  • RAID-konfiguráció
  • Hálózati ugrások
  • Merevlemez orsósebességei

CSV tulajdonjoga

A csomópontot kötettulajdonosnak vagy koordinátorcsomópontnak nevezzük (a nem koordinátor csomópont az a csomópont, amely nem rendelkezik adott kötetekkel). Minden standard kötethez hozzá van rendelve egy csomópont, a többi csomópont pedig hálózati ugrásokkal érheti el ezt a standard kötetet, ami lassabb teljesítményt (nagyobb késést) eredményez.

Hasonlóképpen, a Cluster Shared Volume (CSV) is rendelkezik a "tulajdonossal". A CSV azonban "dinamikus" abban az értelemben, hogy minden alkalommal, amikor újraindítja a rendszert (RDP), a tulajdonosi viszony megváltozik. Ennek eredményeképpen fontos ellenőrizni, hogy a DISKSPD a CSV-t birtoklevő koordinátor csomópontról fut-e. Ha nem, előfordulhat, hogy manuálisan kell módosítania a CSV tulajdonjogát.

A CSV tulajdonjogának megerősítése:

  1. Ellenőrizze a tulajdonjogot a következő PowerShell-parancs futtatásával:

     Get-ClusterSharedVolume
    
  2. Ha a CSV tulajdonjoga helytelen (például Ön az 1. csomóponton van, de a Node2 a CSV tulajdonosa), helyezze át a CSV-t a megfelelő csomópontra a következő PowerShell-parancs futtatásával:

     Get-ClusterSharedVolume <INSERT_CSV_NAME> | Move-ClusterSharedVolume <INSERT _NODE_NAME>
    

Fájlmásolás és DISKSPD

Egyesek úgy vélik, hogy "tesztelhetik a tárolási teljesítményt" egy gigantikus fájl másolásával és beillesztésével, valamint annak mérésével, hogy mennyi ideig tart ez a folyamat. Ennek a megközelítésnek a fő oka valószínűleg az, hogy egyszerű és gyors. Az ötlet nem téves abban az értelemben, hogy egy adott számítási feladatot tesztel, de ezt a módszert nehéz a "tárolási teljesítmény tesztelése" kategóriába sorolni.

Ha a valós cél a fájlmásolási teljesítmény tesztelése, akkor ez lehet egy tökéletesen érvényes ok a módszer használatára. Ha azonban a cél a tárolási teljesítmény mérése, javasoljuk, hogy ne használja ezt a módszert. A fájlmásolási folyamat úgy képzelhető el, mintha a fájlszolgáltatásokra jellemző különböző "paramétereket" (például üzenetsort, párhuzamosítást stb.) használnánk.

Az alábbi rövid összefoglalás azt ismerteti, hogy miért nem feltétlenül adja meg a keresett eredményt a fájlmásolás a tárolási teljesítmény mérésére:

  • Előfordulhat, hogy a fájlmásolatok nem optimalizálhatók, két párhuzamossági szint fordul elő, az egyik belső, a másik külső. Belsőleg, ha a fájlpéldány egy távoli cél felé tart, a CopyFileEx motor némi párhuzamosítást alkalmaz. Külsőleg a CopyFileEx motor meghívásának különböző módjai vannak. A Fájlkezelő példányai például egyszálasak, de a Robocopy többszálas. Ezen okokból fontos megérteni, hogy a teszt következményei azok-e, amelyeket keres.

  • Minden másolatnak két oldala van. Fájl másolása és beillesztésekor két lemezt használhat: a forráslemezt és a céllemezt. Ha az egyik lassabb, mint a másik, lényegében a lassabb lemez teljesítményét méri. Vannak más esetek is, amikor a forrás, a cél és a másolási motor közötti kommunikáció egyedi módon befolyásolhatja a teljesítményt.

    További információ: A fájlmásolás használata a tárolási teljesítmény méréséhez.

Kísérletek és gyakori számítási feladatok

Ez a szakasz további példákat, kísérleteket és számítási feladattípusokat tartalmaz.

A koordinátor csomópont megerősítése

Ahogy korábban említettük, ha a jelenleg tesztelt virtuális gép nem rendelkezik a CSV-sel, teljesítménycsökkenés (IOPS, átviteli sebesség és késés) jelenik meg, szemben a teszteléssel, amikor a csomópont a CSV-t birtokolja. Ennek az az oka, hogy minden alkalommal, amikor kibocsát egy I/O-műveletet, a rendszer hálózati ugrást végez a koordinátor csomópontjához a művelet végrehajtásához.

Háromcsomópontos, háromirányú tükrözött helyzetben az írási műveletek mindig hálózati ugrást hajtanak végre, mivel a három csomópont összes meghajtóján tárolnia kell az adatokat. Ezért az írási műveletek ettől függetlenül hálózati ugrást hajtanak végre. Ha azonban más rugalmassági struktúrát használ, ez megváltozhat.

Íme egy példa:

  • Helyi csomóponton fut: diskspd.exe -t4 -o32 -b4k -r4k -w0 -Sh -D -L C:\ClusterStorage\test01\targetfile\IO.dat
  • Nem lokális csomóponton fut: diskspd.exe -t4 -o32 -b4k -r4k -w0 -Sh -D -L C:\ClusterStorage\test01\targetfile\IO.dat

Ebből a példából egyértelműen látható, hogy az alábbi ábrán látható, hogy a késés csökkent, az IOPS növekedett, és az átviteli sebesség növekedett, amikor a koordinátor csomópont a CSV tulajdonosa.

A példa a koordinátor csomópontjának adatkimenetét mutatja.

Online tranzakciófeldolgozási (OLTP) számítási feladat

Az online tranzakciós feldolgozási (OLTP) számítási feladatok lekérdezései (frissítés, beszúrás, törlés) a tranzakcióorientált tevékenységekre összpontosítanak. Az online elemzési feldolgozáshoz (OLAP) képest az OLTP a tárolási késéstől függ. Mivel minden művelet kevés I/O-problémát jelent, az a fontos, hogy másodpercenként hány művelet tartható fenn.

OLTP számítási feladattesztet is tervezhet, hogy a véletlenszerű, kis I/O-teljesítményre összpontosítson. Ezeknél a teszteknél koncentráljon arra, hogy milyen messzire tudja leküldni az átviteli sebességet, miközben fenntartja az elfogadható késéseket.

A számítási feladat teszteléséhez szükséges alapszintű kialakítási választásnak legalább a következőket kell tartalmaznia:

  • 8 KB blokkméret => az SQL Server adatfájljaihoz használt oldalmérethez hasonlít
  • 70% Olvasás, 30% Írás => hasonlít a tipikus OLTP-viselkedésre

Online analitikai feldolgozási (OLAP) munkafolyamat

Az OLAP-számítási feladatok az adatlekérésre és -elemzésre összpontosítanak, így a felhasználók összetett lekérdezéseket hajtanak végre a többdimenziós adatok kinyeréséhez. Az OLTP-vel ellentétben ezek a számítási feladatok nem érzékenyek a tárolási késésre. Hangsúlyozzák, hogy sok művelet sorba állítása anélkül történik, hogy sokat törődnének a sávszélességgel. Ennek eredményeképpen az OLAP-számítási feladatok gyakran hosszabb feldolgozási időt eredményeznek.

OLAP számítási feladattesztet is tervezhet, hogy a szekvenciális, nagy I/O-teljesítményre összpontosítson. Ezeknél a teszteknél az IOPS száma helyett a másodpercenként feldolgozott adatok mennyiségére kell összpontosítani. A késési követelmények szintén kevésbé fontosak, de ez szubjektív.

A számítási feladat teszteléséhez szükséges alapszintű kialakítási választásnak legalább a következőket kell tartalmaznia:

  • 512 KB blokkméret => hasonlít az I/O-méretre, amikor az SQL Server egy táblázatvizsgálathoz 64 adatlapot tartalmazó köteget tölt be az előreolvasási technikával.

  • Fájlonként 1 szál => jelenleg fájlonként egy szálra kell korlátoznia a tesztelést, mivel a DISKSPD-ben problémák léphetnek fel több szekvenciális szál tesztelése során. Ha egynél több szálat használ, például kettőt, és a -s paramétert, a szálak nem determinisztikus módon kezdenek végrehajtani az I/O-műveleteket egymásra rakva ugyanazon a helyen. Ennek az az oka, hogy mindegyik nyomon követi a saját szekvenciális eltolását.

    A probléma megoldásához két "megoldás" létezik:

    • Az első megoldás a -si paraméter használatát foglalja magában. Ezzel a paraméterrel mindkét szál egyetlen egymásba illesztett eltolással rendelkezik, így a szálak együttműködve egyetlen szekvenciális hozzáférési mintát adnak ki a célfájlhoz. Ez lehetővé teszi, hogy a fájl egyetlen pontja se legyen kezelve többször. Mivel azonban továbbra is versenyeznek egymással, hogy az I/O-műveletet kibocsátsák az üzenetsorba, előfordulhat, hogy a műveletek sorrendből érkeznek.

      Ez a megoldás akkor működik jól, ha egy szál cpu-korlátossá válik. Érdemes lehet egy második szálat is bevonni egy második processzormagra, hogy több tároló I/O-t biztosítson a processzorrendszernek, hogy tovább telíthesse azt.

    • A második megoldás a -T<eltolás> használatát foglalja magában. Ez lehetővé teszi, hogy megszabja az eltolás méretét (az I/O közötti rést) az ugyanazon a célfájlon különböző szálak által végrehajtott I/O-műveletek között. Például, a szálak általában a 0 eltolásnál kezdődnek, de ez a specifikáció lehetővé teszi, hogy a két szálat úgy távolítsuk el egymástól, hogy ne fedjék egymást. Minden többszálas környezetben a szálak valószínűleg a munkacél különböző részein lesznek, és ez a helyzet szimulálásának módja.

Következő lépések

A rugalmassági beállítások optimalizálásával kapcsolatos további információkért és részletes példákért lásd még: