Lemez teljesítménytesztelése
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek ✔️ Windows rendszerű virtuális gépek Rugalmas méretezési ✔️ csoportok ✔️ Egységes méretezési csoportok
A teljesítménymérés az alkalmazás különböző számítási feladatainak szimulálása és az egyes számítási feladatok alkalmazásteljesítményének mérése. A nagy teljesítményű cikk tervezésében leírt lépéseket követve összegyűjtötte az alkalmazásteljesítményre vonatkozó követelményeket. Az alkalmazást üzemeltető virtuális gépeken futó teljesítménymérő eszközök futtatásával meghatározhatja, hogy az alkalmazás milyen teljesítményszinteket érhet el prémium szintű SSD-kkel. Ebben a cikkben példákat mutatunk be egy Azure premium SSD-vel kiépített Standard_D8ds_v4 virtuális gép teljesítményértékelésére.
A DiskSpd és a FIO közös teljesítménytesztelési eszközöket használtunk Windowshoz és Linuxhoz. Ezek az eszközök több szálat hoznak létre, amelyek szimulálják az éles üzemet, például a számítási feladatokat, és mérik a rendszer teljesítményét. Az eszközökkel olyan paramétereket is konfigurálhat, mint a blokkméret és az üzenetsor mélysége, amelyeket egy alkalmazás esetében általában nem lehet módosítani. Ez nagyobb rugalmasságot biztosít a maximális teljesítmény eléréséhez egy prémium SSD-vel kiépített nagy méretű virtuális gépen a különböző típusú alkalmazás-számítási feladatokhoz. Ha többet szeretne megtudni az egyes teljesítménymutató-eszközökről, látogasson el a DiskSpd és a FIO webhelyre.
Az alábbi példák követéséhez hozzon létre egy Standard_D8ds_v4, és csatoljon négy prémium SSD-t a virtuális géphez. A négy lemez közül konfiguráljon hármat úgy, hogy a gazdagép gyorsítótárazása "None" legyen, és sztrafikozza őket egy NoCacheWrites nevű kötetbe. Konfigurálja a gazdagép gyorsítótárazását "ReadOnly" néven a fennmaradó lemezen, és hozzon létre egy CacheReads nevű kötetet ezzel a lemezzel. Ezzel a beállítással megtekintheti a maximális olvasási és írási teljesítményt egy Standard_D8ds_v4 virtuális gépről. A prémium szintű SSD-kkel rendelkező Standard_D8ds_v4 létrehozásának részletes lépéseit a nagy teljesítményű tervezés című témakörben találja.
A gyorsítótár bemelegedése
A ReadOnly-gazdagép gyorsítótárazásával rendelkező lemez nagyobb IOPS-t képes adni, mint a lemezkorlát. Ahhoz, hogy ez a maximális olvasási teljesítmény a gazdagép gyorsítótárából származjon, először fel kell melegítenie a lemez gyorsítótárát. Ez biztosítja, hogy az olvasási IO-k, amelyeket a teljesítménytesztelő eszköz a CacheReads-köteten fog vezetni, ténylegesen a gyorsítótárba kerülnek, és nem közvetlenül a lemezre. A gyorsítótár-találatok több IOPS-t eredményeznek az egyetlen gyorsítótár-kompatibilis lemezről.
Fontos
Mielőtt a virtuális gép minden újraindításakor teljesítményteszteket futtat, fel kell melegítenie a gyorsítótárat.
DISKSPD
Töltse le a DISKSP eszközt a virtuális gépen. A DISKSPD egy olyan eszköz, amelyet testre szabhat saját szintetikus számítási feladatok létrehozásához. A teljesítményértékelési tesztek futtatásához a fent ismertetett beállítást fogjuk használni. A különböző számítási feladatok teszteléséhez módosíthatja a specifikációkat.
Ebben a példában a következő alapkonfigurációs paramétereket használjuk:
- -c200G: Létrehozza (vagy újra létrehozza) a tesztben használt mintafájlt. Bájtokban, KiB-ben, MiB-ben, GiB-ben vagy blokkokban állítható be. Ebben az esetben a rendszer egy 200 GiB-célfájlból álló nagy fájlt használ a memória gyorsítótárazásának minimalizálására.
- -w100: 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).
- -b4K: A blokk méretét jelzi bájtban, KiB-ben, MiB-ben vagy GiB-ben. Ebben az esetben a rendszer 4K blokkméretet használ egy véletlenszerű I/O-teszt szimulálásához.
- -F4: Összesen négy szálat állít be.
- -r: A véletlenszerű I/O-tesztet jelzi (felülírja a -s paramétert).
- -o128: A függőben lévő I/O-kérések számát jelzi célként szálonként. Ezt az üzenetsor mélységének is nevezik. Ebben az esetben a 128-at használják a processzor terhelésére.
- -W7200: A bemelegítési idő időtartamát adja meg a mérések megkezdése előtt.
- -d30: A teszt időtartamát határozza meg, a bemelegítést nem beleértve.
- -Sh: A szoftveres és hardveres írási gyorsítótárazás letiltása (egyenértékű a -Suw-sal).
A paraméterek teljes listáját a GitHub-adattárban találja.
Írási IOPS maximális száma
Az írási műveletekhez nagy, 128-es üzenetsor-mélységet, 8 KB-os kis blokkméretet és négy feldolgozószálat használunk. Az írási feldolgozók a "NoCacheWrites" kötet forgalmát irányítják, amelynek három lemeze "Nincs" értékű gyorsítótárral rendelkezik.
Futtassa a következő parancsot 30 másodperc bemelegítésre és 30 másodperces mérésre:
diskspd -c200G -w100 -b8K -F4 -r -o128 -W30 -d30 -Sh testfile.dat
Az eredmények azt mutatják, hogy a Standard_D8ds_v4 virtuális gép maximális írási IOPS-korlátja 12 800.
Olvasási IOPS maximális száma
Az olvasási műveletekhez nagy, 128-os üzenetsor-mélységet, négy KB-os kis blokkméretet és négy feldolgozószálat használunk. Az olvasási feldolgozók a "CacheReads" kötet forgalmát irányítják, amelynek egy lemeze "ReadOnly" értékű gyorsítótárral rendelkezik.
Futtassa a következő parancsot két óra bemelegítésre és 30 másodperces mérésre:
diskspd -c200G -b4K -F4 -r -o128 -W7200 -d30 -Sh testfile.dat
Az eredmények azt mutatják, hogy a Standard_D8ds_v4 virtuális gép maximális olvasási IOPS-korlátja 77 000.
Maximális átviteli sebesség
A maximális olvasási és írási sebesség eléréséhez nagyobb, 64 KB-os blokkméretre válthat.
FIO
A FIO egy népszerű eszköz a Linux rendszerű virtuális gépeken való tárolás teljesítménymérésére. Rugalmasan választhatja ki a különböző I/O-méreteket, szekvenciális vagy véletlenszerű olvasásokat és írásokat. A megadott I/O-műveletek végrehajtásához feldolgozószálakat vagy folyamatokat hoz elő. Megadhatja, hogy az egyes munkaszálaknak milyen típusú I/O-műveleteket kell végrehajtaniuk feladatfájlok használatával. Forgatókönyvenként egy feladatfájlt hoztunk létre, amelyet az alábbi példák szemléltetnek. Az ezekben a feladatfájlokban szereplő specifikációkat módosíthatja, hogy a Premium Storage-on futó különböző számítási feladatokat mérje. A példákban egy Ubuntu-t futtató Standard_D8ds_v4 használunk. Használja ugyanazt a beállítást, amelyet a teljesítményteszt szakasz elején ismertetett, és a teljesítményteszt-tesztek futtatása előtt melegítse fel a gyorsítótárat.
Mielőtt hozzákezdene, töltse le a FIO-t, és telepítse a virtuális gépre.
Futtassa a következő parancsot az Ubuntuhoz,
apt-get install fio
Négy feldolgozószálat használunk az írási műveletek vezetéséhez, és négy feldolgozószálat az olvasási műveletek lemezeken való vezetéséhez. Az írási feldolgozók a forgalmat a "nocache" köteten vezetik, amelynek három lemeze "Nincs" gyorsítótárral rendelkezik. Az olvasási feldolgozók a forgalmat a "readcache" köteten vezetik, amelynek egy lemeze "ReadOnly" értékű gyorsítótárral rendelkezik.
Írási IOPS maximális száma
Hozza létre a feladatfájlt a következő specifikációkkal a maximális írási IOPS-érték eléréséhez. Nevezze el "fiowrite.ini"- nak.
[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4
[writer1]
rw=randwrite
directory=/mnt/nocache
Jegyezze fel az előző szakaszokban tárgyalt tervezési irányelveknek megfelelően a következő fontos tudnivalókat. Ezek a specifikációk elengedhetetlenek a maximális IOPS eléréséhez,
- A magas üzenetsor mélysége 256.
- Kis blokkméret 4 KB.
- Több szál véletlenszerű írást hajt végre.
Futtassa a következő parancsot a FIO-teszt 30 másodpercre történő elindításához,
sudo fio --runtime 30 fiowrite.ini
A teszt futtatása közben láthatja, hogy hány írási IOPS-t biztosít a virtuális gép és a Prémium lemez. Az alábbi mintában látható, hogy a Standard_D8ds_v4 virtuális gép maximális írási IOPS-korlátja 12 800 IOPS.
Olvasási IOPS maximális száma
Hozza létre a feladatfájlt az alábbi specifikációkkal a maximális olvasási IOPS-érték eléréséhez. Nevezze el "fioread.ini"- nak.
[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4
[reader1]
rw=randread
directory=/mnt/readcache
Jegyezze fel az előző szakaszokban tárgyalt tervezési irányelveknek megfelelően a következő fontos tudnivalókat. Ezek a specifikációk elengedhetetlenek a maximális IOPS eléréséhez,
- A magas üzenetsor mélysége 256.
- Kis blokkméret 4 KB.
- Több szál véletlenszerű írást hajt végre.
Futtassa a következő parancsot a FIO-teszt 30 másodpercre történő elindításához,
sudo fio --runtime 30 fioread.ini
A teszt futtatása közben láthatja, hogy hány olvasási IOPS-t biztosít a virtuális gép és a prémium szintű lemez. Az alábbi mintában látható, hogy a Standard_D8ds_v4 virtuális gép több mint 77 000 olvasási IOPS-t biztosít. Ez a lemez és a gyorsítótár teljesítményének kombinációja.
Az IOPS maximális olvasási és írási száma
Hozza létre a feladatfájlt az alábbi specifikációkkal a maximálisan kombinált olvasási és írási IOPS-érték eléréséhez. Nevezze el "fioreadwrite.ini"- nak.
[global]
size=30g
direct=1
iodepth=128
ioengine=libaio
bs=4k
numjobs=4
[reader1]
rw=randread
directory=/mnt/readcache
[writer1]
rw=randwrite
directory=/mnt/nocache
rate_iops=3200
Jegyezze fel az előző szakaszokban tárgyalt tervezési irányelveknek megfelelően a következő fontos tudnivalókat. Ezek a specifikációk elengedhetetlenek a maximális IOPS eléréséhez,
- A magas üzenetsor mélysége 128.
- Kis blokkméret 4 KB.
- Több szál véletlenszerű olvasást és írást végez.
Futtassa a következő parancsot a FIO-teszt 30 másodpercre történő elindításához,
sudo fio --runtime 30 fioreadwrite.ini
A teszt futtatása közben láthatja, hogy hány kombinált olvasási és írási IOPS-t szállít a virtuális gép és a prémium szintű lemez. Az alábbi mintában látható, hogy a Standard_D8ds_v4 virtuális gép több mint 90 000 kombinált olvasási és írási IOPS-t biztosít. Ez a lemez és a gyorsítótár teljesítményének kombinációja.
Maximális kombinált átviteli sebesség
A maximális kombinált olvasási és írási átviteli sebesség eléréséhez használjon nagyobb blokkméretet és nagy üzenetsor-mélységet több olvasási és írási szál használatával. A blokkméret 64 KB, az üzenetsor mélysége pedig 128.
Következő lépések
Folytassa a nagy teljesítményű tervezésről szóló cikkünkkel.
Ebben a cikkben egy, a prototípushoz használt meglévő alkalmazáshoz hasonló ellenőrzőlistát hoz létre. A teljesítménymérési eszközökkel szimulálhatja a számítási feladatokat, és mérheti a teljesítményt a prototípusalkalmazáson. Ezzel meghatározhatja, hogy melyik lemezajánlat felelhet meg vagy haladhatja meg az alkalmazás teljesítményére vonatkozó követelményeket. Ezután ugyanazokat az irányelveket implementálhatja az éles alkalmazáshoz.