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.
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.
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.
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.
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.
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.