Lemez teljesítménytesztelése

A következőkre vonatkozik: linuxos ✔️ virtuális gépek ✔️ Windows virtuális gépek ✔️ rugalmas méretezési ✔️ egységes méretezési készletekben

A teljesítménytesztek 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ű használatra tervezéssel kapcsolatos cikkben ismertetett lépésekkel összegyűjtötte az alkalmazás teljesítménykövetelményeit. Ha teljesítménytesztelő eszközöket futtat az alkalmazást üzemeltető virtuális gépeken, meghatározhatja, hogy az alkalmazás milyen teljesítményszinteket érhet el a prémium szintű SSD-k használatával. Ebben a cikkben példákat mutatunk be egy azure Standard_D8ds_v4 SD-ket üzembe Standard_D8ds_v4 virtuális gép teljesítményértékelésére.

Gyakran használtuk a DiskSpd és a FIO teljesítménytesztelő eszközöket a Windows linuxos rendszerekhez. Ezek az eszközök több szálat is elindítnak, amelyek egy éles számítási feladatot szimulálnak, és mérik a rendszer teljesítményét. Az eszközök használatával olyan paramétereket is konfigurálhat, mint a blokkméret és az üzenetsor mélysége, amelyek általában nem változtathatóak meg egy alkalmazás esetén. Ez nagyobb rugalmasságot biztosít, hogy a lehető legnagyobb teljesítményt tudja biztosítani a különböző típusú alkalmazás-számítási feladatokhoz prémium szintű SSD-kkel kiépített, nagy méretű virtuális gépeken. További információ az egyes teljesítménytesztelő eszközökről: DiskSpd és FIO.

Az alábbi példákat követve hozzon létre egy Standard_D8ds_v4, és csatoljon négy prémium szintű SSD-t a virtuális géphez. A négy lemez közül állítson be három gazdagép-gyorsítótárazást "Nincs" beállítással, és csíkja fel őket egy NoCacheWrites nevű kötetre. Konfigurálja a gazdagépek gyorsítótárazása csak olvashatóként a fennmaradó lemezen, és hozzon létre egy CacheReads nevű kötetet ezzel a lemezzel. Ezzel a beállítással láthatja a virtuális gép olvasási és írási Standard_D8ds_v4 teljesítményét. A prémium szintű SSD-Standard_D8ds_v4 létrehozásával kapcsolatos részletes lépésekért lásd: Nagy teljesítményű rendszer tervezése.

A gyorsítótár bemelegítése

A ReadOnly gazda-gyorsítótárazású lemez nagyobb IOPS-t tud adni, mint a lemez korlátja. A gazdagép gyorsítótára által maximális olvasási teljesítmény érdekében először be kellmelegítenünk a lemez gyorsítótárát. Ez biztosítja, hogy a teljesítményteszt eszköz által a cacheReads köteten meghajtó olvasási I/I/S-fájlok valójában a gyorsítótárba, és ne közvetlenül a lemezre oszlnak. 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 egyes újraindításakor be kell melegednie a gyorsítótárban, mielőtt teljesítményteszteket futtat.

DISKSPD

Töltse le a DISKSP eszközt a virtuális gépre. A DISKSPD egy olyan eszköz, amely testre szabható saját szintetikus számítási feladatok létrehozásához. A teljesítménytesztek futtatásához a fent leírt beállítást fogjuk használni. Módosíthatja a specifikációkat a különböző számítási feladatok teszteléséhez.

Ebben a példában az alábbi alapparamétereket használjuk:

  • -c200G: Létrehozza (vagy újra létrehozza) a tesztben használt mintafájlt. Beállítható bájtokban, KiB-ban, MiB-ban, GiB-ban vagy blokkokban. Ebben az esetben egy nagy méretű, 200 GiB-os célfájlt használ a memória-gyorsítótárazás minimalizálására.
  • -w100: Megadja az írási kérések műveleteinek százalékos arányát (a-w0 az olvasási műveletek 100%-ának felel meg).
  • -b4K: A blokk méretét jelzi bájtban, KiB-ben, MiB-ben vagy GiB-ban. Ebben az esetben 4K blokkmérettel szimulálunk egy véletlenszerű I/O-tesztet.
  • -F4: Összesen négy szálat állít be.
  • -r: A véletlenszerű I/O-tesztet jelzi (felülírja az -s paramétert).
  • -o128: A függőben lévő I/O-kérések célonkénti számát jelzi szálanként. Ez más néven az üzenetsor mélysége. Ebben az esetben a processzorterhelés a 128-as.
  • -W7200: A bemelegítés időtartamának megadása a mérések kezdete előtt.
  • -d30: A teszt időtartamát adja meg, a bemelegítés mellet.
  • -Sh: Tiltsa le a szoftverek és hardverek írási gyorsítótárazását (egyenértékű a -Suw értékével).

A paraméterek teljes listáját a GitHub tartalmazza.

Írási IOPS maximális mérete

Az írási műveletekhez magas, 128-as üzenetsormélységet, kis, 8 KB-os blokkméretet és négy munkaszálat használunk. Az írási dolgozók a "NoCacheWrites" kötet forgalmát vezetik, amely három lemezzel rendelkezik, amelyek gyorsítótára "Nincs" beállítással rendelkezik.

Futtassa a következő parancsot 30 másodpercig bemelegítve és 30 másodpercnyi méréssel:

diskspd -c200G -w100 -b8K -F4 -r -o128 -W30 -d30 -Sh testfile.dat

Az eredmények azt mutatják, Standard_D8ds_v4 virtuális gép a maximális írási IOPS-korlátja 12 800.

For 3208642560 total bytes, max total I/Os of 391680, with a total of 101.97 MiB/s, and a total of 13052.65 I/O per second.

Olvasási IOPS maximuma

Az olvasási műveletekhez magas, 128-as üzenetsormélységet, kis, négy KB méretű blokkméretet és négy munkaszálat használunk. Az olvasási dolgozók a "CacheReads" kötet forgalmát vezetik, amelynek egyik lemeze a "ReadOnly" (Csak olvasható) gyorsítótárral rendelkezik.

Futtassa a következő parancsot kétórás bemelegítésen és 30 másodperces mérésen:

diskspd -c200G -b4K -F4 -r -o128 -W7200 -d30 -Sh testfile.dat

Az eredmények azt mutatják, Standard_D8ds_v4 virtuális gép a maximális olvasási IOPS-korlátja 77 000.

For 9652785152 total bytes, there were 2356637 total I/Os, at 306.72 total MiB/s, and a total of 78521.23 I/Os per second.

Maximális átviteli sebesség

A maximális olvasási és írási átviteli sebesség érdekében nagyobb, 64 KB-os blokkméretre lehet módosítani.

FIO

A FIO egy népszerű eszköz a linuxos virtuális gépeken való tárolás teljesítménytesztjére. Rugalmasan választhat 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 munkaszálak vagy folyamatok végrehajtásához ad hozzá. Megadhatja, hogy az egyes munkaszálak milyen I/O-műveleteket hajtsanak végre feladatfájlokkal. Forgatókönyvenként egy feladatfájlt hoztunk létre, amely az alábbi példákban látható. Az ezekben a feladatfájlokban lévő specifikációkat módosíthatja a különböző számítási feladatok teljesítményértékeléséhez, amelyek a Prémium Storage. A példákban Ubuntut futtató Standard_D8ds_v4 használ. Használja ugyanazt a beállítást, mint a teljesítményteszt elején, és a teljesítménytesztek futtatása előtt bemelegíti a gyorsítótárat.

Mielőtt hozzákezd, töltse le a FIO-t, és telepítse a virtuális gépre.

Futtassa a következő parancsot Ubuntu,

apt-get install fio

Négy munkaszálat használunk az írási műveletekhez, négy feldolgozószálat pedig a lemezek olvasási műveleteinek vezetésére. Az írási dolgozók a "nocache" kötet forgalmát okják, amely három olyan lemezzel rendelkezik, amelyek gyorsítótára a "Nincs" beállításra van beállítva. Az olvasási dolgozók a "readcache" kötet forgalmát vezetik, amelynek egyik lemeze a "ReadOnly" gyorsítótárral rendelkezik.

Írási IOPS maximális mérete

Hozza létre a feladatfájlt az alábbi specifikációkkal az írási IOPS maximális értékének lekért értékével. Nevezze el "fiowrite.ini".

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

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

Figyelje meg a következő fontos dolgokat, amelyek összhangban vannak az előző szakaszokban tárgyalt tervezési irányelvekkel. Ezek a specifikációk elengedhetetlenek a maximális IOPS-értékhez,

  • Az üzenetsor magas mélysége 256.
  • Kis méretű, 4 KB méretű blokk.
  • Több szál véletlenszerű írásokat hajt végre.

Futtassa a következő parancsot a FIO-teszt 30 másodpercig való futtatásához.

sudo fio --runtime 30 fiowrite.ini

A teszt futtatása közben láthatja a virtuális gép és a Prémium írási IOPS-értékeket. Ahogy az alábbi mintában látható, az Standard_D8ds_v4 virtuális gép maximális írási IOPS-korlátja 12 800 IOPS.
Number of write IOPS VM and premium SSDs are delivering, shows that writes are 13.1k IOPS.

Olvasási IOPS maximuma

Hozza létre a feladatfájlt a következő specifikációkkal a maximális olvasási IOPS-érték érdekében. Nevezze el "fioread.ini".

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

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

Figyelje meg a következő fontos dolgokat, amelyek összhangban vannak az előző szakaszokban tárgyalt tervezési irányelvekkel. Ezek a specifikációk elengedhetetlenek a maximális IOPS-értékhez,

  • Az üzenetsor magas mélysége 256.
  • Kis méretű, 4 KB méretű blokk.
  • Több szál véletlenszerű írásokat hajt végre.

Futtassa a következő parancsot a FIO-teszt 30 másodpercig való futtatásához.

sudo fio --runtime 30 fioread.ini

A teszt futtatása közben láthatja a virtuális gép és a virtuális gép által Prémium olvasási IOPS-értékeket. Ahogy az alábbi mintában látható, az 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.
Screenshot of the number of write IOPS VM and premium SSDs are delivering, shows that reads are 78.6k.

Maximális olvasási és írási IOPS

Hozza létre a feladatfájlt a következő specifikációkkal a maximális olvasási és írási IOPS-értékhez. 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

Figyelje meg a következő fontos dolgokat, amelyek összhangban vannak az előző szakaszokban tárgyalt tervezési irányelvekkel. Ezek a specifikációk elengedhetetlenek a maximális IOPS-értékhez,

  • Az üzenetsor magas mélysége 128.
  • Kis méretű, 4 KB méretű blokk.
  • Több szál véletlenszerű olvasást és írást végez.

Futtassa a következő parancsot a FIO-teszt 30 másodpercig való futtatásához.

sudo fio --runtime 30 fioreadwrite.ini

A teszt futtatása közben láthatja a virtuális gép és a virtuális gép Prémium IOPS kombinált IOPS-ének számát. Ahogy az alábbi mintában látható, az Standard_D8ds_v4 virtuális gép több mint 90 000 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.
Combined read and write IOPS, shows that reads are 78.3k and writes are 12.6k IOPS.

Maximális kombinált átviteli sebesség

Az olvasási és írási átviteli sebesség maximális végrehajtásához használjon nagyobb blokkméretet és nagyobb üzenetsormélységet, több szálon pedig végezzen olvasási és írási műveleteket. 64 KB-os blokkméretet és 128-as üzenetsormélységet használhat.

Következő lépések

Folytassa a nagy teljesítményű tervezéssel kapcsolatos cikkel.

Ebben a cikkben a prototípushoz létrehozott 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ípus-alkalmazáson. Ezzel meghatározhatja, hogy melyik lemezajánlat felelhet meg az alkalmazás teljesítménykövetelményeinek, vagy meghaladhatja azt. Ezután ugyanezeket az irányelveket implementálja az éles alkalmazáshoz is.