Sdílet prostřednictvím


Optimalizace virtuálního počítače s Linuxem v Azure

Vytvoření virtuálního počítače s Linuxem je snadné z příkazového řádku nebo z portálu. V tomto kurzu se ukáže, jak zajistit, že jste ho nastavili pro optimalizaci výkonu na Microsoft Azure platformě. Toto téma používá virtuální počítač s Ubuntu Serverem, ale můžete také vytvořit virtuální počítač s Linuxem pomocí vlastních imagí jako šablon.

Požadavky

V tomto tématu se předpokládá, že už máte funkční předplatné Azure (bezplatnou zkušební verzi registrace) a už jste v předplatném Azure zř naskládli virtuální počítač. Před vytvořením virtuálního počítače se ujistěte, že máte nainstalované nejnovější rozhraní příkazového řádku Azure CLI a jste přihlášeni ke svému předplatnému Azure pomocípříkazu az login.

Disk s operačním systémem Azure

Po vytvoření virtuálního počítače s Linuxem v Azure jsou k tomuto virtuálnímu počítači přidružené dva disky. /dev/sda je váš disk s operačním systémem, /dev/sdb je dočasný disk. Hlavní disk s operačním systémem (/dev/sda) nepoužívejte pro nic kromě operačního systému, protože je optimalizovaný pro rychlou dobu spuštění virtuálního počítače a neposkytuje dobrý výkon pro vaše úlohy. Chcete k virtuálnímu počítači připojit jeden nebo více disků, abyste měli trvalé a optimalizované úložiště pro vaše data.

Přidání disků pro velikost a cíle výkonnosti

Na základě velikosti virtuálního počítače můžete připojit až 16 dalších disků na disky řady A, 32 disků na discích řady D a 64 na počítači G-Series – každý o velikosti až 32 TB. Podle potřeby přidáte další disky podle svých požadavků na místo a IOps. Každý disk má cíl výkonu 500 IOps pro standard Storage a až 20 000 IOps na disk pro Premium Storage.

Pokud chcete dosáhnout nejvyšších vstupně-výstupních operací za Premium Storage, na kterých je jejich nastavení mezipaměti nastavené na ReadOnly nebo None, musíte při připojování systému souborů v Linuxu zakázat bariéry. Překážky nepotřebujete, protože zápisy do Premium Storage disky jsou pro tato nastavení mezipaměti odolné.

  • Pokud používáte refsfs, pomocí barrier=none možnosti připojení zakažte bariéry (pokud chcete povolit bariéry, použijte barrier=flush).
  • Pokud používáte ext3/ext4, barrier=0 pomocí možnosti připojení zakažte bariéry (pokud chcete povolit bariéry, použijte barrier=1).
  • Pokud používáte XFS, pomocí možnosti připojení zakažte bariéry nobarrier (pokud chcete povolit bariéry, použijte možnost barrier).

Důležité informace o nespravovaném účtu úložiště

Výchozí akcí při vytváření virtuálního počítače pomocí Azure CLI je použití Azure Spravované disky. Tyto disky jsou zpracovávány platformou Azure a nevyžadují žádné přípravy ani umístění pro jejich uložení. Nespravované disky vyžadují účet úložiště a mají určité další požadavky na výkon. Další informace o spravovaných discích najdete v tématu Přehled služby Azure Managed Disks. Následující část popisuje důležité informace o výkonu pouze v případě, že používáte nespravované disky. Výchozím a doporučeným řešením úložiště je opět použití spravovaných disků.

Pokud vytvoříte virtuální počítač s nespravovanými disky, ujistěte se, že připojujete disky z účtů úložiště umístěných ve stejné oblasti jako váš virtuální počítač, abyste zajistili blízkost a minimalizovali latenci sítě. Každý účet úložiště Standard má maximálně 20 000 IOps a kapacitu o velikosti 500 TB. Toto omezení funguje na přibližně 40 často využíných disků, včetně disku s operačním systémem i všech datových disků, které vytvoříte. Pro Premium Storage účtů neexistuje žádný limit maximálního počtu IOps, ale existuje limit velikosti 32 TB.

Při práci s vysokými úlohami IOps a pro své disky jste zvolili Standard Storage, možná budete muset disky rozdělit mezi několik účtů úložiště, abyste se ujistili, že jste nenasáhne limitu 20 000 IOps pro účty Standard Storage. Váš virtuální počítač může obsahovat kombinaci disků z různých účtů úložiště a typů účtů úložiště, abyste dosáhli optimální konfigurace.

Dočasný disk virtuálního počítače

Ve výchozím nastavení vám Azure při vytváření virtuálního počítače poskytne disk s operačním systémem (/dev/sda) a dočasný disk (/dev/sdb). Všechny další disky, které přidáte, se zobrazí jako /dev/sdc, /dev/sdd, /dev/sde atd. Všechna data na dočasném disku (/dev/sdb) nejsou odolná a určitá událost, jako je změna velikosti virtuálního počítače, opětovné nasazení nebo údržba, vynutí restartování virtuálního počítače. Velikost a typ dočasného disku souvisí s velikostí virtuálního počítače, kterou jste zvolili v době nasazení. Všechny virtuální počítače velikosti Premium (DS, G a DS_V2 series) jsou dočasné jednotky zálohované místním diskem SSD, který nabízí další výkon až 48 000 IOps.

Oddíl pro prohození Linuxu

Pokud je váš virtuální počítač Azure z image Ubuntu nebo CoreOS, můžete k odeslání cloudové konfigurace do cloud-init použít CustomData. Pokud jste nahráli vlastní image Linuxu , která používá cloud-init, nakonfigurujete také prohození oddílů pomocí cloud-init.

Ke správě prohození pro všechny image, které jsou zřízené a podporované pomocí cloud-init, nemůžete použít soubor /etc/waagent.conf . Úplný seznam imagí najdete v tématu Použití cloud-init.

Nejjednodušší způsob, jak spravovat prohození pro tyto image, je provést tyto kroky:

  1. Ve složce /var/lib/cloud/scripts/per-boot vytvořte soubor s názvem create_swapfile.sh:

    $ sudo touch /var/lib/cloud/scripts/per-boot/create_swapfile.sh

  2. Přidejte do souboru následující řádky:

    $ sudo vi /var/lib/cloud/scripts/per-boot/create_swapfile.sh

    #!/bin/sh
    if [ ! -f '/mnt/swapfile' ]; then
    fallocate --length 2GiB /mnt/swapfile
    chmod 600 /mnt/swapfile
    mkswap /mnt/swapfile
    swapon /mnt/swapfile
    swapon -a ; fi
    

    Poznámka

    Hodnotu můžete změnit podle potřeby a na základě dostupného místa na disku prostředku, které se liší v závislosti na velikosti použitého virtuálního počítače.

  3. Vytvořte spustitelný soubor:

    $ sudo chmod +x /var/lib/cloud/scripts/per-boot/create_swapfile.sh

  4. Pokud chcete vytvořit odkládací soubor, spusťte skript hned za posledním krokem:

    $ sudo /var/lib/cloud/scripts/per-boot/./create_swapfile.sh

V případě imagí bez podpory cloud-init mají image virtuálních počítačů nasazené z Azure Marketplace s operačním systémem integrovaný linuxový agent virtuálního počítače. Tento agent umožňuje virtuálnímu počítače pracovat s různými službami Azure. Za předpokladu, že jste nasadili standardní image z Azure Marketplace, budete muset správně nakonfigurovat nastavení linuxového odkládacího souboru:

Vyhledejte a upravte dvě položky v souboru /etc/waagent.conf . Řídí existenci vyhrazeného odkládacího souboru a velikost odkládacího souboru. Parametry, které je potřeba ověřit, jsou a ResourceDisk.EnableSwap . ResourceDisk.SwapSizeMB

Pokud chcete povolit správně povolený disk a připojené odkládací soubory, ujistěte se, že parametry mají následující nastavení:

  • ResourceDisk.EnableSwap=Y
  • ResourceDisk.SwapSizeMB={velikost v MB pro splnění vašich potřeb}

Po provedení změny je potřeba restartovat waagent nebo restartovat virtuální počítač s Linuxem, aby se tyto změny odrážely. Víte, že změny byly implementovány a free že při použití příkazu k zobrazení volného místa byl vytvořen odkládací soubor. Následující příklad obsahuje 512MB odkládací soubor vytvořený v důsledku úpravy souboru waagent.conf :

azuseruser@myVM:~$ free
            total       used       free     shared    buffers     cached
Mem:       3525156     804168    2720988        408       8428     633192
-/+ buffers/cache:     162548    3362608
Swap:       524284          0     524284

Algoritmus plánování V/V pro Premium Storage

V linuxovém jádru 2.6.18 se výchozí algoritmus plánování V/V změnil z Deadline na CFQ (zcela algoritmus spravedlivého řazení do fronty). V případě vstupně-výstupních vzorů náhodného přístupu je mezi CFQ a deadlineem zanedbatelný rozdíl ve výkonu. U disků SSD, u kterých je vzor V/V disku převážně sekvenční, může přepnutí zpět na algoritmus NOOP nebo Deadline dosáhnout lepšího výkonu V/V.

Zobrazení aktuálního plánovače V/V

Použijte následující příkaz:

cat /sys/block/sda/queue/scheduler

Zobrazí se následující výstup, který označuje aktuální plánovač.

noop [deadline] cfq

Změna aktuálního zařízení (/dev/sda) algoritmu plánování V/V

Použijte následující příkazy:

azureuser@myVM:~$ sudo su -
root@myVM:~# echo "noop" >/sys/block/sda/queue/scheduler
root@myVM:~# sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"/g' /etc/default/grub
root@myVM:~# update-grub

Poznámka

Použití tohoto nastavení pro /dev/sda samotné není užitečné. Nastavte na všech datových discích, kde sekvenční V/V převládá vzor V/V.

Měl by se zobrazit následující výstup, který značí, že soubor grub.cfg byl úspěšně znovu sestaven a že výchozí plánovač byl aktualizován na NOOP.

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-34-generic
Found initrd image: /boot/initrd.img-3.13.0-34-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done

Pro rodinu distribuce Red Hat potřebujete pouze následující příkaz:

echo 'echo noop >/sys/block/sda/queue/scheduler' >> /etc/rc.local

Ubuntu 18.04 s jádrem vyladěným v Azure používá plánovače I/O s více frontou. V tomto scénáři none je vhodným výběrem místo noop. Další informace najdete v tématu Plánovače V/V Ubuntu.

Použití softwarového pole RAID k dosažení vyšších V/V operací

Pokud vaše úlohy vyžadují více IOps, než dokáže poskytnout jeden disk, musíte použít konfiguraci softwarového pole RAID s více disky. Vzhledem k tomu, že Azure již provádí odolnost disku na místní vrstvě prostředků infrastruktury, dosáhnete nejvyšší úrovně výkonu z konfigurace prokládání RAID-0. Zř vytvářejte a vytvářejte disky v prostředí Azure a připojte je k virtuálnímu počítači s Linuxem před dělením, formátováním a připojením jednotek. Další podrobnosti o konfiguraci softwarového nastavení RAID na virtuálním počítači s Linuxem v Azure najdete v dokumentu Konfigurace softwarového pole RAID v Linuxu .

Jako alternativu k tradiční konfiguraci RAID se také můžete rozhodnout nainstalovat Správce logických svazků (LVM) a nakonfigurovat několik fyzických disků na jeden prokládaný logický svazek úložiště. V této konfiguraci se čtení a zápisy distribuují na více disků obsažených ve skupině svazků (podobně jako RAID0). Z důvodů výkonu budete pravděpodobně chtít pročíst logické svazky, aby čtení a zápisy využíly všechny připojené datové disky. Další podrobnosti o konfiguraci prokládaného logického svazku na virtuálním počítači s Linuxem v Azure najdete v dokumentu Konfigurace LVM na virtuálním počítači s Linuxem v Azure .

Další kroky

Nezapomeňte, že stejně jako u všech diskuzí o optimalizaci je potřeba provést testy před a po každé změně, abyste změřit dopad změny. Optimalizace je proces krok za krokem, který má různé výsledky napříč různými počítači ve vašem prostředí. To, co funguje pro jednu konfiguraci, nemusí fungovat pro ostatní.

Některé užitečné odkazy na další zdroje informací: