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 ✔️ csoportjai Egységes méretezési csoportok ✔️

A teljesítménytesztelé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ű tervezésről szóló cikkben 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énytesztelő eszközök futtatásával meghatározhatja, hogy az alkalmazás milyen teljesítményszinteket érhet el a prémium SSD-k használatával. 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 Windows és Linux rendszeren. Ezek az eszközök több szálat is létrehoznak, 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 általában nem tud módosítani egy alkalmazás esetében. Ez nagyobb rugalmasságot biztosít a maximális teljesítmény eléréséhez a prémium SSD-kkel kiépített nagy léptékű virtuális gépeken a különböző típusú alkalmazás-számítási feladatokhoz. Ha többet szeretne megtudni az egyes teljesítménytesztelési 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 hármat konfiguráljon úgy, hogy a gazdagép gyorsítótárazása "Nincs" legyen, és a NoCacheWrites nevű kötetre sztriptízelje őket. Konfigurálja a gazdagép gyorsítótárazását "ReadOnly" értékre 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 SSD-kkel rendelkező Standard_D8ds_v4 létrehozásának részletes lépéseit lásd: Nagy teljesítményű tervezés.

A gyorsítótár bemelegedése

A ReadOnly gazdagép gyorsítótárazásával rendelkező lemez nagyobb IOPS-t tud 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ül, é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

A virtuális gép minden újraindításakor fel kell melegítenie a gyorsítótárat, mielőtt teljesítményteszteket futtat.

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énytesztek futtatásához ugyanazt a fent leírt 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 az alábbi alapkonfigurációs paramétereket használjuk:

  • -c200G: Létrehozza (vagy újra létrehozza) a tesztben használt mintafájlt. Beállítható bájtokban, KiB-ben, MiB-ben, GiB-ben vagy blokkokban. Ebben az esetben egy nagyméretű, 200 GiB-célfájlból álló fájlt használunk a memória gyorsítótárazásának minimalizálására.
  • -w100: A műveletek írási kérelmek százalékos arányát adja meg (a-w0 100%-os olvasási értékkel egyenértékű).
  • -b4K: A blokkméret bájtban, KiB-ben, MiB-ben vagy GiB-ben kifejezve. Ebben az esetben 4K blokkméretet használunk egy véletlenszerű I/O-teszt szimulálására.
  • -F4: Összesen négy szálat állít be.
  • -r: A véletlenszerű I/O-tesztet jelzi (felülbírálja az -s paramétert).
  • -o128: A függőben lévő I/O-kérések szálonkénti számát jelzi. Ezt az üzenetsor mélységének is nevezik. Ebben az esetben a 128 a processzor terhelésére szolgál.
  • -W7200: A bemelegítési idő időtartamát adja meg a mérések megkezdése előtt.
  • -d30: A vizsgálat időtartamát adja meg, a bemelegítést nem beleértve.
  • -Sh: Tiltsa le a szoftveres és hardveres írási gyorsítótárazást (egyenértékű a -Suw-zal).

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

Írási IOPS maximális száma

Az írási műveletek végrehajtásához nagy, 128-es üzenetsormélység, 8 KB-os kis blokkméret és négy munkaszál használható. 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.

3208642560 összes bájt esetében a maximális I/OS értéke 391680, összesen 101,97 MiB/s és összesen 13052,65 I/O másodpercenként.

Maximális olvasási IOPS

Az olvasási műveletek végrehajtásához nagy, 128-es üzenetsormélység, négy KB-os kis blokkméret és négy munkaszál használható. Az olvasási feldolgozók irányítják a forgalmat a "CacheReads" köteten, amelynek egy lemezén a gyorsítótár "ReadOnly" értékre van állítva.

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.

A 9652785152 teljes bájtok esetében 2356637 teljes I/Os volt, összesen 306,72 MiB/s és összesen 78521,23 I/Os/s másodpercenként.

Maximális átviteli sebesség

A maximális olvasási és írási átviteli sebesség eléréséhez egy nagyobb, 64 KB-os blokkméretre válthat.

FIO

A FIO egy népszerű eszköz a Linux rendszerű virtuális gépeken történő tárolás összehasonlítására. Rugalmasan választhatja ki a különböző I/O-méreteket, szekvenciális vagy véletlenszerű olvasásokat és írásokat. Munkaszálakat vagy folyamatokat hozat a megadott I/O-műveletek végrehajtásához. 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. A feladatfájlok specifikációit módosíthatja, hogy a Premium Storage 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 leírt, és a teljesítménytesztek 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 Ubuntu esetében:

apt-get install fio

Négy munkaszálat használunk az írási műveletek vezetéséhez, és négy munkaszálat az olvasási műveletek meghajtóihoz a lemezeken. Az írási feldolgozók a "nocache" kötet forgalmát irányítják, amelynek három lemeze "Nincs" értékű gyorsítótárral rendelkezik. Az olvasási feldolgozók irányítják a forgalmat a "readcache" köteten, amelynek egy lemezén a gyorsítótár "ReadOnly" értékre van állítva.

Írási IOPS maximális száma

Hozza létre a feladatfájlt az alábbi specifikációkkal a maximális írási IOPS eléréséhez. Adja neki a "fiowrite.ini" nevet.

[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4

[writer1]
rw=randwrite
directory=/mnt/nocache

Figyelje meg az előző szakaszokban tárgyalt tervezési irányelveknek megfelelő legfontosabb tudnivalókat. Ezek a specifikációk elengedhetetlenek a maximális IOPS eléréséhez,

  • Az üzenetsor nagy mélysége 256.
  • Egy 4 KB-os kis blokkméret.
  • Több szál hajt végre véletlenszerű írásokat.

Futtassa a következő parancsot a FIO-teszt 30 másodperces 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 szállít a virtuális gép és a prémium szintű lemez. Az alábbi példában látható, hogy a Standard_D8ds_v4 virtuális gép 12 800 IOPS-os maximális írási IOPS-korlátot biztosít.
Az írási IOPS virtuális gépek és a prémium SSD-k száma 13,1 ezer IOPS-t mutat.

Maximális olvasási IOPS

Hozza létre a feladatfájlt az alábbi specifikációkkal a maximális olvasási IOPS eléréséhez. Adja neki a "fioread.ini" nevet.

[global]
size=30g
direct=1
iodepth=256
ioengine=libaio
bs=4k
numjobs=4

[reader1]
rw=randread
directory=/mnt/readcache

Figyelje meg az előző szakaszokban tárgyalt tervezési irányelveknek megfelelő legfontosabb tudnivalókat. Ezek a specifikációk elengedhetetlenek a maximális IOPS eléréséhez,

  • Az üzenetsor nagy mélysége 256.
  • Egy 4 KB-os kis blokkméret.
  • Több szál hajt végre véletlenszerű írásokat.

Futtassa a következő parancsot a FIO-teszt 30 másodperces 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 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 77 000 olvasási IOPS-t biztosít. Ez a lemez és a gyorsítótár teljesítményének kombinációja.
Képernyőkép az írási IOPS virtuális gépek és a prémium SSD-k kézbesítésének számáról, amelyen az olvashatóság 78,6k.

Olvasási és írási IOPS maximális száma

Hozza létre a feladatfájlt az alábbi specifikációkkal a maximális kombinált olvasási és írási IOPS eléréséhez. Nevezze el "fioreadwrite.ini".

[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ő legfontosabb tudnivalókat. Ezek a specifikációk elengedhetetlenek a maximális IOPS eléréséhez,

  • A magas üzenetsor mélysége 128.
  • Egy 4 KB-os kis méretű blokk.
  • Több szál véletlenszerű olvasást és írást hajt végre.

Futtassa a következő parancsot a FIO-teszt 30 másodperces elindításához,

sudo fio --runtime 30 fioreadwrite.ini

Amíg a teszt fut, láthatja a virtuális gép és a prémium szintű lemezek által szállított kombinált olvasási és írási IOPS-k számát. Ahogy az alábbi mintában látható, 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.
Az IOPS kombinált olvasási és írási adatai azt mutatják, hogy az olvasások 78,3k, az írások pedig 12,6 ezer IOPS-t jelentenek.

Maximális kombinált átviteli sebesség

A maximális összesített 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 szálat használva, amely olvasásokat és írásokat végez. 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 a prototípus meglévő alkalmazásához hasonló ellenőrzőlistát hoz létre. A teljesítményértékelési eszközökkel szimulálhatja a számítási feladatokat, és mérheti a teljesítményt a prototípus-alkalmazáson. Ezzel meghatározhatja, hogy melyik lemezajánlat felelhet meg az alkalmazás teljesítményének, vagy meghaladhatja azt. Ezután ugyanazokat az irányelveket alkalmazhatja az éles alkalmazáshoz.