Az Azure-fájlmegosztás teljesítményének megismerése és optimalizálása
Az Azure Files képes megfelelni a legtöbb alkalmazás és használati eset teljesítménykövetelményeinek. Ez a cikk ismerteti azokat a különböző tényezőket, amelyek befolyásolhatják a fájlmegosztások teljesítményét, és hogyan optimalizálhatók az Azure-fájlmegosztások teljesítménye a számítási feladathoz.
A következőre érvényes:
Fájlmegosztás típusa | SMB | NFS |
---|---|---|
Standard szintű fájlmegosztások (GPv2), LRS/ZRS | ![]() |
![]() |
Standard szintű fájlmegosztások (GPv2), GRS/GZRS | ![]() |
![]() |
Prémium fájlmegosztások (FileStorage), LRS/ZRS | ![]() |
![]() |
Szószedet
A cikk elolvasása előtt hasznos megérteni a tárolási teljesítményre vonatkozó néhány fontos kifejezést:
IO-műveletek másodpercenként (IOPS)
Az IOPS vagy a másodpercenkénti bemeneti/kimeneti műveletek a fájlrendszerműveletek másodpercenkénti számát mérik. Az "IO" kifejezés az Azure Files dokumentációjában található "művelet" és "tranzakció" kifejezésekkel van összefüggésben.
I/O-méret
Az I/O-méret (más néven blokkméret) annak a kérésnek a mérete, amelyet egy alkalmazás egyetlen bemeneti/kimeneti (I/O) művelet végrehajtására használ a tárterületen. Az alkalmazástól függően az I/O mérete a nagyon kis méretektől, például a 4 KiB-től a sokkal nagyobb méretekig terjedhet. Az I/O-méret jelentős szerepet játszik az elérhető átviteli sebességben.
Átviteli sebesség
Az átviteli sebesség a tárolóból beolvasott vagy a tárolóba írt bitek másodpercenkénti számát méri, és másodpercenkénti mebibyte-ben (MiB/s) méri. Az átviteli sebesség kiszámításához szorozza meg az IOPS-t az I/O méretével. Például 10 000 IOPS * 1 MiB I/O méret = 10 GiB/s, míg 10 000 IOPS * 4 KiB I/O méret = 38 MiB/s.
Késés
A késés a késés szinonimája, és általában ezredmásodpercben (ms) mérik. A késésnek két típusa van: a végpontok közötti késés és a szolgáltatás késése. További információ: Késés.
Üzenetsor mélysége
A várólista mélysége azoknak a függőben lévő I/O-kérelmeknek a száma, amelyeket egy tárerőforrás egyszerre képes kezelni. További információ: Üzenetsor mélysége.
Teljesítményszint kiválasztása használati minták alapján
Az Azure Files számos tárolási szintet biztosít, amelyek segítenek csökkenteni a költségeket azáltal, hogy lehetővé teszik az adatok tárolását a megfelelő teljesítmény- és árszinten. A legmagasabb szinten az Azure Files két teljesítményszintet kínál: standard és prémium szintet. A standard fájlmegosztások merevlemez-meghajtók (HDD) által támogatott tárolórendszeren vannak tárolva, míg a prémium szintű fájlmegosztásokat szilárdtest-meghajtók (SSD) biztosítják a jobb teljesítmény érdekében. A standard fájlmegosztások több tárolási szinttel (tranzakcióoptimalizált, gyakori és ritka elérésű) rendelkeznek, amelyek között zökkenőmentesen mozoghat, hogy maximalizálja az inaktív tárterület adatait és a tranzakciós árakat. A standard és a prémium szintű szintek közötti váltás azonban nem lehetséges anélkül, hogy fizikailag migrálhatja az adatokat a különböző tárfiókok között.
A standard és a prémium szintű fájlmegosztások közötti választáskor fontos megérteni az Azure Fileson futtatni kívánt várható használati minta követelményeit. Ha nagy mennyiségű IOPS-t, rendkívül gyors adatátviteli sebességet vagy nagyon alacsony késést igényel, akkor prémium Szintű Azure-fájlmegosztásokat kell választania.
Az alábbi táblázat a standard és a prémium szintű teljesítménycélokat foglalja össze. További részletekért tekintse meg az Azure Files méretezhetőségét és teljesítménycéljait.
Használati minta követelményei | Standard | Prémium |
---|---|---|
Írási késés (egyjegyű ezredmásodperc) | Igen | Igen |
Olvasási késés (egyjegyű ezredmásodperc) | Nem | Igen |
A prémium szintű fájlmegosztások olyan kiépítési modellt kínálnak, amely a megosztás mérete alapján garantálja a következő teljesítményprofilt. További információ: Kiépített modell. A kipukkasztott kreditek akkor halmozódnak fel egy burst gyűjtőben, ha a fájlmegosztás forgalma az alapkonfiguráció IOPS-érték alatt van. A megtermelt krediteket később a rendszer a kipukkadás engedélyezéséhez használja fel, ha a műveletek túllépnék az alapszintű IOPS-t.
Kapacitás (GiB) | Alapterv IOPS | Burst IOPS | Kipukkanó kreditek | Átviteli sebesség (bejövő forgalom + kimenő forgalom) |
---|---|---|---|---|
100 | 3,100 | Legfeljebb 10 000 | 24,840,000 | 110 MiB/s |
500 | 3 500 | Legfeljebb 10 000 | 23,400,000 | 150 MiB/s |
1,024 | 4,024 | Legfeljebb 10 000 | 21,513,600 | 203 MiB/s |
5,120 | 8120 | Legfeljebb 15 360 | 26,064,000 | 613 MiB/s |
10,240 | 13,240 | Legfeljebb 30 720 | 62,928,000 | 1,125 MiB/s |
33,792 | 36,792 | Legfeljebb 100 000 | 227,548,800 | 3480 MiB/s |
51,200 | 54,200 | Legfeljebb 100 000 | 164,880,000 | 5220 MiB/s |
102,400 | 100 000 | Legfeljebb 100 000 | 0 | 10 340 MiB/s |
Teljesítmény-ellenőrzőlista
Akár új, akár meglévő számítási feladat teljesítménykövetelményeit értékeli, a használati minták megértése segít a kiszámítható teljesítmény elérésében. A következő használati minták meghatározásához forduljon a tár rendszergazdájához vagy az alkalmazás fejlesztőjéhez.
Késési érzékenység: A felhasználók fájlokat nyitnak meg, vagy az Azure Fileson futó virtuális asztalokkal dolgoznak? Ezek olyan számítási feladatok, amelyek érzékenyek az olvasási késésre, és magas láthatóságot biztosítanak a végfelhasználók számára. Az ilyen típusú számítási feladatok jobban megfelelnek a prémium Szintű Azure-fájlmegosztásoknak, ami egy ezredmásodpercnyi késést biztosít az olvasási és írási műveletekhez (< 2 ms kis I/O-méret esetén).
IOPS- és átviteli sebességre vonatkozó követelmények: A prémium szintű fájlmegosztások nagyobb IOPS- és átviteli sebességkorlátokat támogatnak, mint a normál fájlmegosztások. További információkért tekintse meg a fájlmegosztási skálázási célokat .
Számítási feladatok időtartama és gyakorisága: A rövid (perc) és a ritkán (óránkénti) számítási feladatok kisebb valószínűséggel érik el a standard fájlmegosztások felső teljesítménykorlátját a hosszú ideig futó, gyakran előforduló számítási feladatokhoz képest. Prémium szintű fájlmegosztások esetén a számítási feladatok időtartama hasznos a megfelelő teljesítményprofil meghatározásakor a kiépítési méret alapján. Attól függően, hogy mennyi ideig kell kipukkannia a számítási feladatnak, és mennyi ideig kell az alapszintű IOPS alatt töltenie, meghatározhatja, hogy elegendő kiugró kreditet halmoz-e fel ahhoz, hogy folyamatosan kielégítse a számítási feladatot csúcsidőben. A megfelelő egyenleg megtalálása csökkenti a költségeket a fájlmegosztás túlkiépítéséhez képest. Gyakori hiba a teljesítménytesztek futtatása néhány percig, ami gyakran félrevezető. Ahhoz, hogy reális képet kapjon a teljesítményről, győződjön meg arról, hogy elég nagy gyakorisággal és időtartamon tesztel.
Számítási feladatok párhuzamosítása: Az olyan számítási feladatok esetében, amelyek párhuzamosan, például több szálon, folyamaton vagy alkalmazáspéldányon keresztül hajtanak végre műveleteket ugyanazon ügyfélen, a prémium szintű fájlmegosztások egyértelmű előnyt biztosítanak a standard fájlmegosztásokkal szemben: SMB Multichannel. További információt az SMB Azure-fájlmegosztás teljesítményének javítása című témakörben talál.
API-műveletek eloszlása: A számítási feladatok metaadatai nagyok a fájlmegnyitási/-bezárási műveletekkel? Ez gyakran előfordul olyan számítási feladatok esetében, amelyek olvasási műveleteket végeznek nagy számú fájlon. Lásd a metaadatokat vagy a névtér nagy számítási feladatait.
Késés
Ha a késésre gondol, először is fontos tisztában lenni azzal, hogy az Azure Files hogyan határozza meg a késést. A leggyakoribb mérések a végpontok közötti késéssel és a szolgáltatás késésével kapcsolatos metrikák. Ezeknek a tranzakciómetrikáknak a használatával azonosíthatja az ügyféloldali késéssel és/vagy hálózatkezeléssel kapcsolatos problémákat azáltal, hogy meghatározza, hogy az alkalmazás forgalma mennyi időt tölt az ügyfél felé és az ügyfélről való átvitel során.
A végpontok közötti késés (SuccessE2ELatency) az a teljes idő, amíg egy tranzakció teljes körű utazást végez az ügyféltől a hálózaton keresztül az Azure Files szolgáltatásig, majd vissza az ügyfélhez.
A szolgáltatás késése (SuccessServerLatency) az az idő, amelyet egy tranzakció csak az Azure Files szolgáltatáson belül bonyolíthat le. Ez nem tartalmaz ügyfél- vagy hálózati késést.
A SuccessE2ELatency és a SuccessServerLatency értékek közötti különbség a hálózat és/vagy az ügyfél által valószínűleg okozott késés.
Gyakran összekeverjük az ügyfél késését a szolgáltatás késésével (ebben az esetben az Azure Files teljesítményével). Ha például a szolgáltatás késése alacsony késést jelez, és a végpontok közötti adatforgalom nagyon nagy késést jelent a kérések esetében, az azt jelzi, hogy az ügyfél felé és az ügyfélről való átvitel során minden időt az Azure Files szolgáltatásban kell tölteni, nem pedig az Azure Files szolgáltatásban.
Továbbá, ahogy az ábrán látható, minél messzebb van a szolgáltatástól, annál lassabb lesz a késési élmény, és annál nehezebb lesz teljesítményskálázási korlátokat elérni bármely felhőszolgáltatással. Ez különösen igaz az Azure Files helyszíni elérésére. Bár az ExpressRoute-hoz hasonló lehetőségek ideálisak a helyszíni környezetekhez, még mindig nem egyeznek a kizárólag ugyanabban az Azure-régióban futó alkalmazások (számítási és tárolási) teljesítményével.
Tipp.
Az Azure-beli virtuális gépek használata a helyszíni és az Azure közötti teljesítmény teszteléséhez hatékony és gyakorlati módszer az Azure-beli kapcsolat hálózati képességeinek alapkonfigurációjára. A számítási feladatokat gyakran lelassíthatja egy alulméretezett vagy helytelenül irányított ExpressRoute-kapcsolatcsoport vagy VPN-átjáró.
Üzenetsor mélysége
Az üzenetsor mélysége a tárerőforrás által kiszolgálható, nem teljesíthető I/O-kérések száma. Mivel a tárolórendszerek által használt lemezek a HDD-orsóktól (IDE, SATA, SAS) a szilárd állapotú eszközökig (SSD, NVMe) fejlődtek, a nagyobb üzenetsormélység támogatása érdekében is fejlődtek. Egy olyan számítási feladat, amely egyetlen ügyfélből áll, amely egy nagy adatkészleten belül egyetlen fájllal kommunikál, az alacsony üzenetsor-mélység példája. Ezzel szemben a több szálat és több fájlt tartalmazó párhuzamosságot támogató számítási feladatok könnyen elérhetik a magas üzenetsor-mélységet. Mivel az Azure Files egy elosztott fájlszolgáltatás, amely több ezer Azure-fürtcsomópontra terjed ki, és úgy van kialakítva, hogy nagy léptékű számítási feladatokat futtasson, javasoljuk, hogy magas üzenetsor-mélységű számítási feladatokat építsen ki és teszteljen.
A magas várólista-mélység számos különböző módon érhető el az ügyfelekkel, fájlokkal és szálakkal kombinálva. A számítási feladat várólista-mélységének meghatározásához szorozza meg az ügyfelek számát a fájlok számával a szálak számával (ügyfelek * fájlok * szálak = üzenetsormélység).
Az alábbi táblázat azokat a kombinációkat mutatja be, amelyekkel magasabb üzenetsormélység érhető el. Bár túllépheti a 64-et az optimális üzenetsormélységen, nem javasoljuk. Ha mégis, akkor nem fog több teljesítménynövekedést látni, és a TCP telítettsége miatt megnövekedett késést kockáztat.
Ügyfelek | Fájlok | Szálak | Üzenetsor mélysége |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 2 | 2 |
0 | 2 | 2 | 4 |
2 | 2 | 2 | 8 |
2 | 2 | 4 | 16 |
2 | 4 | 4 | 32 |
0 | 8 | 8 | 64 |
4 | 4 | 2 | 64 |
Tipp.
A felső teljesítménykorlátok eléréséhez győződjön meg arról, hogy a számítási feladat vagy a teljesítményértékelési teszt többszálú, több fájlból áll.
Egyszálas és többszálas alkalmazások
Az Azure Files leginkább többszálas alkalmazásokhoz használható. A többszálas feldolgozás számítási feladatra gyakorolt teljesítményre gyakorolt hatásának megértésének legegyszerűbb módja az, ha végigvezeti a forgatókönyvet az I/O-n keresztül. Az alábbi példában van egy számítási feladatunk, amely 10 000 kis fájlt kell a lehető leggyorsabban átmásolnia egy Azure-fájlmegosztásba vagy onnan.
Ez a táblázat lebontja a szükséges időt (ezredmásodpercben), hogy egyetlen 16 KiB-fájlt hozzon létre egy Azure-fájlmegosztáson egy egyszálas alkalmazás alapján, amely 4 KiB-blokkméretben ír.
I/O-művelet | Létrehozás | 4 KiB írás | 4 KiB írás | 4 KiB írás | 4 KiB írás | Bezár | Teljes |
---|---|---|---|---|---|---|---|
Szál 1 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Ebben a példában körülbelül 14 ms-ot vesz igénybe egyetlen 16 KiB-fájl létrehozása a hat műveletből. Ha egy egyszálas alkalmazás 10 000 fájlt szeretne áthelyezni egy Azure-fájlmegosztásba, az 140 000 ms -ra (14 ms * 10 000) vagy 140 másodpercre fordítódik, mivel az egyes fájlokat egymás után helyezi át egymás után. Ne feledje, hogy az egyes kérések kiszolgálásának idejét elsősorban az határozza meg, hogy a számítás és a tárterület milyen közel van egymáshoz, ahogyan azt az előző szakaszban tárgyaltuk.
Ha egy helyett nyolc szálat használ, a fenti számítási feladat 140 000 ms-ról (140 másodpercről) 17 500 ms-ra (17,5 másodpercre) csökkenthető. Ahogy az alábbi táblázat is mutatja, ha egyszerre nyolc fájlt helyez át párhuzamosan egy fájl helyett, ugyanazt az adatmennyiséget 87,5%-kal kevesebb idő alatt helyezheti át.
I/O-művelet | Létrehozás | 4 KiB írás | 4 KiB írás | 4 KiB írás | 4 KiB írás | Bezár | Teljes |
---|---|---|---|---|---|---|---|
Szál 1 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 2 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 3 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 4 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 5 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 6 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 7 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Szál 8 | 3 ms | 2 ms | 2 ms | 2 ms | 2 ms | 3 ms | 14 ms |
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: