Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✔️ Virtuální počítače s Linuxem ✔️ Virtuální počítače s Windows ✔️ Flexibilní škálovací sady ✔️ Jednotné škálovací sady
Tento článek poskytuje pokyny pro vytváření vysoce výkonných aplikací pomocí prémiového úložiště Azure. Můžete použít pokyny uvedené v tomto dokumentu v kombinaci s osvědčenými postupy výkonu, které se vztahují na technologie používané vaší aplikací. Abychom ilustrovali tyto pokyny, používáme v tomto dokumentu jako příklad SQL Server běžící na prémiovém úložišti.
Zatímco se v tomto článku zabýváme scénáři výkonnosti pro vrstvu úložiště, je třeba optimalizovat vrstvu aplikace. Například pokud hostujete farmu SharePoint na prémiovém úložišti, můžete použít příklady SQL Serveru z tohoto článku k optimalizaci databázového serveru. Můžete také optimalizovat webový server a aplikační server na farmě SharePoint, abyste dosáhli co nejlepšího výkonu.
Tento článek pomáhá zodpovědět následující běžné otázky týkající se optimalizace výkonu aplikací na prémiovém úložišti:
- Jak můžete měřit výkon své aplikace?
- Proč nevidíte očekávaný vysoký výkon?
- Které faktory ovlivňují výkon vaší aplikace na prémiovém úložišti?
- Jak tyto faktory ovlivňují výkon vaší aplikace na prémiovém úložišti?
- Jak můžete optimalizovat operace vstup/výstup za sekundu (IOPS), šířku pásma a latenci?
Poskytujeme tato doporučení specificky pro prémiová úložiště, protože pracovní úlohy běžící na prémiových úložištích jsou vysoce citlivé na výkon. Poskytujeme příklady, kde je to vhodné. Můžete také použít některé z těchto pokynů na aplikace běžící na infrastruktuře jako služba (IaaS) VM s disky standardního úložiště.
Poznámka:
Někdy to, co se zdá být problémem s výkonem disku, je ve skutečnosti úzkým hrdlem sítě. V těchto situacích byste měli optimalizovat výkon své sítě.
Pokud chcete prověřit výkon svého disku, podívejte se na následující články:
- Pro Linux: Srovnejte svou aplikaci na úložišti Azure Disk
- Pro Windows: Testování disku
Pokud vaše virtuální zařízení podporuje zrychlené síťování, ujistěte se, že je povoleno. Pokud není povolena, můžete ji povolit na již nasazených virtuálních počítačích jak na Windows, tak na Linux.
Než začnete, pokud jste nováčkem v oblasti prémiového úložiště, nejprve si přečtěte Výběr typu disku Azure pro IaaS virtuální počítače a Cíle škálovatelnosti pro účty úložiště prémiových stránkových blobů.
Ukazatele výkonu aplikace
Posuzujeme, zda aplikace funguje dobře či nikoliv, pomocí ukazatelů výkonu jako:
- Jak rychle aplikace zpracovává žádost uživatele.
- Kolik dat aplikace zpracovává na požadavek.
- Kolik žádostí aplikace zpracovává v určitém časovém období.
- Jak dlouho musí uživatel čekat na odpověď po odeslání své žádosti.
Technické termíny těchto ukazatelů výkonu jsou IOPS, propustnost nebo šířka pásma a latence.
V této části se zabýváme běžnými ukazateli výkonu v kontextu prémiového úložiště. V části Kontrolní seznam pro výkon aplikací na discích se naučíte, jak měřit tyto ukazatele výkonu vaší aplikace. Později v části Optimalizace výkonu aplikace se dozvíte o faktorech, které ovlivňují tyto ukazatele výkonu, a o doporučeních pro jejich optimalizaci.
IOPS
IOPS je počet požadavků, které vaše aplikace odesílá na disky úložiště za jednu sekundu. Operace vstup/výstup může být čtení nebo zápis, sekvenční nebo náhodná. Online aplikace pro zpracování transakcí (OLTP), jako je online maloobchodní web, musí okamžitě zpracovávat mnoho souběžných uživatelských požadavků. Uživatelské požadavky představují transakce v databázi s intenzivními operacemi vkládání a aktualizace, které musí aplikace zpracovat rychle. Z tohoto důvodu vyžadují OLTP aplikace velmi vysoké IOPS.
OLTP aplikace zpracovávají miliony malých a náhodných I/O požadavků. Pokud máte takovou aplikaci, musíte navrhnout infrastrukturu aplikace tak, aby byla optimalizována pro IOPS. Pro více informací o všech faktorech, které je třeba zvážit pro dosažení vysokého počtu IOPS, navštivte Optimalizace výkonu aplikace.
Když připojíte disk pro prémiové úložiště k vašemu VM s vysokým výkonem, Azure pro vás zajistí garantovaný počet IOPS podle specifikace disku. Například disk P50 poskytuje 7 500 IOPS. Každá velikost VM s vysokou škálovatelností má také specifický limit IOPS, který může udržet. Například standardní virtuální stroj GS5 má limit 80 000 IOPS.
Propustnost
Propustnost, nebo šířka pásma, je množství dat, které vaše aplikace odesílá na úložné disky během stanoveného intervalu. Pokud vaše aplikace provádí operace vstupu/výstupu s velkými jednotkami I/O, vyžaduje vysokou propustnost. Aplikace datového skladu mají tendenci provádět operace náročné na skenování, které přistupují k velkým částem dat najednou a běžně provádějí hromadné operace. Jinými slovy, takové aplikace vyžadují vyšší propustnost. Pokud máte takovou aplikaci, musíte navrhnout její infrastrukturu tak, aby optimalizovala propustnost. V další části diskutujeme o faktorech, které musíte upravit, abyste dosáhli této optimalizace.
Když připojíte disk služby Premium Storage k virtuálnímu počítači s vysokým měřítkem, Azure zřídí propustnost podle této specifikace disku. Například disk P50 zřídí propustnost disku 250 MB/s. Každá velikost VM ve vysokém měřítku má také specifický limit propustnosti, který může udržet. Například standardní GS5 VM má maximální propustnost 2 000 MB/s.
Existuje vztah mezi propustností a IOPS, jak je znázorněno v následujícím vzorci.
Je důležité stanovit optimální hodnoty propustnosti a IOPS, které vaše aplikace vyžaduje. Při pokusu o optimalizaci je ovlivněna i druhá. Pro více informací o optimalizaci IOPS a propustnosti se podívejte na Optimalizace výkonu aplikace.
Oneskorení přenosu
Latence je čas, který aplikaci trvá přijmout jeden požadavek, odeslat ho na úložné disky a poslat odpověď klientovi. Latence je důležitou mírou výkonu aplikace kromě IOPS a propustnosti. Latence prémiového úložného disku je doba, kterou trvá získání informací pro požadavek a jejich zpětné odeslání do vaší aplikace. Prémiové úložiště poskytuje konzistentně nízké latence. Prémiové disky jsou navrženy tak, aby poskytovaly jednociferné milisekundové latence pro většinu I/O operací. Pokud povolíte ukládání do hostitelské mezipaměti ReadOnly na prémiových úložných discích, můžete dosáhnout výrazně nižší latence při čtení. Pro více informací o ukládání do mezipaměti disku viz Ukládání do mezipaměti disku.
Pokud optimalizujete svou aplikaci pro dosažení vyššího IOPS a propustnosti, ovlivní to latenci vaší aplikace. Po vyladění výkonu aplikace posuďte latenci aplikace, abyste předešli neočekávanému chování s vysokou latencí.
Některé operace řídicí roviny na spravovaných discích mohou přesunout disk z jedné úložné lokace do jiné. Přesun disku mezi úložnými místy je řízen prostřednictvím pozadí kopírování dat, které může trvat několik hodin. Obvykle je čas kratší než 24 hodin v závislosti na množství dat na discích. Během této doby může vaše aplikace zaznamenat vyšší než obvyklou latenci čtení, protože některá čtení mohou být přesměrována na původní umístění, což může prodloužit jejich dokončení.
Během kopírování na pozadí nedochází k ovlivnění latence zápisu u většiny typů disků. Pro prémiové SSD v2 a ultra disky, pokud má disk velikost sektoru 4K, zažívá vyšší latenci čtení. Pokud má disk velikost sektoru 512e, zažívá vyšší latenci při čtení a zápisu.
Následující operace řídicí roviny mohou přesunout disk mezi úložnými místy a způsobit zvýšenou latenci.
- Aktualizujte typ úložiště.
- Odpojte a připojte disk z jednoho virtuálního stroje na druhý.
- Vytvořte spravovaný disk ze souboru VHD.
- Vytvořte spravovaný disk ze snapshotu.
- Převést nespravované disky na spravované disky.
Kontrolní seznam aplikace výkonu pro disky
Prvním krokem při navrhování vysoce výkonných aplikací běžících na prémiovém úložišti je pochopení požadavků na výkon vaší aplikace. Po shromáždění požadavků na výkon můžete optimalizovat svou aplikaci, aby dosáhla co nejoptimálnějšího výkonu.
V předchozí části jsme vysvětlili běžné ukazatele výkonu: IOPS, propustnost a latenci. Musíte určit, které z těchto ukazatelů výkonnosti jsou pro vaši aplikaci kritické, aby poskytly požadovaný uživatelský zážitek. Například vysoký počet IOPS je nejdůležitější pro OLTP aplikace, které zpracovávají miliony transakcí za sekundu. Vysoká propustnost je kritická pro aplikace datových skladů zpracovávající velké množství dat za sekundu. Extrémně nízká latence je klíčová pro aplikace v reálném čase, jako jsou weby pro živé streamování videa.
Dále změřte maximální požadavky na výkon vaší aplikace po celou dobu jejího životního cyklu. Použijte následující ukázkový seznam kontrol jako začátek. Zaznamenejte maximální požadavky na výkon během běžných, špičkových a mimošpičkových období zatížení. Identifikací požadavků pro všechny úrovně zatížení můžete určit celkový požadavek na výkon vaší aplikace.
Například normální pracovní zátěž webové stránky elektronického obchodu představují transakce, které obsluhuje během většiny dnů v roce. Špičkou úlohy webu jsou transakce, které slouží během svátků nebo zvláštních prodejních akcí. Typické maximální zatížení se obvykle objevuje pouze po omezenou dobu, ale může vyžadovat, aby vaše aplikace škálovala na dvojnásobek nebo i více svého běžného provozu. Zjistěte požadavky pro 50. percentil, 90. percentil a 99. percentil. Tyto informace pomáhají vyloučit jakékoli extrémní hodnoty v požadavcích na výkon, což vám umožní soustředit svůj úsilí na optimalizaci pro správné hodnoty.
Kontrolní seznam požadavků na výkon aplikace
| Požadavky na výkon | 50 percentilu | 90. percentil | 99 percentil |
|---|---|---|---|
| Maximální počet transakcí za sekundu | |||
| % čtecí operace | |||
| % Zápisové operace | |||
| % Náhodné operace | |||
| % Sekvenční operace | |||
| velikost požadavku na vstup/výstup | |||
| Průměrná propustnost | |||
| Maximální propustnost | |||
| Minimální latence | |||
| Průměrná latence | |||
| Maximální využití procesoru | |||
| Průměrná zátěž CPU | |||
| Maximální paměť | |||
| Průměrná paměť | |||
| hloubka fronty |
Poznámka:
Zvažte škálování těchto čísel na základě očekávaného budoucího růstu vaší aplikace. Je dobrý nápad plánovat růst dopředu, protože později by mohlo být obtížnější změnit infrastrukturu pro zlepšení výkonu.
Pokud máte existující aplikaci a chcete přejít do služby Premium Storage, nejprve vytvořte předchozí kontrolní seznam pro existující aplikaci. Nejprve vytvořte prototyp své aplikace na prémiovém úložišti a navrhněte aplikaci na základě pokynů popsaných v Optimalizace výkonu aplikace. Další článek popisuje nástroje, které můžete použít ke shromáždění měření výkonu.
Počítadla k měření požadavků na výkon aplikace
Nejlepší způsob, jak měřit výkonové požadavky vaší aplikace, je využít nástroje pro sledování poskytované operačním systémem serveru. Můžete použít PerfMon pro Windows a iostat pro Linux. Tyto nástroje zaznamenávají čítače odpovídající každému opatření vysvětlenému v předchozí části. Je nutné zachytit hodnoty těchto čítačů, když vaše aplikace běží v normálním režimu, při špičkovém zatížení a mimo pracovní hodiny.
Počítadla PerfMon jsou k dispozici pro procesor, paměť a každý logický disk a fyzický disk vašeho serveru. Při použití prémiových úložných disků s virtuálním počítačem jsou počítadla fyzických disků určena pro každý prémiový úložný disk a počítadla logických disků pro každý svazek vytvořený na prémiových úložných discích. Musíte zaznamenat hodnoty disků, které hostí zátěž vaší aplikace. Pokud existuje jedná mezi logickými a fyzickými disky, můžete se odkazovat na čítače fyzických disků. Jinak odkažte na počítadla logických disků.
Na Linuxu příkaz iostat generuje zprávu o využití CPU a disku. Zpráva o využití disku poskytuje statistiky za fyzické zařízení nebo oddíl. Pokud máte databázový server s daty a logy na samostatných discích, shromážděte tato data pro oba disky. Následující tabulka popisuje čítače pro disky, procesory a paměť.
| Počítadlo | Popis | PerfMon | iostat |
|---|---|---|---|
| IOPS nebo transakce/sekundu | Počet požadavků na vstup/výstup vydaných na úložný disk za sekundu | Počet čtení z disku za sekundu Zápisy na disk/sec |
Tps r/s w/s |
| Čtení a zápis na disk | % čtení a zápisu operací prováděných na disku | % čas čtení z disku % čas zápisu na disk |
r/s w/s |
| Propustnost | Množství dat přečtených z disku nebo zapsaných na disk za sekundu | Počet bajtů/sec čtených z disku Zápis na disk bajty/sekundu |
kB_read/s (přečteno kB/s) kB_wrtn/s |
| Oneskorení přenosu | Celkový čas na dokončení žádosti o diskové I/O | Průměrná doba čtení disku v sekundách Průměrná doba zápisu na disk |
čekat svctm |
| Velikost I/O | Velikost požadavků I/O na úložiště disků | Průměrný počet bajtů/disc při čtení Průměrné bajty zápisu na disk |
avgrq-sz |
| hloubka fronty | Počet nevyřízených žádostí o vstup/výstup čekajících na přečtení z nebo zapsání na úložný disk | Aktuální délka fronty disku | avgqu-sz |
| Maximální paměť | Množství paměti potřebné pro plynulý běh aplikace | % Použití přiřazených bajtů | Použijte vmstat |
| Maximální využití procesoru | Množství procesoru potřebného ke spuštění aplikace hladce | % Čas procesoru | %util |
Zjistěte více o iostat a PerfMon.
Optimalizujte výkon aplikace
Hlavní faktory ovlivňující výkon aplikace běžící na prémiovém úložišti jsou povaha I/O požadavků, velikost VM, velikost disku, počet disků, diskové cache, multithreading a hloubka fronty. Některé z těchto faktorů můžete ovládat pomocí ovládacích prvků poskytovaných systémem.
Většina aplikací vám pravděpodobně nedá možnost přímo změnit velikost I/O a hloubku fronty. Například pokud používáte SQL Server, nemůžete si vybrat velikost I/O a hloubku fronty. SQL Server vybírá optimální hodnoty velikosti I/O a hloubky fronty, aby dosáhl maximálního výkonu. Je důležité pochopit účinky obou typů faktorů na výkon vaší aplikace, abyste mohli zřídit vhodné prostředky, aby splňovaly požadavky na výkon.
V této části se odkazujte na kontrolní seznam požadavků aplikace, který jste vytvořili, abyste zjistili, jak moc musíte optimalizovat výkon své aplikace. Na základě kontrolního seznamu můžete určit, které faktory z této části potřebujete doladit.
Abyste mohli sledovat účinky jednotlivých faktorů na výkon vaší aplikace, spusťte nástroje pro benchmarking na vaší aplikační konfiguraci. Pro kroky ke spuštění běžných nástrojů pro porovnávání výkonu na virtuálních strojích s Windows a Linuxem viz články o porovnávání výkonu na konci tohoto dokumentu.
Optimalizujte IOPS, propustnost a latenci na první pohled
Následující tabulka shrnuje faktory ovlivňující výkon a kroky nezbytné k optimalizaci IOPS, propustnosti a latence. Oddíly následující po tomto shrnutí popisují každý faktor podrobněji.
Pro více informací o velikostech VM a dostupnosti IOPS, propustnosti a latenci pro každý typ VM si prohlédněte Velikosti virtuálních strojů v Azure.
| Faktory výkonu | IOPS | Propustnost | Oneskorení přenosu |
|---|---|---|---|
| Ukázkový scénář | Podniková OLTP aplikace vyžadující velmi vysokou míru transakcí za sekundu. | Podniková aplikace pro datové sklady zpracovávající velké množství dat. | Aplikace blízké reálnému času vyžadující okamžité reakce na uživatelské požadavky, jako je online hraní. |
| Faktory výkonu | |||
| Velikost I/O | Menší velikost I/O přináší vyšší IOPS. | Větší velikost vstupu/výstupu zvyšuje propustnost. | |
| Velikost virtuálního počítače | Použijte velikost VM, která nabízí více IOPS, než vyžaduje vaše aplikace. | Použijte velikost virtuálního stroje s limitem propustnosti větší, než je požadavek vaší aplikace. | Použijte velikost virtuálního počítače (VM), která nabízí limity škálování větší než požadavky vaší aplikace. |
| Velikost disku | Použijte velikost disku, která nabízí IOPS vyšší, než vyžaduje vaše aplikace. | Použijte velikost disku s limitem průchodnosti vyšším než je požadavek vaší aplikace. | Použijte velikost disku, která nabízí limity škálování větší, než jsou požadavky vaší aplikace. |
| Limity škálování VM a disků | Limit IOPS zvolené velikosti VM by měl být větší než celkový IOPS způsobený úložnými disky k němu připojenými. | Limit propustnosti zvolené velikosti VM by měl být větší než celková propustnost generovaná prémiovými úložnými disky připojenými k ní. | Limity měřítka vybrané velikosti VM musí být větší než celkové limity měřítka připojených prémiových úložných disků. |
| Ukládání do mezipaměti na disku | Povolte ReadOnly cache na prémiových úložných discích s operacemi náročnými na čtení, abyste dosáhli vyšších čtecích IOPS. | Povolte mezipaměť ReadOnly na prémiových úložných discích s operacemi náročnými na čtení pro dosažení velmi nízkých latencí čtení. | |
| pruhování disku | Použijte více disků a spojte je do proužku, abyste dosáhli kombinovaného vyššího limitu IOPS a propustnosti. Kombinovaný limit na virtuální stroj by měl být vyšší než kombinované limity připojených prémiových disků. | ||
| Velikost pruhu | Menší velikost pruhu pro náhodný malý vstupně-výstupní vzor, který je vidět v aplikacích OLTP. Například pro aplikaci SQL Server OLTP použijte velikost pruhu o velikosti 64 kB. | Větší velikost proužků pro sekvenční velké vzorce vstupně-výstupních operací, které jsou pozorovány v aplikacích datových skladů. Například pro aplikaci datového skladu SQL Serveru použijte velikost pruhu o velikosti 256 kB. | |
| Vícevláknové zpracování | Použijte paralelní zpracování, abyste odeslali vyšší počet požadavků do prémiového úložiště, což povede k vyšším hodnotám IOPS a propustnosti. Například na SQL Serveru nastavte vysokou hodnotu MAXDOP, abyste přidělili více CPU serveru SQL. | ||
| hloubka fronty | Větší hloubka fronty přináší vyšší IOPS. | Větší hloubka fronty přináší vyšší propustnost. | Menší hloubka fronty vede k nižším latencím. |
Povaha požadavků na vstup/výstup
Požadavek na vstup/výstup je jednotka operace vstupu/výstupu, kterou vaše aplikace provádí. Identifikace povahy I/O požadavků, ať už náhodných či sekvenčních, čtecích nebo zapisovacích, malých nebo velkých, vám pomůže určit výkonnostní požadavky vaší aplikace. Je důležité porozumět povaze požadavků na vstup/výstup (I/O), abyste mohli při navrhování infrastruktury vaší aplikace činit správná rozhodnutí. Vstupy/výstupy musí být rovnoměrně rozloženy, aby bylo dosaženo co nejlepšího výkonu.
Velikost vstupu/výstupu (I/O) je jedním z důležitějších faktorů. Velikost vstupně-výstupního provozu je velikost požadavku na operaci vstup/výstup vytvořeného vaší aplikací. Velikost I/O výrazně ovlivňuje výkon, zejména na IOPS a šířku pásma, kterou aplikace může dosáhnout. Následující vzorec ukazuje vztah mezi IOPS, velikostí I/O a šířkou pásma/průchodností.
Některé aplikace vám umožňují změnit jejich velikost vstup/výstup, zatímco některé aplikace nikoliv. SQL Server například určuje optimální velikost vstupně-výstupních operací a neposkytuje uživatelům žádné uzly, které by ho mohli změnit. Na druhou stranu, Oracle poskytuje parametr nazvaný DB_BLOCK_SIZE, který můžete použít k nastavení velikosti požadavku na vstupně-výstupní operace v databázi.
Pokud používáte aplikaci, která neumožňuje změnit velikost vstupně-výstupních operací, použijte pokyny v tomto článku k optimalizaci klíčového ukazatele výkonu, který je pro vaši aplikaci nejrelevavantnější. Například:
- Aplikace OLTP generuje miliony malých a náhodných vstupně-výstupních požadavků. Aby bylo možné vyřídit tyto typy I/O požadavků, musíte navrhnout infrastrukturu své aplikace tak, aby dosáhla vyššího počtu IOPS.
- Aplikační software pro datové sklady generuje velké a sekvenční požadavky na vstup/výstup (I/O). Pokud chcete tyto typy vstupně-výstupních požadavků zpracovat, musíte navrhnout infrastrukturu aplikace, aby získala větší šířku pásma nebo propustnost.
Pokud používáte aplikaci, která vám umožňuje změnit velikost I/O, použijte toto pravidlo jako měřítko pro velikost I/O kromě dalších doporučení ohledně výkonu:
- Menší velikost I/O pro dosažení vyšších IOPS. Například 8 kB pro aplikaci OLTP.
- Větší velikost I/O pro dosažení vyšší šířky pásma/prostupnosti. Například 1 024 kB pro aplikaci datového skladu.
Tady je příklad, jak můžete vypočítat vstupně-výstupní operace za sekundu a propustnost a šířku pásma pro vaši aplikaci.
Zvažte aplikaci, která používá disk P30. Maximální IOPS a průchodnost/šířka pásma, které může disk P30 dosáhnout, jsou 5 000 IOPS a 200 MB/s, respektive. Pokud vaše aplikace vyžaduje maximální IOPS z disku P30 a používáte menší velikost I/O, například 8 KB, výsledná šířka pásma, kterou můžete získat, je 40 MB/s. Pokud vaše aplikace vyžaduje maximální propustnost/šířku pásma z disku P30 a používáte větší velikost I/O, například 1 024 KB, výsledné IOPS je nižší, například 200 IOPS.
Nastavte velikost I/O tak, aby splňovala jak požadavky na IOPS, tak požadavky na propustnost/šířku pásma vaší aplikace. V následující tabulce jsou shrnuty různé velikosti I/O a jejich odpovídající IOPS a propustnost pro disk P30.
| Požadavek na aplikaci | Velikost I/O | IOPS | Propustnost/Šířka pásma |
|---|---|---|---|
| Maximální počet vstupně-výstupních operací za sekundu | 8 kB | 5 000 | 40 MB/s |
| Maximální propustnost | 1 024 KB | 200 | 200 MB/s |
| Maximální propustnost + vysoké IOPS | 64 kB | 3,200 | 200 MB/s |
| Maximální IOPS + vysoká propustnost | 32 kB | 5 000 | 160 MB/s |
Aby bylo možné dosáhnout vyšších hodnot IOPS a šířky pásma, než je maximum jednoho prémiového úložiště, použijte více prémiových disků spojených do stripu. Příklad: Spojte dva disky P30, abyste dosáhli kombinovaného počtu 10 000 IOPS nebo kombinované propustnosti 400 MB/s. Jak je vysvětleno v další sekci, musíte použít velikost virtuálního počítače, která podporuje kombinovaný počet IOPS a propustnost disků.
Poznámka:
Pokud zvýšíte buď IOPS, nebo propustnost, zvýší se také ta druhá. Ujistěte se, že nepřekročíte limity propustnosti nebo IOPS disku či virtuálního stroje, když zvýšíte jedno nebo druhé.
Abyste byli svědky vlivu velikosti I/O na výkon aplikace, můžete spustit nástroje pro měření výkonnosti na vašem virtuálním stroji (VM) a discích. Vytvořte více testovacích běhů a pro každý běh použijte jinou velikost I/O, abyste viděli efekt. Pro více informací si přečtěte články o benchmarkingu na konci tohoto dokumentu.
Velkokapacitní velikosti virtuálních počítačů
Když začnete navrhovat aplikaci, jednou z prvních věcí, které je třeba udělat, je vybrat VM pro hostování vaší aplikace. Premium úložiště přichází s velkými velikostmi VM, které mohou spouštět aplikace vyžadující vyšší výpočetní výkon a vysoký výkon lokální diskové I/O. Tyto virtuální počítače poskytují rychlejší procesory, vyšší poměr paměti k jádru a solid-state disk (SSD) pro místní disk. Příklady vysoce výkonných virtuálních počítačů podporujících prémiové úložiště jsou virtuální počítače řady DS a GS.
Vysoce škálovatelné virtuální počítače jsou dostupné v různých velikostech s různým počtem jader CPU, pamětí, operačním systémem a velikostí dočasného disku. Každá velikost VM má také maximální počet datových disků, které můžete k VM připojit. Velikost vybrané virtuálního počítače ovlivňuje, kolik výpočetního výkonu, paměti a úložné kapacity je dostupné pro vaši aplikaci. Ovlivňuje také náklady na výpočetní výkon a úložiště. Například následující specifikace jsou pro největší velikost VM v sérii DS a GS.
| Velikost virtuálního počítače | Jádra procesoru | Paměť | Velikosti disků VM | Maximální datové disky | Velikost mezipaměti | IOPS | Limity I/O cache šířky pásma |
|---|---|---|---|---|---|---|---|
| Standard_DS14 | 16 | 112 GB | Operační systém = 1 023 GB Místní SSD = 224 GB |
32 | 576 GB | 50 000 IOPS 512 MB/s |
4 000 IOPS a 33 MB/s |
| Standard_GS5 | 32 | 448 GB | Operační systém = 1 023 GB Místní SSD = 896 GB |
64 | 4224 GB | 80 000 IOPS 2 000 MB/s |
5 000 IOPS a 50 MB/s |
Chcete-li zobrazit úplný seznam všech dostupných velikostí Azure VM, podívejte se na Velikosti pro virtuální počítače v Azure. Vyberte velikost virtuálního počítače (VM), která splňuje a škáluje podle vašich požadovaných výkonových požadavků aplikace. Nezapomeňte také vzít v úvahu následující důležité aspekty při výběru velikostí virtuálních počítačů.
Omezení škálování
Maximální limity IOPS na VM a na disk jsou různé a navzájem nezávislé. Ujistěte se, že aplikace zajišťuje IOPS v rámci limitů VM a prémiové disky připojené k němu. V opačném případě dochází k omezování výkonu aplikace.
Jako příklad si představte, že požadavek aplikace je maximálně 4 000 IOPS. Pro dosažení této úrovně nakonfigurujete disk P30 na virtuálním stroji DS1. Disk P30 může poskytnout až 5 000 IOPS. Nicméně DS1 VM je omezeno na 3 200 IOPS. Výkon aplikace je omezen limitem virtuálního stroje na 3 200 IOPS a výkon se zhoršuje. Abychom této situaci předešli, zvolte velikost VM a disku, které splňují požadavky aplikace.
Provozní náklady
V mnoha případech je možné, že vaše celkové provozní náklady při použití prémiového úložiště jsou nižší než při použití standardního úložiště.
Například uvažujme o aplikaci, která vyžaduje 16 000 IOPS. K dosažení tohoto výkonu potřebujete instanci virtuálního počítače Standard_D14 Azure IaaS, která může poskytnout maximální IOPS 16 000 pomocí 32 standardních úložných 1TB disků. Každý standardní úložný disk s kapacitou 1 TB může dosáhnout maximálního výkonu 500 IOPS.
- Odhadované náklady na tento VM za měsíc jsou 1 570 USD.
- Měsíční náklady na 32 standardních úložných disků jsou 1 638 USD.
- Odhadované celkové měsíční náklady činí 3 208 USD.
Pokud byste stejnou aplikaci hostovali na prémiovém úložišti, potřebujete menší velikost VM a méně disků prémiového úložiště, což snižuje celkové náklady. Virtuální stroj Standard_DS13 může splnit požadavek na 16 000 IOPS použitím čtyř disků P30. Virtuální počítač DS13 má maximální IOPS 25 600 a každý disk P30 má maximální IOPS 5 000. Celkově může tato konfigurace dosáhnout 5,000 x 4 = 20,000 IOPS.
- Odhadované náklady na tuto VM měsíčně jsou 1 003 dolarů.
- Měsíční náklady na čtyři prémiové úložné disky P30 jsou 544,34 USD.
- Odhadované celkové měsíční náklady jsou 1,544 USD.
Následující tabulka shrnuje rozpis nákladů tohoto scénáře pro standardní a prémiové úložiště.
| Měsíční náklady | Standardní | Prémium |
|---|---|---|
| Náklady na VM za měsíc | 1 570,58 Kč (Standard_D14) | 1 003,66 Kč (Standard_DS13) |
| Náklady na disky za měsíc | 1 638,40 USD (32 × 1 TB disků) | 544,34 USD (4 x disky P30) |
| Celkové náklady za měsíc | 3 208,98 Kč | 1 544,34 Kč |
Linuxové distribuce
S prémiovým úložištěm získáte stejnou úroveň výkonu pro virtuální stroje běžící na Windows a Linuxu. Podporujeme mnoho verzí distribucí Linuxu. Pro více informací, viz Linuxové distribuce podporované na Azure.
Různá distribuce jsou lépe uzpůsobena pro různé typy pracovních zátěží. Vidíte různé úrovně výkonu v závislosti na distribuci, na které běží vaše pracovní zátěž. Otestujte Linuxové distribuce s vaší aplikací a vyberte tu, která funguje nejlépe.
Při spuštění Linuxu s úložištěm Úrovně Premium zkontrolujte nejnovější aktualizace požadovaných ovladačů, abyste zajistili vysoký výkon.
Velikosti disků pro prémiové úložiště
Prémiové úložiště nabízí různé velikosti, takže si můžete vybrat tu, která nejlépe vyhovuje vašim potřebám. Každá velikost disku má různý limit škálování pro IOPS, šířku pásma a úložiště. Vyberte správnou velikost prémiového úložiště v závislosti na požadavcích aplikace a velikosti virtuálního počítače s vysokou škálovatelností. Následující tabulka ukazuje velikosti disků a jejich možnosti. Velikosti P4, P6, P15, P60, P70 a P80 jsou aktuálně podporovány pouze pro spravované disky.
| Velikosti SSD úrovně Premium | P1 | P2 | P3 | P4 | P6 | P10 | P15 | P20 | P30 | P40 | P50 | P60 | P70 | P80 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Velikost disku v GiB | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1,024 | 2 048 | 4,096 | 8,192 | 16,384 | 32 767 |
| Základní počet zřízených vstupně-výstupních operací za sekundu (IOPS) na disk | 120 | 120 | 120 | 120 | 240 | 500 | 1 100 | 2 300 | 5 000 | 7,500 | 7,500 | 16 000 | 18 000 | 20,000 |
| **Rozšířené zřízené IOPS na disk | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | 8 000 | 16 000 | 20,000 | 20,000 | 20,000 | 20,000 |
| Základní zřízená propustnost na disk | 25 MB/s | 25 MB/s | 25 MB/s | 25 MB/s | 50 MB/s | 100 MB/s | 125 MB/s | 150 MB/s | 200 MB/s | 250 MB/s | 250 MB/s | 500 MB/s | 750 MB/s | 900 MB/s |
| **Rozšířená zřízená propustnost na disk | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | není k dispozici | 300 MB/s | 600 MB/s | 900 MB/s | 900 MB/s | 900 MB/s | 900 MB/s |
| Maximální počet přechodných vstupně-výstupních operací za sekundu na disk | 3 500 | 3 500 | 3 500 | 3 500 | 3 500 | 3 500 | 3 500 | 3 500 | 30,000* | 30,000* | 30,000* | 30,000* | 30,000* | 30,000* |
| Maximální nárazová propustnost na disk | 170 MB/s | 170 MB/s | 170 MB/s | 170 MB/s | 170 MB/s | 170 MB/s | 170 MB/s | 170 MB/s | 1 000 MB/s* | 1 000 MB/s* | 1 000 MB/s* | 1 000 MB/s* | 1 000 MB/s* | 1 000 MB/s* |
| Maximální doba trvání výbuchu | 30 minut | 30 minut | 30 minut | 30 minut | 30 minut | 30 minut | 30 minut | 30 minut | Neomezený* | Neomezený* | Neomezený* | Neomezený* | Neomezený* | Neomezený* |
| Nárok na rezervaci | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ne | Ano, až jeden rok | Ano, až jeden rok | Ano, až jeden rok | Ano, až jeden rok | Ano, až jeden rok | Ano, až jeden rok |
*Platí pouze pro disky s povoleným dynamickým rozšířením na vyžádání.
Platí pouze pro disky s povolenou funkcí performance plus.
Kolik disků zvolíte, závisí na zvolené velikosti disku. K splnění požadavku aplikace můžete použít jeden disk P50 nebo více disků P10. Při volbě vezměte v úvahu zde uvedené aspekty.
Omezení škálování (IOPS a propustnost)
Limity IOPS a propustnosti pro každou velikost prémiového disku jsou odlišné a nezávislé na limitech měřítka virtuálního počítače. Ujistěte se, že celkové IOPS a průchodnost z disků jsou v mezích škálování vybrané velikosti virtuálního počítače.
Například pokud požadavek aplikace je maximální propustnost 250 MB/s a používáte DS4 VM s jediným diskem P30, DS4 VM může poskytnout až 256 MB/s propustnost. Jeden disk P30 má však limit propustnosti 200 MB/s. Aplikace je tedy omezena na 200 MB/s kvůli limitu disku. Aby bylo možné překonat toto omezení, vytvořte pro virtuální počítač více než jeden datový disk nebo zvětšete kapacitu svých disků na P40 nebo P50.
Poznámka:
Čtení zajištěná mezipamětí nejsou zahrnuta do IOPS disku a prostupnosti, takže nepodléhají limitům disku. Vyrovnávací paměť má pro každou virtuální mašinu samostatné limity na IOPS a propustnost.
Například, zpočátku jsou vaše operace čtení a zápisu rychlostí 60 MB/s a 40 MB/s, podle pořadí. Postupem času se paměť cache zahřívá a poskytuje stále více čtení přímo z cache. Pak můžete dosáhnout vyšší propustnosti zápisu z disku.
Počet disků
Určete počet disků, které potřebujete, posouzením požadavků aplikace. Každá velikost virtuálního počítače má také omezení počtu disků, které můžete k virtuálnímu počítači připojit. Obvykle je tato částka dvojnásobkem počtu jader. Ujistěte se, že zvolená velikost VM může podporovat požadovaný počet disků.
Pamatujte, že prémiové úložné disky mají vyšší výkonové schopnosti ve srovnání se standardními úložnými disky. Pokud migrujete svou aplikaci z virtuálního počítače Azure IaaS používajícího standardní úložiště na prémiové úložiště, pravděpodobně budete potřebovat méně prémiových disků k dosažení stejného nebo vyššího výkonu pro vaši aplikaci.
Ukládání do mezipaměti na disku
Vysoce škálovatelné virtuální počítače (VMs), které používají prémiové úložiště, mají vícevrstvou technologii ukládání do mezipaměti nazývanou BlobCache. BlobCache používá kombinaci hostitelské RAM a místní SSD pro ukládání do mezipaměti. Tato mezipaměť je dostupná pro spravované disky HDD úrovně Standard, SSD úrovně Standard a SSD úrovně Premium. Ve výchozím nastavení je tato konfigurace mezipaměti nastavena jako Čtení/Zápis pro disky OS a Pouze pro čtení pro datové disky. Když je povoleno ukládání do vyrovnávací paměti disku, mohou vysoce škálovatelné virtuální počítače dosáhnout extrémně vysokých úrovní výkonu, které překračují výkon základního disku.
Výstraha
Ukládání do mezipaměti disků není podporováno pro disky o velikosti 4 TiB a větší. Pokud je k virtuálnímu počítači připojeno více disků, každý disk, který je menší než 4 TiB, podporuje ukládání do mezipaměti.
Při změně nastavení mezipaměti disku Azure se cílový disk odpojí a znovu připojí. Pokud se jedná o disk s operačním systémem, virtuální počítač se restartuje. Zastavte všechny aplikace a služby, které by mohly být ovlivněny tímto narušením, než změníte nastavení diskové mezipaměti. Nedodržení těchto doporučení může vést k poškození dat.
Další informace o tom, jak BlobCache funguje, najdete v blogovém příspěvku o službě Inside Azure Premium Storage .
Je důležité povolit ukládání do mezipaměti na správné sadě disků. Zda byste měli na disku povolit ukládání do mezipaměti, závisí na vzoru zátěže, kterou disk zpracovává. Následující tabulka ukazuje výchozí nastavení mezipaměti pro operační systém a datové disky.
| Typ disku | Výchozí nastavení mezipaměti |
|---|---|
| Disk s operačním systémem | ReadWrite |
| Datový disk | Jen pro čtení |
Měli byste použít následující nastavení mezipaměti disku pro datové disky:
| Nastavení ukládání na disk | Doporučení, kdy použít toto nastavení |
|---|---|
| Žádné | Nakonfigurujte hostitelskou mezipaměť jako None pro diskety pouze k zápisu a s vysokou zátěží zápisu. |
| Jen pro čtení | Nakonfigurujte mezipaměť hostitele jako pouze pro čtení pro disky určené pouze pro čtení i pro čtení a zápis. |
| ReadWrite | Konfigurujte hostovací mezipaměť jako ReadWrite pouze tehdy, pokud vaše aplikace správně zvládá zápis uložených dat na trvalé disky, když je to potřeba. |
Jen pro čtení
Konfigurací ReadOnly cache na datových discích můžete dosáhnout nízké latence při čtení a získat velmi vysoký počet čtecích operací za sekundu (IOPS) a propustnosti pro vaši aplikaci z těchto dvou důvodů:
- Čtení prováděná z mezipaměti, která je v paměti virtuálního počítače a místní SSD, jsou rychlejší než čtení z datového disku, což je ve službě Azure Blob Storage.
- Úložiště nepočítá čtení, která jsou zpracována z mezipaměti, do IOPS a propustnosti disku. Z tohoto důvodu může vaše aplikace dosáhnout vyššího celkového počtu vstupně-výstupních operací za sekundu a propustnosti.
číst a psát
Ve výchozím nastavení mají disky s operačním systémem povolené ukládání do mezipaměti ReadWrite . Nedávno jsme přidali podporu pro caching ReadWrite také na datových discích. Pokud používáte ukládání do mezipaměti ve formátu ReadWrite, musíte mít správný způsob, jak zapisovat data z mezipaměti na trvalé disky. Například SQL Server sám zajišťuje zápis uložených dat do disků trvalého úložiště. Použití mezipaměti ReadWrite s aplikací, která nezajišťuje ukládání potřebných dat, může vést ke ztrátě dat, pokud dojde k havárii virtuálního počítače.
Žádné
Aktuálně je Žádný podporován pouze na datových discích. Nepodporuje se na disky OS. Pokud na disku OS nastavíte None, přepíše to toto nastavení interně a nastaví se na ReadOnly.
Jako příklad můžete tyto pokyny aplikovat na SQL Server běžící na virtuálních strojích s povoleným prémiovým úložištěm podle následujících kroků:
- Nakonfigurujte ReadOnly mezipaměť na spravovaných discích Standard HDD, Standard SSD nebo Premium SSD hostujících datové soubory.
- Rychlé čtení z mezipaměti snižuje čas dotazu SQL Serveru, protože datové stránky se z mezipaměti načítají rychleji než přímo z datových disků.
- Používání čtení z mezipaměti znamená, že je k dispozici větší datová propustnost z datových disků. SQL Server může použít tento dodatečný průtok k načítání více datových stránek a k dalším operacím, jako jsou zálohování/obnovování, dávkové načítání a přebudování indexů.
- Nakonfigurujte mezipaměť None na prémiových úložných discích, které hostují logovací soubory.
- Protokolové soubory mají převážně zápisově náročné operace, takže nevyužívají vyrovnávací paměť ReadOnly.
Optimalizujte výkon na virtuálních počítačích s Linuxem.
Pro všechny disky Premium SSD nebo Ultra Disks je možné, že budete schopni deaktivovat barriers pro souborové systémy na disku, abyste zlepšili výkon, když je známo, že neexistují žádné mezipaměti, které by mohly ztratit data. Pokud je ukládání do mezipaměti na disku Azure nastavené na Jen pro čtení nebo Žádné, můžete zakázat překážky. Pokud je však ukládání do mezipaměti nastavené na ReadWrite, měly by překážky zůstat povolené, aby se zajistila stálost zápisu. Bariéry jsou obvykle ve výchozím nastavení povoleny, ale můžete je zakázat pomocí jedné z následujících metod v závislosti na typu souborového systému.
- reiserFS: Pomocí možnosti barrier=none mount zakažte bariéry. Chcete-li explicitně povolit bariéry, použijte barrier=flush.
- ext3/ext4: Použijte příkaz pro připojení barrier=0 k deaktivaci bariér. Chcete-li explicitně povolit bariéry, použijte barrier=1.
- XFS: Použijte přípojnou volbu nobarrier k deaktivaci bariér. Chcete-li explicitně povolit bariéry, použijte barrier. Od verze 4.10 hlavního Linuxového jádra zajišťuje návrh souborového systému XFS vždy trvanlivost. Deaktivace bariér nemá žádný efekt a možnost nobarrier je zastaralá. Některé distribuce Linuxu však mohly zpětně přenést změny do verze distribuce s dřívější verzí jádra. Zkontrolujte u svého dodavatele distribuce stav v distribuci a verzi, kterou používáte.
pruhování disku
Když je k vysokokapacitnímu virtuálnímu zařízení připojeno několik prémiových úložišťových trvalých disků, mohou být disky spojeny dohromady, aby se agregovaly jejich IOPs, šířka pásma a úložná kapacita.
Ve Windows můžete použít funkci Storage Spaces k prokládání disků dohromady. Musíte nakonfigurovat jeden sloupec pro každý disk v fondu. Jinak může být celkový výkon pruhovaného svazku nižší, než se očekávalo, kvůli nerovnoměrnému rozložení provozu mezi disky.
Pomocí uživatelského rozhraní Správce serveru můžete nastavit celkový počet sloupců až na 8 pro proužkovaný svazek. Pokud připojujete více než osm disků, použijte PowerShell k vytvoření svazku. Pomocí PowerShellu můžete nastavit počet sloupců, které se rovnají počtu disků. Například, pokud je v jedné sadě proužků 16 disků, uveďte 16 sloupců v parametru NumberOfColumns cmdletu PowerShell New-VirtualDisk.
Na Linuxu použijte nástroj MDADM ke spojení disků do pole. Pro informace o tom, jak pracovat s disky na Linuxu, se podívejte na Konfigurace Software RAID na Linuxu.
Velikost pruhu
Důležitou konfigurací prokládání disku je velikost pruhu. Velikost pruhu nebo velikost bloku je nejmenší blok dat, který může aplikace řešit na prokládání svazku. Velikost stripe, kterou nastavujete, závisí na typu aplikace a jejím vzorci požadavků. Pokud zvolíte nesprávnou velikost proužku, mohlo by to vést k nesprávnému zarovnání I/O, které způsobí snížení výkonu vaší aplikace.
Například pokud je požadavek na I/O, generovaný vaší aplikací, větší než velikost diskového pruhu, úložný systém jej zapíše přes hranice jednotek pruhů na více než jeden disk. Když je čas získat přístup k datům, musí se k dokončení požadavku pokusit o více než jednu jednotku pruhu. Kumulativní účinek takového chování může vést k výraznému zhoršení výkonu. Na druhou stranu, pokud je velikost požadavku na vstup/výstup menší než velikost stripe a je náhodná povahy, může dojít k hromadění požadavků na vstup/výstup na stejném disku, což způsobí úzké místo a nakonec zhorší výkon vstup/výstup.
V závislosti na typu zátěže, kterou vaše aplikace zpracovává, zvolte vhodnou velikost pruhu. Pro náhodné malé požadavky I/O použijte menší velikost pruhu. Pro velké sekvenční I/O požadavky použijte větší velikost pásma. Zjistěte doporučené velikosti pruhů pro aplikaci, kterou budete provozovat na prémiovém úložišti. Pro SQL Server nakonfigurujte velikost pruhu na 64 KB pro OLTP úlohy a 256 KB pro úlohy datového skladu. Pro více informací si přečtěte Osvědčené postupy pro výkon SQL Serveru na Azure VMs.
Poznámka:
Můžete zkombinovat maximálně 32 prémiových úložných disků na VM řady DS a 64 prémiových úložných disků na VM řady GS.
Vícevláknové zpracování
Azure navrhl prémiovou úložnou platformu tak, aby byla masivně paralelní. Z tohoto důvodu dosahuje vícevláknová aplikace vyššího výkonu než aplikace s jedním vláknem. Vícevláknová aplikace rozděluje své úkoly mezi více vláken a zvyšuje efektivitu svého provedení maximálním využitím prostředků virtuálního stroje a diskových prostředků.
Například pokud vaše aplikace běží na VM s jedním jádrem a používá dva vlákna, může CPU přepínat mezi těmito dvěma vlákny, aby dosáhla efektivity. Zatímco jeden vláken čeká na dokončení operace vstup/výstup na disku, CPU může přepnout na jiné vlákno. Tímto způsobem mohou dva vlákna dosáhnout více než jedno vlákno. Pokud má VM více než jedno jádro, dále snižuje dobu běhu, protože každé jádro může spouštět úlohy paralelně.
Nemusíte být schopni změnit způsob, jakým krabicová aplikace implementuje jednovláknové nebo vícevláknové zpracování. Například SQL Server je schopen zpracovávat víceprocesorové a vícejádrové systémy. SQL Server se rozhoduje, za jakých podmínek použije jeden nebo více vláken ke zpracování dotazu. Může spouštět dotazy a vytvářet indexy pomocí vícevláknového zpracování. Při dotazu, který zahrnuje spojování velkých tabulek a třídění dat před vrácením uživateli, SQL Server pravděpodobně používá více vláken. Uživatel nemůže ovlivnit, zda SQL Server provádí dotaz pomocí jednoho vlákna nebo více vláken.
Existují konfigurační nastavení, která můžete upravit, abyste ovlivnili vícenásobné vláknění nebo paralelní zpracování aplikace. Například pro SQL Server je to konfigurace max degree of parallelism. Toto nastavení zvané MAXDOP vám umožňuje konfigurovat maximální počet procesorů, které může SQL Server použít při paralelním zpracování. Můžete nakonfigurovat MAXDOP pro jednotlivé dotazy nebo operace s indexy. Tato schopnost je užitečná, když chcete vyvážit zdroje svého systému pro výkonově kritickou aplikaci.
Například když vaše aplikace používající SQL Server provádí velký dotaz a indexovou operaci zároveň. Předpokládejme, že chcete, aby operace s indexem byla výkonnější ve srovnání s velkým dotazem. V takovém případě můžete nastavit hodnotu MAXDOP pro operaci indexu vyšší než hodnotu MAXDOP pro dotaz. Tímto způsobem má SQL Server více procesorů, než může využít pro operaci s indexem, ve srovnání s počtem procesorů, které může věnovat velkému dotazu. Nezapomeňte, že neřídíte počet vláken, která SQL Server používá pro každou operaci. Můžete ovládat maximální počet procesorů, které jsou určeny pro vícenásobné zpracování.
Přečtěte si další informace o stupních paralelismu v SQL Serveru. Zjistěte, jak taková nastavení ovlivňují multithreading ve vaší aplikaci a jejich konfigurace pro optimalizaci výkonu.
hloubka fronty
Hloubka fronty nebo délka fronty nebo velikost fronty je počet čekajících vstupně-výstupních požadavků v systému. Hodnota hloubky fronty určuje, kolik vstupně-výstupních operací může vaše aplikace zarovnat, které zpracovávají disky úložiště. Ovlivňuje všechny tři ukazatele výkonu aplikace, které jsou diskutovány v tomto článku: IOPS, průchodnost a latence.
Hloubka fronty a vícevláknové zpracování jsou úzce propojeny. Hodnota hloubky fronty udává, kolik paralelních vláken může aplikace využít. Pokud je hloubka fronty velká, aplikace může provozovat více operací současně, jinými slovy více multithreadingu. Pokud je délka fronty malá, i když je aplikace multithreadová, nebude mít dostatek požadavků k současnému zpracování.
Typické hotové aplikace vám neumožňují změnit hloubku fronty, protože pokud je nastavena nesprávně, způsobuje více škody než užitku. Aplikace nastavují správnou hodnotu hloubky fronty, aby dosáhly optimálního výkonu. Je důležité pochopit tento koncept, abyste mohli řešit problémy s výkonem vaší aplikace. Můžete také pozorovat účinky hloubky fronty spuštěním nástrojů pro benchmarking na vašem systému.
Některé aplikace poskytují nastavení k ovlivnění hloubky fronty. Například nastavení MAXDOP v SQL Serveru je vysvětleno v předchozí části. MAXDOP je způsob, jak ovlivnit hloubku fronty a multithreading, i když přímo nemění hodnotu hloubky fronty SQL Serveru.
Vysoká hloubka fronty
Vysoká hloubka fronty řadí na disk více operací. Disk zná další požadavek ve své frontě předem. Disk tedy může plánovat operace předem a zpracovávat je v optimálním pořadí. Protože aplikace posílá více požadavků na disk, disk může zpracovat více paralelních vstupů a výstupů (I/O). Nakonec může aplikace dosáhnout vyššího počtu IOPS. Protože aplikace zpracovává více požadavků, celková propustnost aplikace se také zvyšuje.
Typicky může aplikace dosáhnout maximální propustnosti s 8 až 16+ nevyřízenými I/O na připojený disk. Pokud je hloubka fronty jedna, aplikace do systému nenasdílí dostatek vstupně-výstupních operací a v daném období zpracuje menší množství. Jinými slovy, menší propustnost.
Například v SQL Serveru, nastavení hodnoty MAXDOP pro dotaz na 4 informuje SQL Server, že může použít až čtyři jádra k provedení dotazu. SQL Server určuje nejlepší hodnotu hloubky fronty a počet jader pro provádění dotazu.
Optimální hloubka fronty
Velmi vysoká hodnota hloubky fronty má také své nevýhody. Pokud je hodnota hloubky fronty příliš vysoká, aplikace se snaží dosáhnout velmi vysokého IOPS. Pokud aplikace nemá trvalé disky s dostatečným zřízeným IOPS, může velmi vysoká hodnota hloubky fronty negativně ovlivnit latence aplikace. Následující vzorec ukazuje vztah mezi vstupně-výstupními operacemi za sekundu, latencí a hloubkou fronty.
Neměli byste nastavovat hloubku fronty na příliš vysokou hodnotu, ale na optimální hodnotu, která zajistí dostatečný počet IOPS pro aplikaci, aniž by to ovlivnilo latence. Například, pokud latence aplikace musí být 1 milisekunda, hloubka fronty potřebná k dosažení 5 000 IOPS je QD = 5 000 x 0,001 = 5.
Hloubka fronty pro pruhovaný svazek
U prokládání svazku udržujte dostatečnou hloubku fronty, aby každý disk mohl mít hloubku fronty ve špičce jednotlivě. Například vezměte v úvahu aplikaci, která zasílá hloubku fronty 2, a ve stripe jsou čtyři disky. Dvě žádosti o vstup/výstup jdou na dva disky a zbývající dva disky jsou nečinné. Nastavte tedy hloubku fronty tak, aby všechny disky mohly být využité. Následující vzorec ukazuje, jak určit hloubku fronty pruhovaných svazků.
Diagram zobrazující rovnici: Q D na jeden disk krát počet sloupců na objem se rovná Q D pro pruhovaný objem.
Řízení výkonu/omezování rychlosti
Prémiové úložiště poskytuje stanovený počet IOPS a propustnost v závislosti na zvolených velikostech VM a velikostech disků. Kdykoli se vaše aplikace pokusí dosáhnout hodnoty IOPS nebo propustnosti nad limity, které může VM nebo disk zvládnout, prémiové úložiště to omezuje. Výsledkem je zhoršený výkon vaší aplikace, což může znamenat vyšší latenci, nižší propustnost nebo nižší IOPS.
Pokud prémiové úložiště nebude snižovat výkon, vaše aplikace může zcela selhat tím, že překročí možnosti svých zdrojů. Aby se zabránilo problémům s výkonem způsobeným omezením, vždy zajistěte dostatečné zdroje pro svou aplikaci. Vezměte v úvahu to, o čem jsme diskutovali v předchozích sekcích o velikostech VM a velikostech disků. Benchmarking je nejlepší způsob, jak zjistit, jaké zdroje potřebujete k hostování vaší aplikace.
Další kroky
Pokud chcete prověřit výkon svého disku, podívejte se na následující články:
- Pro Linux: Srovnejte svou aplikaci na úložišti Azure Disk
- Pro Windows: Testování disku
Dozvědět se více o dostupných typech disků:
- Pro Linux: Vyberte typ disku
- Pro Windows: Vyberte typ disku
Pro uživatele SQL Serveru si přečtěte články o osvědčených postupech pro výkon SQL Serveru: