Azure Premium Storage: Návrh pro zajištění vysokého výkonu
Platí pro: ✔️ Virtuální počítače s Windows s Linuxem ✔️ ✔️ – Flexibilní škálovací sady Uniform Scale Sets ✔️
Tento článek obsahuje pokyny pro vytváření vysoce výkonných aplikací pomocí služby Azure Premium Storage. Můžete použít pokyny uvedené v tomto dokumentu v kombinaci s osvědčenými postupy z hlediska výkonu, které se vztahují na technologie používané vaší aplikací. K ilustraci pokynů používáme SQL Server běžící v úložišti Premium jako příklad v tomto dokumentu.
I když řešíme scénáře výkonu vrstvy úložiště v tomto článku, musíte optimalizovat aplikační vrstvu. Pokud například hostujete farmu Služby SharePoint v úložišti úrovně Premium, můžete k optimalizaci databázového serveru použít příklady SQL Serveru z tohoto článku. Můžete také optimalizovat webový server a aplikační server sharepointové farmy, abyste získali nejvyšší výkon.
Tento článek vám pomůže zodpovědět následující běžné otázky týkající se optimalizace výkonu aplikací ve službě Premium Storage:
- Jak můžete měřit výkon aplikace?
- Proč se vám nezobrazuje očekávaný vysoký výkon?
- Které faktory ovlivňují výkon vaší aplikace ve službě Premium Storage?
- Jak tyto faktory ovlivňují výkon vaší aplikace ve službě Premium Storage?
- Jak můžete optimalizovat vstupně-výstupní operace za sekundu (IOPS), šířku pásma a latenci?
Tyto pokyny poskytujeme speciálně pro premium storage, protože úlohy běžící na úložišti Úrovně Premium jsou vysoce citlivé na výkon. Tam, kde je to vhodné, poskytujeme příklady. Některé z těchto pokynů můžete použít také u aplikací běžících na virtuálních počítačích IaaS (Infrastruktura jako služba) se standardními disky úložiště.
Poznámka:
Někdy se zdá, že problém s výkonem disku je ve skutečnosti kritickým bodem sítě. V těchto situacích byste měli optimalizovat výkon sítě.
Pokud chcete disk otestovat, přečtěte si následující články:
- Pro Linux: Srovnávací testy vaší aplikace v Azure Disk Storage
- Pro Windows: Srovnávací test disku
Pokud váš virtuální počítač podporuje akcelerované síťové služby, ujistěte se, že je povolený. Pokud není povolený, můžete ho povolit na již nasazených virtuálních počítačích ve Windows i Linuxu.
Než začnete, pokud s Úložištěm úrovně Premium teprve začínáte, přečtěte si nejprve článek Výběr typu disku Azure pro virtuální počítače IaaS a cíle škálovatelnosti pro účty úložiště objektů blob stránky úrovně Premium.
Indikátory výkonu aplikací
Posuzujeme, jestli aplikace funguje dobře, nebo ne, pomocí ukazatelů výkonu, jako jsou:
- Jak rychle aplikace zpracovává žádost uživatele.
- Kolik dat aplikace zpracovává na požadavek.
- Kolik požadavků aplikace zpracovává v určitém časovém období.
- Jak dlouho musí uživatel čekat na získání odpovědi po odeslání žádosti.
Technické termíny těchto ukazatelů výkonu jsou IOPS, propustnost nebo šířka pásma a latence.
V této části probereme běžné ukazatele výkonu v kontextu služby Premium Storage. V části Kontrolní seznam aplikace výkonu pro disky zjistíte, jak měřit tyto ukazatele výkonu pro vaši aplikaci. Později v části Optimalizace výkonu aplikací se dozvíte o faktorech, které ovlivňují tyto ukazatele výkonu a doporučení k jejich optimalizaci.
IOPS
IOPS je počet požadavků, které vaše aplikace odesílá na disky úložiště za jednu sekundu. Vstupní/výstupní operace 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ů. Požadavky uživatelů jsou databázové transakce náročné na vložení a aktualizaci, které musí aplikace rychle zpracovat. Z tohoto důvodu aplikace OLTP vyžadují velmi vysoké IOPS.
Aplikace OLTP zpracovávají miliony malých a náhodných vstupně-výstupních požadavků. Pokud takovou aplikaci máte, musíte navrhnout infrastrukturu aplikace tak, aby byla optimalizovaná pro IOPS. Další informace o všech faktorech, které je potřeba zvážit pro získání vysokého IOPS, najdete v tématu Optimalizace výkonu aplikace.
Když k virtuálnímu počítači s vysokým škálováním připojíte disk služby Premium Storage, Azure vám podle specifikace disku zřídí zaručený počet IOPS. Například disk P50 zřídí 7 500 IOPS. Každá velikost virtuálního počítače ve velkém měřítku má také konkrétní limit IOPS, který může udržovat. Například virtuální počítač Standard GS5 má limit 80 000 IOPS.
Propustnost
Propustnost nebo šířka pásma je množství dat, která vaše aplikace odesílá na disky úložiště v zadaném intervalu. Pokud vaše aplikace provádí vstupně-výstupní operace s velkými velikostmi vstupně-výstupních jednotek, vyžaduje vysokou propustnost. Aplikace datového skladu obvykle vydávají operace náročné na kontrolu, 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 takovou aplikaci máte, musíte navrhnout její infrastrukturu pro optimalizaci propustnosti. V další části probereme faktory, které je potřeba vyladit, abyste tuto optimalizaci dosáhli.
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 virtuálního počítače ve velkém měřítku má také konkrétní limit propustnosti, který může udržovat. Například virtuální počítač Standard GS5 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é určit optimální propustnost a hodnoty IOPS, které vaše aplikace vyžaduje. Při pokusu o optimalizaci je ovlivněna i druhá. Další informace o optimalizaci IOPS a propustnosti najdete v tématu Optimalizace výkonu aplikace.
Latence
Latence je doba, kterou aplikace potřebuje k přijetí jednoho požadavku, odeslání na disky úložiště a odeslání odpovědi klientovi. Latence je důležitou mírou výkonu aplikace kromě IOPS a propustnosti. Latence disku služby Premium Storage je doba, kterou trvá načtení informací o požadavku a jejich zpětné komunikaci s vaší aplikací. Premium Storage poskytuje konzistentně nízkou latenci. Disky Premium jsou navržené tak, aby poskytovaly latence v řádu milisekund pro většinu vstupně-výstupních operací. Pokud povolíte ukládání hostitelů do mezipaměti jen pro čtení na discích služby Premium Storage, můžete dosáhnout mnohem nižší latence čtení. Další informace o ukládání do mezipaměti na disku najdete v tématu Ukládání do mezipaměti disku.
Když aplikaci optimalizujete tak, aby získala vyšší počet IOPS a propustnost, ovlivňuje latenci vaší aplikace. Po vyladění výkonu aplikace vyhodnoťte latenci aplikace, abyste se vyhnuli neočekávanému vysokému chování latence.
Některé operace řídicí roviny na spravovaných discích můžou disk přesunout z jednoho umístění úložiště do jiného. Přesun disku mezi umístěními úložiště se orchestruje prostřednictvím kopie dat na pozadí, což 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í se můžou přesměrovat do původního umístění a dokončení trvá déle.
Během kopírování na pozadí nemá u většiny typů disků žádný vliv na latenci zápisu. U disků SSD úrovně Premium v2 a Ultra, pokud má disk velikost sektoru 4K, dojde k vyšší latenci čtení. Pokud má disk velikost sektoru 512e, dojde k vyšší latenci čtení a zápisu.
Následující operace řídicí roviny můžou disk přesouvat mezi umístěními úložiště a způsobit zvýšenou latenci:
- Aktualizujte typ úložiště.
- Odpojte a připojte disk z jednoho virtuálního počítače k jinému.
- Vytvořte spravovaný disk z virtuálního pevného disku.
- Vytvoření spravovaného disku ze snímku
- Převeďte nespravované disky na spravované disky.
Kontrolní seznam aplikací pro výkon pro disky
Prvním krokem při návrhu vysoce výkonných aplikací běžících v premium storage je pochopení požadavků na výkon vaší aplikace. Jakmile shromáždíte požadavky na výkon, můžete aplikaci optimalizovat tak, aby dosáhla optimálního výkonu.
V předchozí části jsme vysvětlili běžné ukazatele výkonu: IOPS, propustnost a latenci. Abyste mohli zajistit požadované uživatelské prostředí, musíte určit, které z těchto ukazatelů výkonu jsou pro vaši aplikaci důležité. Vysoké IOPS je například nejdůležitější pro aplikace OLTP zpracovávající miliony transakcí za sekundu. Vysoká propustnost je důležitá pro aplikace datového skladu zpracovávající velké objemy dat za sekundu. Extrémně nízká latence je zásadní pro aplikace v reálném čase, jako jsou weby streamování živého videa.
Dále změřte maximální požadavky na výkon vaší aplikace po celou dobu jeho životnosti. Jako začátek použijte následující ukázkový kontrolní seznam. Zaznamenejte maximální požadavky na výkon během normálního období, špičky a mimohodinových úloh. Určením požadavků na všechny úrovně úloh můžete určit celkový požadavek na výkon vaší aplikace.
Například běžným zatížením webu elektronického obchodování jsou transakce, které slouží ve většině dnů v roce. Špičkou úlohy webu jsou transakce, které slouží během svátků nebo zvláštních prodejních akcí. Špička úlohy se obvykle vyskytuje po omezenou dobu, ale může vyžadovat, aby vaše aplikace škálovala dvakrát nebo vícekrát svou normální operaci. Zjistěte požadavky na 50 percentilu, 90 percentilu a 99 percentilu. Tyto informace pomáhají odfiltrovat odlehlé hodnoty v požadavcích na výkon a můžete se zaměřit na optimalizaci správných hodnot.
Kontrolní seznam požadavků na výkon aplikací
Požadavky na výkon | 50 percentilu | 90 percentil | 99 percentilu |
---|---|---|---|
Maximální počet transakcí za sekundu | |||
% operací čtení | |||
% operací zápisu | |||
% náhodných operací | |||
% sekvenčních operací | |||
Velikost V/V požadavku | |||
Průměrná propustnost | |||
Maximální propustnost | |||
Minimální latence | |||
Průměrná latence | |||
Maximální využití procesoru | |||
Průměrné procento využití procesoru | |||
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 vhodné naplánovat růst předem, protože může být obtížnější změnit infrastrukturu pro pozdější 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. Pak vytvořte prototyp vaší aplikace v premium storage a navrhněte aplikaci na základě pokynů popsaných v tématu Optimalizace výkonu aplikace. Další článek popisuje nástroje, které můžete použít ke shromáždění měření výkonu.
Čítače pro měření požadavků na výkon aplikace
Nejlepším způsobem, jak měřit požadavky na výkon aplikace, je použít PerfMon
nástroje pro monitorování poskytované operačním systémem serveru. Můžete použít PerfMon
pro Windows a iostat
Linux. Tyto nástroje zaznamenávají čítače odpovídající jednotlivým mírám, které jsou vysvětleny v předchozí části. Hodnoty těchto čítačů musíte zaznamenat, když vaše aplikace běží v normálním, špičkovém a mimohodinovém provozu.
PerfMon
Čítače jsou k dispozici pro procesor, paměť a každý logický disk a fyzický disk vašeho serveru. Pokud s virtuálním počítačem používáte disky služby Premium Storage, čítače fyzických disků jsou určené pro každý disk služby Premium Storage a čítače logických disků jsou určené pro každý svazek vytvořený na discích služby Premium Storage. Je nutné zaznamenat hodnoty disků, které hostují úlohu vaší aplikace. Pokud je mezi logickými a fyzickými disky mapování 1:1, můžete odkazovat na čítače fyzických disků. V opačném případě se podívejte na čítače logických disků.
V Linuxu příkaz iostat
vygeneruje sestavu využití procesoru a disku. Sestava využití disku poskytuje statistiky na fyzické zařízení nebo oddíly. Pokud máte databázový server s daty a protokoly 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ěť.
Čítač | Popis | PerfMon | iostat |
---|---|---|---|
IOPS nebo transakce za sekundu | Počet V/V požadavků vydaných na disk úložiště za sekundu | Čtení disku za sekundu Zápisy na disk za sekundu |
Tps r/s w/s |
Čtení a zápisy na disk | % operací čtení a zápisu provedených na disku | % času čtení disku % času zápisu na disk |
r/s w/s |
Propustnost | Množství dat načtených z disku nebo zápisu na disk/s | Bajty čtení disku za sekundu Bajty zápisu na disk za sekundu |
kB_read/s kB_wrtn/s |
Latence | Celková doba dokončení V/V požadavku na disk | Průměrný počet sekund za sekundu/čtení disku Average disk sec/write |
očekávat svctm |
Velikost vstupně-výstupních operací | Velikost problémů s vstupně-výstupními požadavky na disky úložiště | Average disk bytes/read Average disk bytes/write |
avgrq-sz |
Hloubka fronty | Počet nevyřízených vstupně-výstupních požadavků čekajících na čtení nebo zápis na disk úložiště | Aktuální délka fronty disku | avgqu-sz |
Maximální paměť | Množství paměti potřebné ke spuštění aplikace hladce | % potvrzených bajtů, které se používají | Použití vmstat |
Maximální využití procesoru | Množství procesoru potřebného ke spuštění aplikace hladce | % času procesoru | %util |
Přečtěte si další informace o iostatu a nástroji PerfMon.
Optimalizace výkonu aplikace
Hlavními faktory, které ovlivňují výkon aplikace spuštěné ve službě Premium Storage, jsou povaha vstupně-výstupních požadavků, velikosti virtuálního počítače, velikosti disku, počtu disků, ukládání do mezipaměti disku, vícevláknového šifrování a hloubky fronty. Některé z těchto faktorů můžete řídit pomocí knobů poskytovaných systémem.
Většina aplikací vám nemusí dát možnost přímo změnit velikost vstupně-výstupních operací a hloubku fronty. Pokud například používáte SQL Server, nemůžete zvolit velikost vstupně-výstupních operací a hloubku fronty. SQL Server zvolí optimální velikost vstupně-výstupních operací a hodnoty hloubky fronty, abyste získali nejvyšší výkon. 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 si projděte kontrolní seznam požadavků na aplikace, který jste vytvořili, abyste zjistili, kolik potřebujete k optimalizaci výkonu aplikace. Na základě kontrolního seznamu můžete určit, které faktory z této části potřebujete vyladit.
Abyste viděli vliv jednotlivých faktorů na výkon vaší aplikace, spusťte v nastavení aplikace srovnávací nástroje. Postup spuštění běžných nástrojů pro srovnávací testy na virtuálních počítačích s Windows a Linuxem najdete v článcích o srovnávacích testech na konci tohoto dokumentu.
Přehledné optimalizace vstupně-výstupních operací za sekundu, propustnosti a latence
Následující tabulka shrnuje faktory výkonu a kroky potřebné k optimalizaci vstupně-výstupních operací za sekundu, propustnosti a latence. Oddíly následující v tomto souhrnu popisují každý faktor podrobněji.
Další informace o velikostech virtuálních počítačů a o vstupně-výstupních operacích za sekundu, propustnosti a latenci dostupných pro jednotlivé typy virtuálních počítačů najdete v tématu Velikosti virtuálních počítačů v Azure.
Faktory výkonu | IOPS | Propustnost | Latence |
---|---|---|---|
Ukázkový scénář | Podniková aplikace OLTP vyžadující velmi vysoké transakce za sekundu. | Aplikace podnikového datového skladu zpracovává velké objemy dat. | Aplikace téměř v reálném čase vyžadují okamžité odpovědi na žádosti uživatelů, jako jsou online hry. |
Faktory výkonu | |||
Velikost vstupně-výstupních operací | Menší velikost vstupně-výstupních operací přináší vyšší počet vstupně-výstupních operací za sekundu. | Větší velikost vstupně-výstupních operací přináší vyšší propustnost. | |
Velikost virtuálního počítače | Použijte velikost virtuálního počítače, která nabízí IOPS větší než požadavek vaší aplikace. | Použijte velikost virtuálního počítače s limitem propustnosti, který je větší než požadavek vaší aplikace. | Použijte velikost virtuálního počítače, která nabízí omezení škálování větší než požadavek vaší aplikace. |
Velikost disku | Použijte velikost disku, která nabízí IOPS větší než požadavek vaší aplikace. | Použijte velikost disku s limitem propustnosti, který je větší než požadavek vaší aplikace. | Použijte velikost disku, která nabízí omezení škálování větší než požadavek vaší aplikace. |
Omezení škálování virtuálních počítačů a disků | Limit IOPS zvolené velikosti virtuálního počítače by měl být větší než celkový počet vstupně-výstupních operací za sekundu řízený připojenými disky úložiště. | Limit propustnosti zvolené velikosti virtuálního počítače by měl být větší než celková propustnost založená na připojených discích služby Premium Storage. | Omezení škálování zvolené velikosti virtuálního počítače musí být větší než celková omezení škálování připojených disků služby Premium Storage. |
Mezipaměť disku | Povolte mezipaměť ReadOnly na discích premium Storage s operacemi náročnými na čtení, abyste získali vyšší IOPS čtení. | Povolte mezipaměť ReadOnly na discích premium storage s operacemi náročnými na čtení, abyste získali velmi nízkou latenci čtení. | |
Prokládání disků | Použijte více disků a propojte je dohromady, abyste získali kombinovaný limit IOPS a propustnosti. Kombinovaný limit na virtuální počítač by měl být vyšší než kombinované limity připojených disků Premium. | ||
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 pruhu pro sekvenční velký vstupně-výstupní vzor, který vidíte v aplikacích datového skladu. Například pro aplikaci datového skladu SQL Serveru použijte velikost pruhu o velikosti 256 kB. | |
Multithreading | Použití multithreadingu k nasdílení vyššího počtu požadavků do služby Premium Storage, což vede k vyššímu počtu vstupně-výstupních operací za sekundu a propustnosti. Například na SQL Serveru nastavte vysokou hodnotu MAXDOP pro přidělení více procesorů SQL Serveru. | ||
Hloubka fronty | Větší hloubka fronty přináší vyšší počet vstupně-výstupních operací za sekundu. | Větší hloubka fronty přináší vyšší propustnost. | Menší hloubka fronty přináší nižší latenci. |
Povaha vstupně-výstupních požadavků
V/V požadavek je jednotka vstupní/výstupní operace, kterou vaše aplikace provádí. Určení povahy vstupně-výstupních požadavků, náhodných nebo sekvenčních, čtení nebo zápisu, malých nebo velkých, pomáhá určit požadavky na výkon vaší aplikace. Je důležité pochopit povahu vstupně-výstupních požadavků, abyste při návrhu infrastruktury aplikací mohli učinit správná rozhodnutí. Vstupně-výstupní operace musí být rovnoměrně distribuovány, aby bylo možné dosáhnout nejlepšího možného výkonu.
Velikost vstupně-výstupních operací je jedním z důležitějších faktorů. Vstupně-výstupní velikost je velikost požadavku na vstupně-výstupní operaci vygenerovanou vaší aplikací. Velikost vstupně-výstupních operací má významný vliv na výkon, zejména u vstupně-výstupních operací za sekundu a šířky pásma, které může aplikace dosáhnout. Následující vzorec ukazuje vztah mezi vstupně-výstupními operacemi za sekundu a šířkou pásma a propustností.
Některé aplikace umožňují změnit jejich velikost vstupně-výstupních operací, zatímco některé aplikace ne. 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 s názvem DB_BLOCK_SIZE, který můžete použít ke konfiguraci velikosti vstupně-výstupních požadavků databáze.
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ší. Příklad:
- Aplikace OLTP generuje miliony malých a náhodných vstupně-výstupních požadavků. Pokud chcete tyto typy vstupně-výstupních požadavků zpracovat, musíte navrhnout infrastrukturu aplikace tak, aby získala vyšší počet IOPS.
- Aplikace datového skladu generuje velké a sekvenční vstupně-výstupní požadavky. 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á umožňuje změnit velikost vstupně-výstupních operací, použijte toto pravidlo pro velikost vstupně-výstupních operací kromě dalších pokynů k výkonu:
- Menší vstupně-výstupní velikost pro získání vyššího počtu vstupně-výstupních operací za sekundu Například 8 kB pro aplikaci OLTP.
- Větší vstupně-výstupní velikost pro získání větší šířky pásma a propustnosti. 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í počet vstupně-výstupních operací za sekundu a propustnost/šířka pásma disku P30 je 5 000 IOPS a 200 MB/s. Pokud vaše aplikace vyžaduje maximální počet IOPS z disku P30 a použijete menší vstupně-výstupní velikost, 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 nebo šířku pásma z disku P30 a použijete větší vstupně-výstupní velikost, například 1 024 kB, výsledný počet IOPS je menší, například 200 IOPS.
Vylaďte velikost vstupně-výstupních operací tak, aby splňovala požadavky vaší aplikace na vstupně-výstupní operace i propustnost a šířku pásma. Následující tabulka shrnuje různé velikosti vstupně-výstupních operací a jejich odpovídající vstupně-výstupní operace za sekundu a propustnost disku P30.
Požadavek aplikace | Velikost vstupně-výstupních operací | 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í počet vstupně-výstupních operací za sekundu + vysoká propustnost | 32 kB | 5 000 | 160 MB/s |
Pokud chcete získat IOPS a šířku pásma vyšší než maximální hodnota jednoho disku služby Premium Storage, použijte více disků úrovně Premium prokládání. Například prokládáním dvou disků P30 získáte kombinované IOPS 10 000 IOPS nebo kombinovanou propustnost 400 MB/s. Jak je vysvětleno v další části, musíte použít velikost virtuálního počítače, která podporuje kombinované IOPS a propustnost disku.
Poznámka:
S nárůstem počtu IOPS nebo propustnosti se také zvyšuje. Ujistěte se, že při zvětšování disku nebo virtuálního počítače nedosáhnete omezení propustnosti nebo IOPS disku nebo virtuálního počítače.
Abyste viděli vliv vstupně-výstupních operací na výkon aplikace, můžete na virtuálním počítači a discích spouštět srovnávací nástroje. Vytvořte několik testovacích běhů a pro každé spuštění použijte jinou velikost vstupně-výstupních operací, abyste viděli efekt. Další informace najdete v článcích o srovnávacích testech na konci tohoto dokumentu.
Velikosti virtuálních počítačů ve velkém měřítku
Když začnete navrhovat aplikaci, jednou z prvních věcí, kterou je potřeba udělat, je zvolit virtuální počítač, který bude hostovat vaši aplikaci. Premium Storage obsahuje vysoce škálovatelné velikosti virtuálních počítačů, které můžou spouštět aplikace vyžadující vyšší výpočetní výkon a vysoký výkon vstupně-výstupních operací místního disku. Tyto virtuální počítače poskytují rychlejší procesory, vyšší poměr paměti k jádru a jednotku SSD (Solid-State Drive) pro místní disk. Příkladem vysoce škálovaných virtuálních počítačů podporujících premium storage jsou virtuální počítače řady DS a GS.
Virtuální počítače s vysokým škálováním jsou dostupné v různých velikostech s různým počtem jader procesoru, paměti, operačního systému a dočasné velikosti disku. Každá velikost virtuálního počítače má také maximální počet datových disků, které můžete k virtuálnímu počítači připojit. Vybraná velikost virtuálního počítače má vliv na to, kolik procesoru, paměti a kapacity úložiště je pro vaši aplikaci k dispozici. Ovlivňuje také náklady na výpočetní prostředky a úložiště. Například následující specifikace jsou určené pro největší velikost virtuálního počítače v řadě DS a řady GS.
Velikost virtuálního počítače | Procesorová jádra | Memory (Paměť) | Velikosti disků virtuálních počítačů | Maximální počet datových disků | Velikost mezipaměti | IOPS | Omezení vstupně-výstupních operací mezipaměti šíř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 |
Úplný seznam všech dostupných velikostí virtuálních počítačů Azure najdete v tématu Velikosti virtuálních počítačů v Azure. Zvolte velikost virtuálního počítače, která může splňovat a škálovat podle požadovaných požadavků na výkon aplikace. Při výběru velikosti virtuálních počítačů také vezměte v úvahu následující důležité aspekty.
Omezení škálování
Maximální limity vstupně-výstupních operací za sekundu na virtuální počítač a na disku se liší a vzájemně nezávisle na sobě. Ujistěte se, že aplikace řídí vstupně-výstupní operace za sekundu v rámci limitů virtuálního počítače a disků Úrovně Premium, které jsou k němu připojené. Jinak dochází k omezování výkonu aplikací.
Předpokládejme například, že požadavek aplikace je maximálně 4 000 IOPS. K dosažení této úrovně zřídíte disk P30 na virtuálním počítači DS1. Disk P30 dokáže dodat až 5 000 IOPS. Virtuální počítač DS1 je ale omezený na 3 200 IOPS. Výkon aplikace je proto omezený limitem virtuálního počítače na 3 200 IOPS a výkon je snížený. Pokud chcete této situaci zabránit, zvolte virtuální počítač a velikost disku, které splňují požadavky aplikace.
Náklady na provoz
V mnoha případech je možné, že celkové náklady na provoz s využitím služby Premium Storage jsou nižší než využití služby Storage úrovně Standard.
Představte si například aplikaci, která vyžaduje 16 000 IOPS. K dosažení tohoto výkonu potřebujete Standard_D14 virtuální počítač Azure IaaS, který může poskytnout maximální počet IOPS 16 000 pomocí disků 1 TB úložiště úrovně Standard. Každý disk úložiště úrovně Standard 1 TB může dosáhnout maximálně 500 IOPS.
- Odhadované náklady na tento virtuální počítač za měsíc jsou 1 570 USD.
- Měsíční náklady na 32 disků úložiště úrovně Standard jsou 1 638 USD.
- Odhadované měsíční náklady jsou 3 208 USD.
Pokud jste hostli stejnou aplikaci ve službě Premium Storage, potřebujete menší velikost virtuálního počítače a méně disků služby Premium Storage, což snižuje celkové náklady. Virtuální počítač Standard_DS13 může splňovat požadavek 16 000 IOPS pomocí čtyř disků P30. Virtuální počítač DS13 má maximální počet IOPS 25 600 a každý disk P30 má maximální počet IOPS 5 000. Celkově může tato konfigurace dosáhnout 5 000 x 4 = 20 000 IOPS.
- Odhadované náklady na tento virtuální počítač za měsíc jsou 1 003 USD.
- Měsíční náklady na čtyři disky úložiště P30 Premium jsou 544,34 USD.
- Odhadované měsíční náklady jsou 1 544 USD.
Následující tabulka shrnuje rozpis nákladů tohoto scénáře pro službu Standard a Premium Storage.
Měsíční náklady | Standard | Premium |
---|---|---|
Náklady na virtuální počítač 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č |
Distribuce Linuxu
Se službou Premium Storage získáte stejnou úroveň výkonu pro virtuální počítače s Windows a Linuxem. Podporujeme mnoho variant distribucí Linuxu. Další informace najdete v distribucích Linuxu schválených v Azure.
Různé distribuce jsou vhodnější pro různé typy úloh. Zobrazí se různé úrovně výkonu v závislosti na distribuci, na které je vaše úloha spuštěná. Otestujte distribuce Linuxu s vaší aplikací a zvolte ten, 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ů služby Premium Storage
Premium Storage nabízí různé velikosti, abyste si mohli vybrat ten, který nejlépe vyhovuje vašim potřebám. Každá velikost disku má jiný limit škálování pro IOPS, šířku pásma a úložiště. V závislosti na požadavcích aplikace a velikosti virtuálního počítače s vysokým měřítkem vyberte správnou velikost disku služby Premium Storage. Následující tabulka uvádí velikosti disků a jejich možnosti. Velikosti P4, P6, P15, P60, P70 a P80 se v současné době podporují jenom pro spravované disky.
Velikosti SSD úrovně Premium | O1 | 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í zřízený vstupně-výstupních operací za sekundu 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 | – | – | – | – | – | – | – | N/A | 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 | – | – | – | – | – | – | – | N/A | 300 MB/s | 600 MB/s | 900 MB/s | 900 MB/s | 900 MB/s | 900 MB/s |
Maximální počet 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í propustnost nárazové propustnosti 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í nárazu | 30 min. | 30 min. | 30 min. | 30 min. | 30 min. | 30 min. | 30 min. | 30 min. | Neomezený* | Neomezený* | Neomezený* | Neomezený* | Neomezený* | Neomezený* |
Nárok na rezervaci | No | No | No | No | No | No | No | 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 nárazovým nárůstem na vyžádání.
** Platí pouze pro disky s povoleným výkonem plus (Preview).
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 jednotlivých velikostí disků Úrovně Premium se liší a jsou nezávislé na limitech škálování virtuálních počítačů. Ujistěte se, že celkový počet vstupně-výstupních operací za sekundu a propustnost z disků je v mezích škálování zvolené velikosti virtuálního počítače.
Pokud je například požadavek na aplikaci maximálně 250 MB/s propustností a používáte virtuální počítač DS4 s jedním diskem P30, může virtuální počítač DS4 poskytnout až 256 MB/s propustnost. Jeden disk P30 má ale limit propustnosti 200 MB/s. Aplikace je proto kvůli limitu disku omezená na 200 MB/s. Pokud chcete tento limit překonat, zřiďte virtuálnímu počítači více než jeden datový disk nebo změňte velikost disků na P40 nebo P50.
Poznámka:
Čtení obsluhovaná mezipamětí nejsou zahrnutá v vstupně-výstupních operacích za sekundu disku a propustnosti, takže se na ně nevztahují omezení disku. Mezipaměť má samostatné IOPS a limit propustnosti na virtuální počítač.
Například počáteční čtení a zápisy jsou 60 MB/s a 40 MB/s, v uvedeném pořadí. Mezipaměť se v průběhu času zahřeje a slouží více a více čtení z mezipaměti. Potom můžete z disku získat vyšší propustnost zápisu.
Počet disků
Zjistěte, kolik disků potřebujete, posouzením požadavků na aplikaci. 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 se jedná o dvojnásobek počtu jader. Ujistěte se, že velikost virtuálního počítače, kterou zvolíte, podporuje požadovaný počet disků.
Nezapomeňte, že disky služby Premium Storage mají ve srovnání s disky úložiště úrovně Standard vyšší výkon. Pokud migrujete aplikaci z virtuálního počítače Azure IaaS pomocí úložiště úrovně Standard do služby Premium Storage, budete pravděpodobně potřebovat méně disků Úrovně Premium, abyste dosáhli stejného nebo vyššího výkonu pro vaši aplikaci.
Mezipaměť disku
Vysoce škálovatelné virtuální počítače, které používají premium storage, mají vícevrstvé technologie ukládání do mezipaměti s názvem BlobCache. BlobCache používá pro ukládání do mezipaměti kombinaci hostitelské paměti RAM a místního disku SSD. Tato mezipaměť je k dispozici pro trvalé disky služby Premium Storage a místní disky virtuálního počítače. Ve výchozím nastavení je toto nastavení mezipaměti nastavené na ReadWrite pro disky s operačním systémem a jen pro čtení datových disků hostovaných v úložišti Premium. Díky ukládání do mezipaměti na discích služby Premium Storage můžou vysoce škálované virtuální počítače dosáhnout extrémně vysoké úrovně výkonu, které překračují základní výkon disku.
Upozorňující
Ukládání do mezipaměti disku není podporováno pro disky 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 jde o disk s operačním systémem, restartuje se celý virtuální počítač. Před změnou nastavení mezipaměti disku zastavte všechny aplikace a služby, které mohou být tímto přerušením ovlivněny. Nedosaž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ů. Bez ohledu na to, jestli byste měli povolit ukládání do mezipaměti na disku úrovně Premium, nebo ne, závisí na vzoru úloh, který disk zpracovává. Následující tabulka ukazuje výchozí nastavení mezipaměti pro disky s operačním systémem a datovými disky.
Typ disku | Výchozí nastavení mezipaměti |
---|---|
Disk OS | ReadWrite |
Datový disk | Jen pro čtení |
Pro datové disky doporučujeme následující nastavení mezipaměti disku.
Nastavení ukládání do mezipaměti disku | Doporučení pro použití tohoto nastavení |
---|---|
Nic | Nakonfigurujte mezipaměť hostitele jako Žádnou pro disky s velkými nároky na zápis a zápis. |
Jen pro čtení | Nakonfigurujte mezipaměť hostitele jako jen pro čtení a zápis na disky jen pro čtení a zápis. |
ReadWrite | Nakonfigurujte mezipaměť hostitele jako ReadWrite pouze v případě, že vaše aplikace v případě potřeby správně zpracovává zápis dat uložených v mezipaměti na trvalé disky. |
Jen pro čtení
Konfigurací ukládání do mezipaměti Jen pro čtení na datových discích Premium Storage můžete dosáhnout nízké latence čtení a dosáhnout velmi vysokého počtu vstupně-výstupních operací čtení a propustnosti pro vaši aplikaci ze 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.
- Premium Storage nepočítá čtení obsluhované z mezipaměti do vstupně-výstupních operací disku za sekundu a propustnost. 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.
ReadWrite
Ve výchozím nastavení mají disky s operačním systémem povolené ukládání do mezipaměti ReadWrite . Nedávno jsme také přidali podporu ukládání do mezipaměti ReadWrite na datových discích. Pokud používáte ukládání do mezipaměti ReadWrite , musíte mít správný způsob zápisu dat z mezipaměti na trvalé disky. SQL Server například zpracovává zápis dat uložených v mezipaměti na trvalé disky úložiště samostatně. Použití mezipaměti ReadWrite s aplikací, která nezvládá zachování požadovaných dat, může vést ke ztrátě dat, pokud dojde k chybovému ukončení virtuálního počítače.
Nic
V současné době se žádné nepodporuje jenom na datových discích. Nepodporuje se na discích operačního systému. Pokud nastavíte hodnotu None na disku s operačním systémem, přepíše toto nastavení interně a nastaví ho na Jen pro čtení.
Jako příklad můžete použít tyto pokyny pro SQL Server spuštěný v premium storage pomocí následujícího postupu:
- Nakonfigurujte mezipaměť ReadOnly na discích služby Premium Storage hostující 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ů.
- Obsluha čtení z mezipaměti znamená, že je k dispozici větší propustnost z datových disků Premium. SQL Server může tuto dodatečnou propustnost použít k načítání dalších datových stránek a dalších operací, jako je zálohování/obnovení, dávkové načítání a opětovné sestavení indexu.
- Nakonfigurujte mezipaměť None (Žádná) na discích služby Premium Storage, které hostí soubory protokolů.
- Soubory protokolu mají primárně operace s velkými nároky na zápis, takže nemají prospěch z mezipaměti ReadOnly .
Optimalizace výkonu na virtuálních počítačích s Linuxem
U všech disků SSD úrovně Premium nebo disků Úrovně Ultra můžete zakázat překážky pro systémy souborů na disku, aby se zlepšil výkon, pokud 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 ve výchozím nastavení obvykle povolené, ale v závislosti na typu systému souborů můžete zakázat překážky pomocí jedné z následujících metod:
- reiserFS: Pomocí možnosti barrier=none mount zakažte bariéry. Pokud chcete explicitně povolit bariéry, použijte barrier=flush.
- ext3/ext4: Pomocí možnosti bariéry=0 zakažte bariéry. Pokud chcete explicitně povolit bariéry, použijte bariéru=1.
- XFS: K zakázání bariér použijte možnost nobarrieru . Pokud chcete explicitně povolit bariéry, použijte bariéru. Od verze 4.10 hlavního jádra Linuxu zajišťuje návrh systému souborů XFS vždy odolnost. Zakázání překážek nemá žádný vliv a možnost nobarrier je zastaralá. Některé linuxové distribuce ale mohly vrátit změny do verze distribuce se starší verzí jádra. Zkontrolujte u dodavatele distribuce stav v distribuci a verzi, kterou používáte.
Prokládání disků
Pokud je virtuální počítač s vysokým škálováním připojený k několika trvalým diskům služby Premium Storage, je možné disky proložit dohromady, aby agregovaly své vstupně-výstupní operace za sekundu, šířku pásma a kapacitu úložiště.
Ve Windows můžete použít Prostory úložiště k prokládání disků. Pro každý disk ve fondu musíte nakonfigurovat jeden sloupec. Jinak může být celkový výkon prokláněného svazku nižší, než se očekávalo kvůli nerovnoměrnému rozdělení provozu mezi disky.
Pomocí uživatelského rozhraní Správce serveru můžete nastavit celkový počet sloupců až pro 8
pruhovaný svazek. Pokud připojujete více než osm disků, vytvořte svazek pomocí PowerShellu. Pomocí PowerShellu můžete nastavit počet sloupců, které se rovnají počtu disků. Pokud je například v jedné sadě pruhů 16 disků, zadejte 16
sloupce v NumberOfColumns
parametru rutiny PowerShellu New-VirtualDisk
.
V Linuxu pomocí nástroje MDADM odstraňte disky dohromady. Postup prokládání disků v Linuxu najdete v tématu Konfigurace softwarového RAID v 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 pruhu, kterou nakonfigurujete, závisí na typu aplikace a vzoru požadavku. Pokud zvolíte nesprávnou velikost pruhu, může to vést k nesprávnému zarovnání vstupně-výstupních operací, což vede ke snížení výkonu aplikace.
Pokud je například požadavek na vstupně-výstupní operace vygenerovaný vaší aplikací větší než velikost prokládání disku, zapíše ho systém úložiště přes hranice jednotek prokládání na více než jednom disku. 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 podstatnému snížení výkonu. Na druhou stranu platí, že pokud je velikost V/V požadavku menší než velikost pruhu a pokud je náhodná v přírodě, můžou se vstupně-výstupní požadavky sčítat na stejném disku, což způsobí kritický bod a nakonec snížení výkonu vstupně-výstupních operací.
V závislosti na typu úlohy, kterou vaše aplikace používá, zvolte odpovídající velikost pruhu. U náhodných malých vstupně-výstupních požadavků použijte menší velikost pruhu. U velkých sekvenčních vstupně-výstupních požadavků použijte větší velikost pruhu. Podívejte se na doporučení velikosti pruhu pro aplikaci, kterou budete používat ve službě Premium Storage. Pro SQL Server nakonfigurujte velikost pruhu 64 kB pro úlohy OLTP a 256 kB pro úlohy datových skladů. Další informace najdete v tématu Osvědčené postupy z hlediska výkonu pro SQL Server na virtuálních počítačích Azure.
Poznámka:
Na virtuálním počítači řady DS a 64 disků premium storage na virtuálním počítači řady GS můžete propojovat maximálně 32 disků Premium Storage.
Multithreading
Azure navrhl platformu Premium Storage tak, aby byla masivně paralelní. Z tohoto důvodu vícevláknová aplikace dosahuje vyššího výkonu než jednovláknová aplikace. Vícevláknová aplikace rozdělí své úlohy napříč několika vlákny a zvýší efektivitu provádění pomocí virtuálního počítače a diskových prostředků na maximum.
Pokud například vaše aplikace běží na jednom základním virtuálním počítači se dvěma vlákny, procesor může přepínat mezi dvěma vlákny, aby se dosáhlo efektivity. Zatímco jedno vlákno čeká na dokončení vstupně-výstupních operací disku, procesor může přepnout na druhé vlákno. Tímto způsobem mohou dvě vlákna dosáhnout více než jedno vlákno. Pokud má virtuální počítač více než jedno jádro, sníží se doba běhu, protože každé jádro může spouštět úlohy paralelně.
Možná nebudete moct změnit způsob, jakým aplikace mimo police implementuje jednovláknové nebo multithreading. SQL Server například dokáže zpracovat vícejádrový procesor a vícejádrový procesor. SQL Server se však rozhodne za jakých podmínek používá k zpracování dotazu jedno nebo více vláken. Může spouštět dotazy a vytvářet indexy pomocí vícevláknového formátování. Pro dotaz, který zahrnuje spojování velkých tabulek a řazení dat před návratem k uživateli, SQL Server pravděpodobně používá více vláken. Uživatel nemůže řídit, jestli SQL Server spouští dotaz pomocí jednoho vlákna nebo více vláken.
Existují konfigurační nastavení, která můžete změnit tak, aby ovlivnila vícevláknové nebo paralelní zpracování aplikace. Například pro SQL Server se jedná o max degree of parallelism
konfiguraci. Toto nastavení s názvem MAXDOP umožňuje nakonfigurovat maximální počet procesorů, které SQL Server může použít při paralelním zpracování. MaxDOP můžete nakonfigurovat pro jednotlivé dotazy nebo operace indexu. Tato funkce je užitečná, když chcete vyvážit prostředky systému pro kritickou aplikaci s výkonem.
Řekněme například, že vaše aplikace, která používá SQL Server, spouští velký dotaz a operaci indexu najednou. Předpokládejme, že jste chtěli, aby operace indexu byla v porovnání s velkým dotazem výkonnější. V takovém případě můžete nastavit hodnotu MAXDOP operace indexu tak, aby byla vyšší než hodnota MAXDOP pro dotaz. Sql Server tak má více procesorů, než může použít pro operaci indexu v porovnání s počtem procesorů, které může vyhradit velkému dotazu. Nezapomeňte, že neřídíte počet vláken, která SQL Server používá pro každou operaci. Můžete řídit maximální počet procesorů vyhrazených pro vícevláknové zpracování.
Přečtěte si další informace o stupních paralelismu v SQL Serveru. Zjistěte, jak taková nastavení ovlivňují vícevláknové formátování ve vaší aplikaci a jejich konfigurace za účelem optimalizace 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 zarovnát, což disky úložiště zpracovávají. Ovlivňuje všechny tři ukazatele výkonu aplikací, které jsou popsány v tomto článku: IOPS, propustnost a latence.
Hloubka fronty a vícevláknové dělení úzce souvisí. Hodnota hloubky fronty určuje, kolik multithreading může aplikace dosáhnout. Pokud je hloubka fronty velká, může aplikace souběžně spouštět více operací, jinými slovy vícevláknové zpracování. Pokud je hloubka fronty malá, i když je aplikace vícevláknová, nebude mít dostatek požadavků zarovnaných pro souběžné spuštění.
Mimo-police aplikace obvykle neumožňují změnit hloubku fronty, protože pokud je nastavena nesprávně, dělá to více škod, než je dobré. Aplikace nastaví správnou hodnotu hloubky fronty, aby získaly optimální výkon. Je důležité porozumět tomuto konceptu, abyste mohli řešit problémy s výkonem aplikace. Můžete také sledovat účinky hloubky fronty spuštěním srovnávacích nástrojů ve vašem systému.
Některé aplikace poskytují nastavení pro vliv 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.
Hloubka vysoké fronty
Hloubka fronty vytáhlo více operací na disku. Disk předem zná další požadavek ve frontě. Disk tedy může předem naplánovat operace a zpracovat je v optimální sekvenci. Vzhledem k tomu, že aplikace odesílá na disk více požadavků, může disk zpracovat více paralelních vstupně-výstupních operací. V konečném důsledku může aplikace dosáhnout vyšších IOPS. Vzhledem k tomu, že aplikace zpracovává více požadavků, zvyšuje se také celková propustnost aplikace.
Aplikace obvykle dokáže dosáhnout maximální propustnosti s 8 až 16 nebo více nevyrovnanými vstupně-výstupními operacemi 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 nastavte hodnotu MAXDOP pro dotaz, aby 4
informoval SQL Server, že může ke spuštění dotazu použít až čtyři jádra. SQL Server určuje nejlepší hodnotu hloubky fronty a počet jader pro spuště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 pokusí řídit velmi vysokou 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 konfigurovat hloubku fronty na žádnou vysokou hodnotu, ale pro optimální hodnotu, která může poskytovat dostatek vstupně-výstupních operací za sekundu pro aplikaci, aniž by to mělo vliv na latence. Pokud například 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ě. Představte si například aplikaci, která nasdílí hloubku 2
fronty a v pruhu jsou čtyři disky. Dva vstupně-výstupní požadavky přejdou na dva disky a zbývající dva disky jsou nečinné. Proto nakonfigurujte hloubku fronty tak, aby všechny disky mohly být zaneprázdněny. Následující vzorec ukazuje, jak určit hloubku fronty prokládání svazků.
Omezování
Premium Storage zřídí zadaný počet vstupně-výstupních operací za sekundu a propustnost v závislosti na velikostech virtuálních počítačů a velikostech disků, které zvolíte. Kdykoli se vaše aplikace pokusí řídit IOPS nebo propustnost nad těmito limity toho, co může virtuální počítač nebo disk zpracovat, omezí ho služba Premium Storage. Výsledkem je snížení výkonu vaší aplikace, což může znamenat vyšší latenci, nižší propustnost nebo nižší počet IOPS.
Pokud se služba Premium Storage neomezuje, může vaše aplikace zcela selhat překročením toho, čeho jsou prostředky schopny dosáhnout. Abyste se vyhnuli problémům s výkonem kvůli omezování, vždy zřiďte pro vaši aplikaci dostatečné prostředky. Vezměte v úvahu, co jsme probrali v předchozích částech velikostí virtuálních počítačů a velikostí disků. Srovnávací testy jsou nejlepším způsobem, jak zjistit, jaké prostředky potřebujete k hostování aplikace.
Další kroky
Pokud chcete disk otestovat, přečtěte si následující články:
- Pro Linux: Srovnávací testy vaší aplikace v Azure Disk Storage
- Pro Windows: Srovnávací test disku
Další informace o dostupných typech disků:
- Pro Linux: Vyberte typ disku.
- Pro Windows: Vyberte typ disku.
Informace o uživatelích SQL Serveru najdete v článcích o osvědčených postupech pro výkon pro SQL Server: