Řešení potíží s automatickým škálováním se škálovacími sadami virtuálních počítačů

Problém – vytvořili jste infrastrukturu automatického škálování v Azure Resource Manageru pomocí škálovacích sad virtuálních počítačů – například nasazením šablony podobné této: https://github.com/Azure/azure-quickstart-templates/blob/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.parameters.json – máte definovaná pravidla škálování a funguje skvěle, s výjimkou toho, kolik zatížení virtuálních počítačů nasadíte, nedojde k automatickému škálování.

Postup při řešení potíží

Mezi aspekty, které je potřeba vzít v úvahu, patří:

  • Kolik virtuálních procesorů má každý virtuální počítač a načítáte každý virtuální procesor? Předchozí ukázková šablona Rychlého startu Azure obsahuje skript do_work.php, který načte jeden virtuální procesor. Pokud používáte virtuální počítač větší než velikost virtuálního počítače s jedním virtuálním procesorem, jako je Standard_A1 nebo D1, musíte toto načtení spustit několikrát. Zkontrolujte, kolik virtuálních procesorů pro vaše virtuální počítače najdete v tématu Velikosti virtuálních počítačů s Windows v Azure.

  • Kolik virtuálních počítačů ve škálovací sadě virtuálních počítačů pracujete na jednotlivých virtuálních počítačích?

    Událost horizontálního navýšení kapacity se provádí pouze v případě, že průměrný procesor napříč všemi virtuálními počítači ve škálovací sadě překročí prahovou hodnotu v průběhu času definovaného v pravidlech automatického škálování.

  • Chybí vám nějaké události škálování?

    V protokolech auditu na webu Azure Portal zkontrolujte události škálování. Možná došlo k vertikálnímu navýšení kapacity a snížení kapacity, které se zmeškalo. Můžete filtrovat podle měřítka.

    Audit Logs

  • Jsou prahové hodnoty horizontálního navýšení a snížení kapacity dostatečně odlišné?

    Předpokládejme, že nastavíte pravidlo pro horizontální navýšení kapacity, pokud je průměrné využití procesoru větší než 50 % více než pět minut, a pokud je průměrný procesor menší než 50 %. Toto nastavení by způsobilo problém s "flappingem", když se využití procesoru blíží prahové hodnotě, přičemž akce škálování se neustále zvětšují a zmenšují velikost sady. Kvůli tomuto nastavení se služba automatického škálování pokusí zabránit "flappingu", což se může projevit jako neškálování. Proto se ujistěte, že prahové hodnoty horizontálního navýšení kapacity a horizontálního navýšení kapacity jsou dostatečně odlišné, aby mezi škálováním umožňovaly určité místo.

  • Napsali jste vlastní šablonu JSON?

    Je snadné dělat chyby, takže začněte se šablonou, jako je ta výše, která se osvědčila, a proveďte malé přírůstkové změny.

  • Můžete horizontální navýšení nebo snížení kapacity provést ručně?

    Zkuste znovu nasadit prostředek škálovací sady virtuálních počítačů s jiným nastavením kapacity a změňte počet virtuálních počítačů ručně. Tady je příklad šablony: https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.compute/vmss-scale-existing Možná budete muset šablonu upravit, abyste měli jistotu, že má stejnou velikost počítače jako vaše škálovací sada. Pokud můžete počet virtuálních počítačů úspěšně změnit ručně, víte, že je problém izolovaný na automatické škálování.

  • Zkontrolujte microsoft.Compute/virtualMachineScaleSet a Microsoft. Přehledy prostředků v nástroji Azure Resource Explorer

    Azure Resource Explorer je nepostradatelný nástroj pro řešení potíží, který ukazuje stav prostředků Azure Resource Manageru. Klikněte na své předplatné a podívejte se na skupinu prostředků, kterou řešíte. V části Poskytovatel výpočetních prostředků se podívejte na škálovací sadu virtuálních počítačů, kterou jste vytvořili, a zkontrolujte zobrazení instance, ve kterém vidíte stav nasazení. Zkontrolujte také zobrazení instancí virtuálních počítačů ve škálovací sadě virtuálních počítačů. Pak přejděte do Microsoftu. Přehledy poskytovatele prostředků a zkontrolujte, jestli pravidla automatického škálování vypadají správně.

  • Funguje rozšíření Diagnostiky a generuje data o výkonu?

    Aktualizace: Automatické škálování Azure bylo vylepšeno tak, aby používalo kanál metrik založený na hostiteli, který už nevyžaduje instalaci diagnostického rozšíření. Pokud vytvoříte aplikaci automatického škálování pomocí nového kanálu, nebude už platit několik dalších odstavců. Příklad šablon Azure, které byly převedeny na použití kanálu hostitele, je k dispozici zde: https://github.com/Azure/azure-quickstart-templates/blob/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.parameters.json.

    Použití metrik založených na hostiteli pro automatické škálování je lepší z následujících důvodů:

    • Méně pohyblivých částí, protože není potřeba instalovat žádná rozšíření diagnostiky.

    • Jednodušší šablony Stačí přidat pravidla automatického škálování přehledů do existující šablony škálovací sady.

    • Spolehlivější vytváření sestav a rychlejší spouštění nových virtuálních počítačů

      Jedinými důvody, proč byste mohli chtít dál používat diagnostické rozšíření, je, že potřebujete generování sestav nebo škálování diagnostiky paměti. Metriky založené na hostitelích nehlásí paměť.

      S ohledem na to platí, že pokud pro automatické škálování používáte diagnostická rozšíření, postupujte podle zbývajících pokynů v tomto článku.

      Automatické škálování v Azure Resource Manageru může fungovat (ale už nemusí) prostřednictvím rozšíření virtuálního počítače označovaného jako rozšíření diagnostiky. Generuje data o výkonu do účtu úložiště, který definujete v šabloně. Tato data se pak agregují službou Azure Monitor.

      Pokud služba Přehledy nemůže číst data z virtuálních počítačů, měla by vám poslat e-mail. Pokud jsou například virtuální počítače v výpadku, dostanete e-mail. Nezapomeňte zkontrolovat svůj e-mail na e-mailové adrese, kterou jste zadali při vytváření účtu Azure.

      Můžete se také podívat na data sami. Podívejte se na účet úložiště Azure pomocí Průzkumníka cloudu. Například pomocí Průzkumníka cloudu sady Visual Studio se přihlaste a vyberte předplatné Azure, které používáte. Pak se podívejte na název účtu úložiště diagnostiky, na který odkazuje definice rozšíření Diagnostiky v šabloně nasazení.

      Cloud Explorer

      Zobrazí se spousta tabulek, ve kterých se ukládají data z jednotlivých virtuálních počítačů. Když jako příklad vezmete metriku Linuxu a procesoru, podívejte se na nejnovější řádky. Visual Studio Cloud Explorer podporuje dotazovací jazyk, abyste mohli spustit dotaz. Můžete například spustit dotaz "Timestamp gt datetime'2016-02-02T21:20:00Z", abyste měli jistotu, že se zobrazí nejnovější události. Časové pásmo odpovídá standardu UTC. Odpovídají tam zobrazená data pravidlům škálování, která jste nastavili? V následujícím příkladu se procesor počítače 20 začal během posledních pěti minut zvyšovat na 100 %.

      Storage Tables

      Pokud tam data nejsou, znamená to, že problém je s diagnostickým rozšířením spuštěným na virtuálních počítačích. Pokud tam data existují, znamená to, že došlo k problému s pravidly škálování nebo se službou Přehledy. Zkontrolujte stav Azure.

      Pokud máte stále problémy s automatickým škálováním, můžete zkusit následující zdroje informací: