Virtuálisgép- és lemezteljesítmény
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
Ez a cikk segít tisztázni a lemez teljesítményét és működését az Azure-beli virtuális gépek és az Azure-lemezek kombinálásakor. Azt is ismerteti, hogyan diagnosztizálhatja a lemez I/O-jának szűk keresztmetszeteit, valamint a teljesítményre optimalizálható módosításokat.
Hogyan működik a lemezteljesítmény?
Az Azure-beli virtuális gépek esetében a bemeneti/kimeneti műveletek másodpercenkénti számára (IOPS) és az átviteli teljesítményre vonatkozóan a virtuális gép típusán és méretén alapuló korlátok vannak érvényben. A virtuális gépekhez operációsrendszer-lemezek és adatlemezek csatlakoztathatók. A lemezekre saját IOPS és átviteli sebességi korlátok vonatkoznak.
Ha az alkalmazás nagyobb IOPS-t vagy átviteli sebességet igényel annál, mint ami a virtuális gépekhez vagy a csatlakoztatott lemezekhez ki van osztva, a teljesítménye korlátozva lesz. Ha az alkalmazás korlátozva van, az optimálisnál rosszabb teljesítménnyel működik. Ez negatív következményekhez, például nagyobb késéshez vezethet. Tekintsünk át néhány példát ezen fogalom tisztázásához. A példák egyszerűbb követhetősége érdekében csak az IOPS-t fogjuk megvizsgálni. De ugyanez a logika vonatkozik az átviteli sebességre is.
Lemez I/O-korlátja
Beállít:
- Standard_D8s_v3
- Nem csatlakoztatott IOPS: 12 800
- E30 operációsrendszer-lemez
- IOPS: 500
- Két E30-adatlemez × 2
- IOPS: 500
A virtuális gépen futó alkalmazás olyan kérelmet küld, amely 10 000 IOPS-t igényel a virtuális géphez. Mindezt a virtuális gép engedélyezi, mert a Standard_D8s_v3 virtuális gép akár 12 800 IOPS-t is végrehajthat.
A 10 000 IOPS-kérés három különböző kérésre oszlik a különböző lemezekre:
- A rendszer 1000 IOPS-t kér az operációs rendszer lemezére.
- Minden adatlemezre 4500 IOPS-t kérünk.
Minden csatlakoztatott lemez E30 lemez, és csak 500 IOPS-t képes kezelni. Így 500 IOPS-val válaszolnak. Az alkalmazás teljesítményét a csatlakoztatott lemezek leképezik, és csak 1500 IOPS-t képes feldolgozni. Az alkalmazás 10 000 IOPS-os csúcsteljesítményen működhet, ha jobb teljesítményű lemezeket használ, például Prémium SSD P30-lemezeket.
Virtuális gépek I/O-korlátja
Beállít:
- Standard_D8s_v3
- Nem csatlakoztatott IOPS: 12 800
- P30 operációsrendszer-lemez
- IOPS: 5000
- Két P30-adatlemez × 2
- IOPS: 5000
A virtuális gépen futó alkalmazás 15 000 IOPS-t igénylő kérelmet küld. Sajnos a Standard_D8s_v3 virtuális gép csak 12 800 IOPS kezelésére van kiépítve. Az alkalmazást a virtuálisgép-korlátok szabják meg, és a kiosztott 12 800 IOPS-t kell lefoglalnia.
A kért 12 800 IOPS három különböző kérelemre oszlik a különböző lemezekre vonatkozóan:
- A rendszer 4267 IOPS-t kér az operációs rendszer lemezére.
- Minden adatlemezre 4266 IOPS-t kérünk.
Minden csatlakoztatott lemez P30 lemez, amely 5000 IOPS-t képes kezelni. Tehát a kért összegekkel válaszolnak.
A virtuális gép nem gyorsítótárazott és gyorsítótárazott korlátai
A prémium szintű és a prémium szintű tárterület-gyorsítótárazáshoz egyaránt engedélyezett virtuális gépek két különböző tárolási sávszélesség-korlátot használnak. Tekintsük meg példaként a Standard_D8s_v3 virtuális gépet. A Dsv3-sorozat dokumentációja és a Standard_D8s_v3:
A távoli tárterület alatt található "Nem gyorsítótárazott" lemezadatok a virtuális gép által kezelhető alapértelmezett maximális tárterületkorlátok.
A Helyi tároló lap "Gyorsítótárazott" lemezadatai külön korlátok, amikor engedélyezi a gazdagépek gyorsítótárazását.
A gazdagép gyorsítótárazása úgy működik, hogy közelebb hozza a tárolót a virtuális géphez, amely gyorsan írható vagy olvasható. A virtuális gép számára a gazdagép gyorsítótárazásához rendelkezésre álló tárterület a dokumentációban található. Láthatja például, hogy a Standard_D8s_v3 200 GiB gyorsítótár-tárterülettel rendelkezik.
A virtuális gép létrehozásakor és lemezek csatolásakor engedélyezheti a gazdagépek gyorsítótárazását. Be- és kikapcsolhatja a gazdagépek gyorsítótárazását egy meglévő virtuális gépen lévő lemezeken. Alapértelmezés szerint a gyorsítótár-kompatibilis adatlemezek gyorsítótárazása nincs engedélyezve. A gyorsítótár-kompatibilis operációsrendszer-lemezek olvasási/írási gyorsítótárazása engedélyezve van.
A gazdagép gyorsítótárazását úgy módosíthatja, hogy megfeleljen az egyes lemezek számítási feladataira vonatkozó követelményeknek. A gazdagép gyorsítótárazását beállíthatja a következőre:
- Írásvédett: Olyan számítási feladatokhoz, amelyek csak olvasási műveleteket végeznek
- Olvasás/írás: Olvasási és írási műveleteket egyensúlyba hozó számítási feladatok esetén
Ha a számítási feladatok egyike sem követi ezeket a mintákat, nem javasoljuk a gazdagép gyorsítótárazását.
Tekintsünk át néhány példát a gazdagép gyorsítótárának különböző beállításaira, hogy lássuk, hogyan befolyásolja az adatfolyamot és a teljesítményt. Ebben az első példában láthatjuk, mi történik az IO-kérésekkel, ha a gazdagép gyorsítótárazási beállítása írásvédett.
Beállít:
- Standard_D8s_v3
- Gyorsítótárazott IOPS: 16 000
- Nem csatlakoztatott IOPS: 12 800
- P30-adatlemez
- IOPS: 5000
- Gazdagép gyorsítótárazása: Írásvédett
Amikor olvasást végez, és a kívánt adatok elérhetők a gyorsítótárban, a gyorsítótár visszaadja a kért adatokat. Nincs szükség a lemezről való olvasásra. Ez az olvasás beleszámít a virtuális gép gyorsítótárazott korlátaiba.
Amikor olvasást végez, és a kívánt adatok nem érhetők el a gyorsítótárban, a rendszer továbbítja az olvasási kérést a lemezre. Ezután a lemez a gyorsítótár és a virtuális gép számára is felfedi. Ez az olvasás mind a virtuális gép nem gyorsítótárazott korlátja, mind a virtuális gép gyorsítótárazott korlátja felé számít.
Amikor írást végez, az írást a gyorsítótárba és a lemezre is meg kell írni, mielőtt befejezettnek tekintené. Ez az írás a virtuális gép nem gyorsítótárazott korlátja és a virtuális gép gyorsítótárazott korlátja felé számít.
Most nézzük meg, mi történik az I/O-kérésekkel, ha a gazdagép gyorsítótárának beállítása olvasási/írási értékre van állítva.
Beállít:
- Standard_D8s_v3
- Gyorsítótárazott IOPS: 16 000
- Nem csatlakoztatott IOPS: 12 800
- P30-adatlemez
- IOPS: 5000
- Gazdagép gyorsítótárazása: Olvasás/írás
Az olvasás ugyanúgy történik, mint az írásvédett. Az írás az egyetlen dolog, ami különbözik az olvasási/írási gyorsítótárazástól. Ha a gazdagép gyorsítótárazása olvasási/írási értékre van állítva, az írást csak a gazdagép-gyorsítótárba kell írni, hogy befejezettnek tekinthető legyen. Az írás ezután lazán meg lesz írva a lemezre, amikor a gyorsítótár rendszeres kiürítése történik. Az ügyfelek emellett kényszeríthetik a kiürítést egy vagy fua
több f/sync
parancs kiadásával. Ez azt jelenti, hogy a gyorsítótárba írott írások beleszámítanak a gyorsítótárba írt IO-ba. Ha lustán íródik a lemezre, a nem gyorsítótárazott IO felé számít.
Folytassuk a Standard_D8s_v3 virtuális géppel. Ez idő kivételével engedélyezzük a gazdagépek gyorsítótárazását a lemezeken. Így a virtuális gép IOPS-korlátja 16 000 IOPS lesz. A virtuális géphez három mögöttes P30-lemez csatlakozik, amelyek mindegyike 5000 IOPS-t képes kezelni.
Beállít:
- Standard_D8s_v3
- Gyorsítótárazott IOPS: 16 000
- Nem csatlakoztatott IOPS: 12 800
- P30 operációsrendszer-lemez
- IOPS: 5000
- Gazdagép gyorsítótárazása: Olvasás/írás
- Két P30-adatlemez × 2
- IOPS: 5000
- Gazdagép gyorsítótárazása: Olvasás/írás
Az alkalmazás egy Standard_D8s_v3 virtuális gépet használ, amelyen engedélyezve van a gyorsítótárazás. 16 000 IOPS-t kér. A kérések a gyorsítótárba való beolvasásuk vagy írásuk után azonnal befejeződnek. Az írások ezután lazán meg vannak írva a csatolt lemezekre.
Nem gyorsítótárazott és gyorsítótárazott korlátok együttes használata
A virtuális gépek gyorsítótárazott korlátai eltérnek a nem gyorsítótárazott korlátoktól. Ez azt jelenti, hogy engedélyezheti a gazdagépek gyorsítótárazását a virtuális géphez csatlakoztatott lemezeken, miközben más lemezeken nem engedélyezi a gazdagépek gyorsítótárazását. Ez a konfiguráció lehetővé teszi a virtuális gépek számára, hogy a gyorsítótárazott korlát teljes tárolási I/O-ját és a nem gyorsítótárazott korlátot megkapják.
Tekintsünk át egy példát, amely segít megérteni, hogyan működnek együtt ezek a korlátok. Folytatjuk a Standard_D8s_v3 virtuális gép és a prémium lemezek csatlakoztatott konfigurációját.
Beállít:
- Standard_D8s_v3
- Gyorsítótárazott IOPS: 16 000
- Nem csatlakoztatott IOPS: 12 800
- P30 operációsrendszer-lemez
- IOPS: 5000
- Gazdagép gyorsítótárazása: Olvasás/írás
- Két P30-adatlemez × 2
- IOPS: 5000
- Gazdagép gyorsítótárazása: Olvasás/írás
- Két P30-adatlemez × 2
- IOPS: 5000
- Gazdagép gyorsítótárazása: Letiltva
Ebben az esetben a Standard_D8s_v3 virtuális gépen futó alkalmazás 25 000 IOPS-kérést küld. A kérés 5000 IOPS-ként van lebontva az egyes csatolt lemezekre. Három lemez gazdagép-gyorsítótárazást használ, két lemez pedig nem használ gazdagép-gyorsítótárazást.
- Mivel a gazdagép-gyorsítótárazást használó három lemez a gyorsítótárazott 16 000-ben van, a kérések sikeresen befejeződnek. A tárolási teljesítménykorlát nem lép fel.
- Mivel a gazdagép-gyorsítótárazást nem használó két lemez a 12 800-as korláton belül van, a kérések is sikeresen befejeződnek. Nincs korlátozás.