Sdílet prostřednictvím


Ladění výkonu kontejnerů Windows Serveru

Úvod

Počínaje Windows Serverem 2022 jsou k dispozici dva typy kontejnerů: Kontejnery Windows Serveru a kontejnery Hyper-V. Každý typ kontejneru podporuje buď verzi Server Core, nebo Nano Server systému Windows Server 2022.

Tyto konfigurace mají různé dopady na výkon, které podrobně popisujeme níže, abyste pochopili, která je pro vaše scénáře správná. Kromě toho podrobně popisujeme výkon, který ovlivňuje konfigurace, a popisujeme kompromisy s každou z těchto možností.

Kontejner Windows Serveru a kontejnery Hyper-V

Kontejnery Windows Serveru a kontejnery Hyper-V nabízejí mnoho výhod přenositelnosti a konzistence, ale liší se z hlediska jejich záruk izolace a charakteristik výkonu.

Kontejnery Windows Serveru poskytují izolaci aplikací díky technologii izolace procesů a jmenných prostorů. Kontejner Windows Serveru sdílí jádro s hostitelem kontejneru a všemi kontejnery běžícími na hostiteli.

Hyper-V Kontejnery rozšiřují izolaci poskytovanou kontejnery Windows Serveru spuštěním každého kontejneru v vysoce optimalizovaném virtuálním počítači. V této konfiguraci se jádro hostitele kontejneru nesdílí s kontejnery Hyper-V Containers.

Dodatečná izolace poskytovaná kontejnery Hyper-V je z velké části dosažena vrstvou izolace hypervisoru mezi kontejnerem a hostitelem kontejneru. To má vliv na hustotu kontejnerů, protože na rozdíl od kontejnerů Windows Serveru může dojít k menšímu sdílení systémových souborů a binárních souborů, což vede k celkovému většímu úložišti a paměti. Kromě toho existují očekávané další režijní náklady v některých síťových operacích, vstupně-výstupních operacích úložiště a trasách procesoru.

Nano Server a jádro serveru

Kontejnery Windows Serveru a kontejnery Hyper-V nabízejí podporu pro jádro serveru, přečtěte si další informace o možnostech základní image kontejneru.

Nano Server je vzdáleně spravovaný serverový operační systém optimalizovaný pro privátní cloudy a datacentra. Podobá se Systému Windows Server v režimu jádra serveru, ale výrazně menší, nemá žádné možnosti místního přihlášení a podporuje pouze 64bitové aplikace, nástroje a agenty. Zabírá mnohem méně místa na disku, nastavuje se výrazně rychleji a vyžaduje mnohem méně aktualizací a restartování než Windows Server. Až se znovu spustí, spustí se mnohem rychleji.

Čas kontejneru Start-Up

Doba spuštění kontejneru je klíčovou metrikou v mnoha scénářích, které kontejnery nabízejí největší výhodu. Proto je důležité porozumět tomu, jak nejlépe optimalizovat čas spuštění kontejneru. Níže najdete některé kompromisy pro vyladění, abyste pochopili, jak dosáhnout vylepšeného času spuštění.

První přihlášení

Microsoft dodává základní image pro Nano Server i jádro serveru. Základní image, která se dodává pro jádro serveru, byla optimalizována odebráním režie při spuštění spojené s prvním přihlášením (OOBE). To není případ základního obrazu Nano Serveru. Tyto náklady můžete z obrazů založených na Nano Serveru odebrat závazným uložením alespoň jedné vrstvy do image kontejneru. Po spuštění dalšího kontejneru z image nebudou účtovány první náklady na přihlášení.

Umístění dočasného prostoru

Kontejnery ve výchozím nastavení používají dočasné úložiště na systémovém disku hostitelského systému kontejneru po dobu běhu kontejneru. Slouží jako systémová jednotka kontejneru a například mnoho zápisů a čtení provedených v operaci kontejneru se řídí touto cestou. V hostitelských systémech, kde je systémový disk na pevných discích (HDD), ale je k dispozici rychlejší úložné médium (rychlejší HDD nebo SSD), je možné přesunout dočasný úložný prostor kontejneru na jiný disk. Toho dosáhnete pomocí příkazu dockerd –g. Tento příkaz je globální a ovlivní všechny kontejnery spuštěné v systému.

Vnořené kontejnery Hyper-V

Hyper-V pro Windows Server 2022 nabízí podporu vnořeného hypervisoru. To znamená, že schopnost spustit virtuální počítač z virtuálního počítače. Tím se otevírá mnoho užitečných scénářů, ale také zveličuje určitý dopad na výkon, který hypervisor způsobuje, protože nad fyzickým hostitelem běží dvě vrstvy hypervisorů.

U kontejnerů to má vliv na spuštění kontejneru Hyper-V uvnitř virtuálního počítače. Vzhledem k tomu, že kontejner Hyper-V nabízí izolaci prostřednictvím vrstvy hypervisoru mezi ním a hostitelem kontejneru, dochází, když je hostitelem kontejneru virtuální stroj založený na Hyper-V, k režii výkonu v podobě zvýšené doby spuštění kontejneru, vstupně-výstupních operací úložiště, vstupně-výstupních operací v síti a propustnosti a využití CPU.

Skladování

Připojené datové svazky

Kontejnery nabízejí možnost používat systémový disk hostitelského systému kontejneru pro dočasné úložiště kontejneru. Dočasný prostor kontejneru má však životnost rovnou životnosti kontejneru. To znamená, že když je kontejner zastavený, pomocné úložiště a všechna přidružená data zmizí.

Existuje však mnoho scénářů, ve kterých se data uchovávají nezávisle na životnosti kontejneru. V těchto případech podporujeme připojení datových svazků z prostředí hostitele kontejneru do kontejneru. Pro kontejnery Windows Serveru existuje zanedbatelná režie při IO operacích spojená s připojenými datovými svazky (téměř nativní výkon). Při připojování datových svazků do kontejnerů Hyper-V však dochází k určitému snížení výkonu vstupně-výstupních operací v této cestě. Kromě toho je tento dopad zveličený při spouštění kontejnerů Hyper-V uvnitř virtuálních počítačů.

Pracovní prostor

Kontejnery Windows Serveru i kontejnery Hyper-V standardně poskytují 20GB dynamický virtuální pevný disk pro pracovní prostor kontejneru. U obou typů kontejnerů zabírá operační systém kontejneru část tohoto prostoru a platí to pro každý spuštěný kontejner. Proto je důležité si uvědomit, že každý spuštěný kontejner má určitý vliv na úložiště a v závislosti na zátěži může zapsat až 20 GB na základní úložné médium. Konfigurace úložiště serveru by měly být navrženy s ohledem na to.

Síťování

Kontejnery Windows Serveru a kontejnery Hyper-V nabízejí různé síťové režimy, které nejlépe vyhovují potřebám různých síťových konfigurací. Každá z těchto možností představuje vlastní charakteristiky výkonu.

Překlad síťových adres systému Windows (WinNAT)

Každý kontejner obdrží IP adresu z interní, privátní IP předpony (například 172.16.0.0/12). Podporuje se přesměrování portů nebo mapování z hostitele kontejneru na koncové body kontejneru. Docker ve výchozím nastavení vytvoří síť NAT při prvním spuštění dockerdu.

Z těchto tří režimů je konfigurace PŘEKLADU adres (NAT) nejdražší cestou pro vstupně-výstupní operace sítě, ale vyžaduje nejméně konfigurace.

Kontejnery Windows Serveru používají k připojení k virtuálnímu přepínači virtuální síťovou kartu hostitele. Hyper-V Kontejnery používají syntetickou síťovou kartu virtuálního počítače (Synthetic VM NIC) k připojení k virtuálnímu přepínači, která není vystavena Utility VM. Když kontejnery komunikují s externí sítí, pakety se směrují přes WinNAT s použitými překlady adres, což způsobuje určité režijní náklady.

Transparentní

Každý koncový bod kontejneru je přímo připojený k fyzické síti. IP adresy z fyzické sítě je možné staticky nebo dynamicky přiřadit pomocí externího serveru DHCP.

Transparentní režim je nejméně nákladný z hlediska síťové cesty vstupně-výstupních operací a externí pakety se přímo předávají virtuální síťové kartě kontejneru a poskytují přímý přístup k externí síti.

L2 Most

Každý koncový bod kontejneru bude ve stejné podsíti IP jako hostitel kontejneru. IP adresy musí být přiřazeny staticky ze stejné předpony jako hostitel kontejneru. Všechny koncové body kontejneru na hostiteli budou mít stejnou adresu MAC kvůli překladu adres vrstvy 2.

Režim mostu L2 je výkonnější než režim WinNAT, protože poskytuje přímý přístup k externí síti, ale méně výkonný než transparentní režim, protože také zavádí překlad adres MAC.