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é provést z příkazového řádku nebo z portálu. V tomto kurzu se dozvíte, jak zajistit, abyste ho nastavili tak, aby optimalizoval výkon na platformě Microsoft Azure. 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 (registrace bezplatné zkušební verze) a už jste do svého předplatného Azure zřídili virtuální počítač. Před vytvořením virtuálního počítače se ujistěte, že máte nainstalovanou nejnovější verzi 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 má přidružené dva disky. /dev/sda je váš disk s operačním systémem, /dev/sdb je dočasný disk. Nepoužívejte hlavní disk s operačním systémem (/dev/sda) pro nic kromě operačního systému, protože je optimalizovaný pro rychlou dobu spouštění virtuálních počítačů a neposkytuje dobrý výkon pro vaše úlohy. K virtuálnímu počítači chcete připojit jeden nebo více disků, abyste získali trvalé a optimalizované úložiště pro vaše data.

Přidání disků za účelem dosažení cílů velikosti a výkonu

Na základě velikosti virtuálního počítače můžete připojit až 16 dalších disků na A-Series, 32 disků na D-Series a 64 disků na počítači G-Series – každý až 32 TB. Podle vašich požadavků na místo a I/O operace přidáváte další disky. Každý disk má cíl výkonu 500 IOps pro úložiště úrovně Standard a až 20 000 IOps na disk pro Premium Storage.

Pokud chcete dosáhnout nejvyšších IOps na discích Premium Storage, kde je jejich nastavení mezipaměti nastavené na Jen jen pro čtení nebo Žádné, musíte zakázat překážky při připojování systému souborů v Linuxu. Nepotřebujete bariéry, protože zápisy na disky s podporou Premium Storage jsou pro tato nastavení mezipaměti odolné.

  • Pokud používáte reiserFS, zakažte bariéry pomocí možnosti barrier=none montáže (pro povolení překážek použijte barrier=flush)
  • Pokud používáte ext3/ext4, zakažte bariéry pomocí příkazu barrier=0 pro montáž (pro povolení bariér použijte barrier=1)
  • Pokud používáte XFS, zakažte překážky pomocí možnosti nobarrier montáže (pro povolení bariér použijte možnost barrier).

Aspekty neřízeného úložišťového účtu

Výchozí akcí při vytváření virtuálního počítače pomocí Azure CLI je použití spravovaných disků Azure. Tyto disky zpracovává platforma Azure a nevyžadují k jejich uložení žádnou přípravu ani umístění. Nespravované disky vyžadují účet úložiště a některé další aspekty výkonu. Další informace o spravovaných discích najdete v tématu Přehled spravovaných disků Azure. Následující část popisuje aspekty výkonu pouze v případech, kdy používáte nespravované disky. Opět je výchozím a doporučeným řešením úložiště použití spravovaných disků.

Pokud vytvoříte virtuální počítač s nespravovanými disky, ujistěte se, že připojíte disky z účtů úložiště umístěných ve stejné oblasti jako virtuální počítač, abyste zajistili blízkost a minimalizovali latenci sítě. Každý účet úložiště úrovně Standard má maximálně 20 000 IOPS a kapacitu 500 TB. Tento limit funguje na přibližně 40 silně používaných disků, včetně disku s operačním systémem i všech datových disků, které vytvoříte. Pro účty Premium Storage neexistuje limit Maximální počet vstupně-výstupních operací za sekundu, ale existuje limit velikosti 32 TB.

Při práci s úlohami s vysokým počtem IOps a pokud jste zvolili Standardní úložiště pro vaše disky, může být nutné disky rozdělit mezi více účtů úložiště, abyste se ujistili, že nepřekročíte limit 20 000 IOps pro účty se Standardním úložištěm. 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á jednotka virtuálního počítače

Při vytváření virtuálního počítače poskytuje Azure ve výchozím nastavení 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 můžou se ztratit, pokud konkrétní události, 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 prémiové velikosti (řady DS, G a DS_V2) mají dočasné úložiště podporované lokálním SSD pro zlepšení výkonu až 48 tisíc IOps.

Swap oddíl Linuxu

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

Soubor /etc/waagent.conf nemůžete použít ke správě swapování pro všechny obrazy, které jsou zřízené a podporované cloud-init. Úplný seznam obrazů viz Použití cloud-init.

Nejjednodušší způsob, jak spravovat odkládací prostor pro tyto obrazy, 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. Do souboru přidejte 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ší podle používané velikosti virtuálního počítače.

  3. Nastavte soubor jako spustitelný:

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

  4. Pokud chcete vytvořit swapfile, spusťte skript hned po posledním kroku:

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

Pro image bez podpory cloud-init mají image virtuálních počítačů nasazené z Azure Marketplace integrovaný agent virtuálního počítače s Linuxem s operačním systémem. Tento agent umožňuje virtuálnímu počítači pracovat s různými službami Azure. Za předpokladu, že jste z Azure Marketplace nasadili standardní obraz, je potřeba, abyste správně nakonfigurovali nastavení odkládacího souboru v Linuxu:

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 ResourceDisk.EnableSwap a ResourceDisk.SwapSizeMB

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

  • ResourceDisk.EnableSwap=Y
  • ResourceDisk.SwapSizeMB={velikost v MB odpovídající vašim potřebám}

Po provedení této změny je potřeba restartovat waagent nebo restartovat virtuální počítač s Linuxem, aby se tyto změny projevily. Změny byly implementovány a stránkovací soubor byl vytvořen, když použijete příkaz free k zobrazení volného místa. Následující příklad obsahuje 512MB swap 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í vstupně-výstupních operací pro Premium Storage

S jádrem Linuxu 2.6.18 se výchozí algoritmus plánování vstupně-výstupních operací změnil z termínu na CFQ (zcela spravedlivý algoritmus řízení front). U náhodných vzorů vstupně-výstupních operací je rozdíl ve výkonu mezi CFQ a Deadline zanedbatelný. U disků založených na SSD, ve kterých je vzor vstupně-výstupních operací disku převážně sekvenční, může přepnutí zpět na algoritmus NOOP nebo Konečný termín dosáhnout lepšího výkonu vstupně-výstupních operací.

Zobrazení aktuálního plánovače vstupně-výstupních operací

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í vstupně-výstupních operací

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í I/O dominuje vzoru.

Měl by se zobrazit následující výstup, který označuje, že 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 distribuční řadu Red Hat potřebujete jenom 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 vstupně-výstupních operací s více frontami. V tomto scénáři none je vhodný výběr místo noop. Další informace najdete v tématu Plánovače vstupně-výstupních operací Ubuntu.

Použití softwarového RAID k dosažení vyšších I/Ops

Pokud vaše úlohy vyžadují více vstupně-výstupních operací za sekundu než jeden disk, musíte použít softwarovou konfiguraci RAID více disků. Vzhledem k tomu, že Azure již na místní vrstvě fabric zajišťuje odolnost disků, dosáhnete nejvyšší úrovně výkonu pomocí konfigurace se stripováním RAID-0. Zřiďte a vytvořte 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 RAID v Linuxu .

Jako alternativu k tradiční konfiguraci RAID můžete také zvolit instalaci Správce logických svazků (LVM), abyste na jeden prokláněný logický svazek úložiště nakonfigurovali několik fyzických disků. V této konfiguraci se čtení a zápisy distribuují do více disků obsažených ve skupině svazků (podobně jako RAID0). Z výkonnostních důvodů je pravděpodobné, že budete chtít rozložit logické svazky do proužků tak, aby čtení a zápisy využívaly všechny vaše připojené datové jednotky. Další podrobnosti o konfiguraci pruhované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 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 mohli měřit dopad změny. Optimalizace je krok za krokem, který má různé výsledky napříč různými počítači ve vašem prostředí. Co funguje pro jednu konfiguraci, nemusí fungovat pro ostatní.

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