Řešení potíží s výkonem sdílených složek Azure

V tomto článku jsou uvedené některé běžné problémy související se sdílenými složkami Azure. V případě, že dojde k těmto potížím, poskytuje možné příčiny a alternativní řešení.

Platí pro

Typ sdílené složky SMB NFS
Standardní sdílené složky (GPv2), LRS/ZRS Yes No
Standardní sdílené složky (GPv2), GRS/GZRS Yes No
Premium sdílené složky (úložiště souborů), LRS/ZRS Yes Yes

Vysoká latence, nízká propustnost a obecné problémy s výkonem

Příčina 1: sdílená složka byla omezená.

Požadavky jsou omezeny při dosažení vstupně-výstupních operací za sekundu (IOPS), příchozího přenosu dat nebo odchozích přenosů souborů pro sdílenou složku. Pokud chcete pochopit omezení pro sdílené složky Standard a Premium, přečtěte si téma sdílení souborů a cíle škálování souborů.

Pokud chcete ověřit, jestli se vaše sdílená složka omezuje, můžete na portálu získat přístup a používat metriky Azure.

  1. V Azure Portal přejít na účet úložiště.

  2. V levém podokně v části monitorování vyberte metriky.

  3. Jako obor názvů metriky pro rozsah svého účtu úložiště vyberte soubor .

  4. Jako metriku vyberte transakce .

  5. Přidejte filtr pro typ odpovědi a potom zkontrolujte, zda byly nějaké požadavky omezené.

    U standardních sdílených složek se při omezení požadavku zaprotokolují následující typy odpovědí:

    • SuccessWithThrottling
    • SuccessWithShareIopsThrottling
    • ClientShareIopsThrottlingError

    U sdílených složek úrovně Premium se v případě omezení požadavku zaprotokolují následující typy odpovědí:

    • SuccessWithShareEgressThrottling
    • SuccessWithShareIngressThrottling
    • SuccessWithShareIopsThrottling
    • ClientShareEgressThrottlingError
    • ClientShareIngressThrottlingError
    • ClientShareIopsThrottlingError

    Další informace o jednotlivých typech odpovědí najdete v tématu věnovaném dimenzím metrik.

    Snímek obrazovky s možnostmi metriky pro sdílené složky úrovně Premium, která zobrazuje filtr vlastností "typ odpovědi".

    Poznámka

    Chcete-li zobrazit výstrahu, přečtěte si část jak vytvořit výstrahu v případě omezení sdílené složky dále v tomto článku.

Řešení

Příčina 2: silná úloha pro metadata nebo obor názvů

Pokud je většina požadavků orientovaných na metadata (například createfile , openfile ,, closefile queryinfo nebo querydirectory ), bude latence horší než operace čtení/zápisu.

Pokud chcete zjistit, jestli je většina vašich požadavků orientovaných na metadata, začněte podle kroků 1-4, jak už bylo uvedeno v příčině 1. Pro krok 5 místo přidání filtru pro typ odpovědi přidejte filtr vlastností pro název rozhraní API.

Snímek obrazovky s možnostmi metriky pro sdílené složky Premium se zobrazeným filtrem vlastností název rozhraní API

Alternativní řešení

  • Zkontrolujte, zda lze aplikaci upravit a snížit tak počet operací s metadaty.
  • Přidejte virtuální pevný disk (VHD) do sdílené složky a připojte VHD z klienta k provádění operací se soubory s daty. Tento přístup funguje pro scénáře s jedním zapisovačem/čtenářem nebo scénáře s více čtenáři a bez zapisovače. Vzhledem k tomu, že systém souborů je vlastníkem klienta namísto souborů Azure, umožňuje to lokální operace s metadaty. Nastavení nabízí výkon podobný místnímu přímo připojenému úložišti.
    • pokud chcete připojit virtuální pevný disk na Windows klienta, použijte rutinu prostředí PowerShell mount-DiskImage .
    • Pokud chcete připojit virtuální pevný disk v systému Linux, přečtěte si dokumentaci k distribuci systému Linux.

Příčina 3: aplikace s jedním vláknem

Pokud je aplikace, kterou používáte, jediným vláknem, může tato instalace výrazně snížit propustnost IOPS, než je maximální možná propustnost, a to v závislosti na velikosti zřízené sdílené složky.

Řešení

  • Zvýšení paralelismu aplikace zvýšením počtu vláken.
  • Přepněte na aplikace, kde je možné paralelismus. například pro operace kopírování můžete použít AzCopy nebo robocopy z klientů Windows nebo paralelní příkaz z klientů se systémem Linux.

Příčina 4: počet kanálů SMB překračuje čtyři

Pokud používáte vícekanálový protokol SMB a počet kanálů, které překročíte, bude mít za následek špatný výkon. Pokud chcete zjistit, jestli počet připojení přesáhne čtyři, použijte get-SmbClientConfiguration k zobrazení aktuálního nastavení počtu připojení rutinu PowerShellu.

Řešení

nastavte Windows pro protokol SMB na nastavení síťových adaptérů tak, aby celkový počet kanálů nepřesáhl čtyři. Pokud máte například dvě síťové karty, můžete nastavit maximum na síťové rozhraní na dvě pomocí následující rutiny prostředí PowerShell: Set-SmbClientConfiguration -ConnectionCountPerRssNetworkInterface 2 .

Velmi vysoká latence pro žádosti

Příčina

Klientský virtuální počítač (VM) se může nacházet v jiné oblasti než sdílení souborů. Jiným důvodem pro vysokou latenci může být latence v důsledku latence klienta nebo sítě.

Řešení

  • Spusťte aplikaci z virtuálního počítače, který se nachází ve stejné oblasti jako sdílená složka.
  • V případě svého účtu úložiště zkontrolujte metriky transakcí SuccessE2ELatency a SuccessServerLatency prostřednictvím Azure monitor v Azure Portal. Vysoký rozdíl mezi hodnotami metrik SuccessE2ELatency a SuccessServerLatency je indikací latence, která je pravděpodobně způsobena sítí nebo klientem. Viz metriky transakcí v referenčních informacích k datům monitorování Azure Files.

Klientovi se nepovedlo dosáhnout maximální propustnosti, kterou síť podporuje.

Příčina

Jednou z možných příčin je nedostatečná podpora více kanálů pro standardní sdílení souborů v protokolu SMB. Soubory Azure v současné době podporují jenom jeden kanál, takže existuje jenom jedno připojení z virtuálního počítače klienta k serveru. Toto jediné připojení je v klientském počítači klienta připojeno k jednomu jádru, takže maximální propustnost, kterou je možné z virtuálního počítače dosáhnout, je svázána s jedním jádrem.

Alternativní řešení

  • V případě sdílených složek úrovně Premium Povolte možnost SMB vícekanálový.
  • Získání virtuálního počítače s větším jádrem může pomoci zlepšit propustnost.
  • Při spuštění klientské aplikace z více virtuálních počítačů se zvýší propustnost.
  • Pokud je to možné, použijte rozhraní REST API.
  • Pro sdílené složky NFS je nconnect k dispozici ve verzi Preview. Nedoporučuje se pro produkční úlohy.

propustnost u klientů se systémem Linux je výrazně nižší než u klientů Windows

Příčina

Jedná se o známý problém s implementací klienta SMB v systému Linux.

Alternativní řešení

  • Rozprostře zatížení mezi více virtuálních počítačů.
  • Ve stejném virtuálním počítači použijte více přípojných bodů s nosharesock možností a rozprostřete zatížení mezi tyto přípojné body.
  • V Linuxu zkuste připojení s možností vyhnout se vynucení vyprázdnění nostrictsync protokolu SMB při každém fsync volání. Například Azure Files tato možnost nezasahuje do konzistence dat, ale může vést k tomu, že u výpisů adresářů (příkaz) budou zastaralá metadata ls -l souborů. Přímý dotaz na metadata souboru pomocí příkazu vrátí nej aktuální stat metadata souboru.

Vysoká latence pro úlohy náročné na metadata zahrnující rozsáhlé operace otevření/zavření

Příčina

Chybějící podpora pro zapůjčení adresářů.

Alternativní řešení

  • Pokud je to možné, nepoužívejte během krátkého časového období nadměrný popisovač otevírání a zavírání ve stejném adresáři.
  • U virtuálních počítačů s Linuxem zvyšte časový limit mezipaměti položky adresáře zadáním actimeo=<sec> možnosti připojení. Ve výchozím nastavení je časový limit 1 sekunda, takže může pomoct větší hodnota, například 3 nebo 5 sekund.
  • V případě virtuálních počítačů se systémem CentOS Linux nebo Red Hat Enterprise Linux (RHEL) upgradujte systém na CentOS Linux 8.2 nebo RHEL 8.2. U jiných virtuálních počítačů s Linuxem upgradujte jádro na verzi 5.0 nebo novější.

Nízký počet IOPS v CentOS Linuxu nebo RHEL

Příčina

V systému CentOS Linux ani RHEL se nepodporuje hloubka V/V větší než 1.

Alternativní řešení

  • Upgrade na CentOS Linux 8 nebo RHEL 8
  • Změňte na Ubuntu.

Pomalé kopírování souborů do a ze sdílených složek Azure v Linuxu

Pokud dochází k pomalému kopírování souborů, podívejte se do části Pomalé kopírování souborů do a ze sdílených složek Azure v Linuxu v průvodci odstraňováním potíží s Linuxem.

Model jittery nebo sawtooth pro IOPS

Příčina

Klientská aplikace konzistentně překračuje základní IOPS. V současné době neexistuje žádné vyhlazování na straně služby při načítání požadavků. Pokud klient překročí základní počet IOPS, služba ho ohrostí. Omezení může vést k tomu, že u klienta dochází k modelu jittery nebo sawtooth IOPS. V tomto případě může být průměrný počet IOPS, kterých klient dosáhl, nižší než základní IOPS.

Alternativní řešení

  • Snižte zatížení požadavku z klientské aplikace, aby se sdílená složku nezhroucela.
  • Zvyšte kvótu sdílené složky, aby se tato sdílená složku neřešuje.

Nadměrná volání adresářeOtevřít/AdresářZavřít

Příčina

Pokud mezi hlavní volání rozhraní API patří počet volání DirectoryOpen/DirectoryClose a neočekáváte, že klient bude provádět tolik volání, příčinou problému může být antivirový software nainstalovaný na virtuálním počítači klienta Azure.

Alternativní řešení

Vytváření souborů je pomalejší, než se čekalo

Příčina

U úloh, které spoléhají na vytvoření velkého počtu souborů, se ve výkonu sdílených složek úrovně Premium a sdílených složek úrovně Standard nezazná podstatný rozdíl.

Alternativní řešení

  • Žádné

Nízký výkon při Windows 8.1 nebo Serveru 2012 R2

Příčina

Vyšší než očekávaná latence při přístupu ke sdílených složek Azure pro úlohy náročné na vstupně-výstupní operace

Alternativní řešení

Nespouštějí se funkce SMB Multichannel.

Příčina

Nedávné změny nastavení konfigurace SMB Multichannel bez opětovného připojení.

Řešení

  • Po všech změnách nastavení konfigurace smb klienta nebo účtu SMB s více zprostředkovateli musíte odpojit sdílené složky, počkat na 60 sekund Windows znovu ji odpojit, aby se spouštěl kanál multichannel.
  • Pro Windows operačního systému klienta vygenerování V/V zatížení s vysokou hloubkou fronty, například QD=8, například zkopírováním souboru pro aktivaci funkce SMB Multichannel. V případě operačního systému serveru se smb Multichannel aktivuje pomocí QD=1, což znamená, že jakmile do sdílené složky spustíte V/V.

Vysoká latence na webech hostovaných ve sdílených složek

Příčina

Oznámení o změně souboru s vysokým počtem u sdílených složek může vést k výrazné vysoké latenci. K tomu obvykle dochází u webů hostovaných ve sdílených složek s hlubokou vnořenou adresářovou strukturou. Typickým scénářem je webová aplikace hostovaná službou IIS, kde je pro každý adresář ve výchozí konfiguraci nastaveno oznámení o změně souboru. Každá změna (ReadDirectoryChangesW) ve sdíleném adresáři, pro kterou je klient zaregistrovaný, do klienta nasdílí oznámení o změně ze souborové služby, které převezme systémové prostředky a problém se zhorší s počtem změn. To může způsobit omezování sdílení, což může vést k vyšší latenci na straně klienta.

K potvrzení můžete použít metriky Azure na portálu –

  1. V Azure Portal přejděte ke svému účtu úložiště.
  2. V nabídce vlevo v části Monitorování vyberte Metriky.
  3. Jako obor názvů metriky pro obor účtu úložiště vyberte Soubor.
  4. Jako metriku vyberte Transakce.
  5. Přidejte filtr pro ResponseType a zkontrolujte, jestli nějaké požadavky mají kód odpovědi SuccessWithThrottling (pro SMB nebo NFS) nebo ClientThrottlingError (pro REST).

Řešení

  • Pokud se oznámení o změně souboru nepoužít, zakažte oznámení o změně souboru (upřednostňujte).
    • Zakažte oznámení o změně souboru aktualizací FCNMode.
    • Aktualizujte interval dotazování pracovního procesu služby IIS (W3WP) na hodnotu 0 nastavením v registru a restartováním procesu HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\ConfigPollMilliSeconds W3WP. Další informace o tomto nastavení najdete v tématu Běžné klíče registru používané mnoha částmi služby IIS.
  • Zvyšte frekvenci intervalu dotazování oznámení o změně souboru, abyste snížili objem.
    • Aktualizujte interval dotazování pracovního procesu W3WP na vyšší hodnotu (např. 10 minut nebo 30 minut) na základě vašich požadavků. Nastavte HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\ConfigPollMilliSeconds v registru a restartujte proces W3WP.
  • Pokud má namapovaný fyzický adresář webu vnořenou adresářovou strukturu, můžete zkusit omezit rozsah oznámení o změně souboru a snížit tak objem oznámení. Ve výchozím nastavení služba IIS používá konfiguraci z Web.config souborů ve fyzickém adresáři, do kterého je namapován virtuální adresář, a také v podřízených adresářích v tomto fyzickém adresáři. Pokud nechcete používat soubory Web.config podřízených adresářích, zadejte pro atribut allowSubDirConfig ve virtuálním adresáři hodnotu false. Další podrobnosti najdete tady:.
    • Nastavte virtuální adresář iis "allowSubDirConfig" v souboru Web.Config na hodnotu false, aby se z oboru vyloučily mapované fyzické podřízené adresáře.

Jak vytvořit výstrahu v případě omezování sdílené složky

  1. Přejděte ke svému účtu úložiště v Azure Portal.

  2. V části Monitorování klikněte na Výstrahy a potom klikněte na + Nové pravidlo výstrahy.

  3. Klikněte na Upravit prostředek, vyberte typ prostředku Soubor pro účet úložiště a pak klikněte na Hotovo. Pokud je například název účtu úložiště contoso , vyberte contoso/file prostředek.

  4. Kliknutím na Přidat podmínku přidejte podmínku.

  5. Zobrazí se seznam signálů podporovaných pro účet úložiště a vyberte metriku Transakce.

  6. V okně Konfigurovat logiku signálů klikněte na rozevírací seznam Název dimenze a vyberte Typ odpovědi.

  7. Klikněte na rozevírací seznam Hodnoty dimenzí a vyberte odpovídající typy odpovědí pro vaši složku.

    U standardních sdílených složek vyberte následující typy odpovědí:

    • SuccessWithThrottling
    • SuccessWithShareIopsThrottling
    • ClientShareIopsThrottlingError

    U sdílených složek úrovně Premium vyberte následující typy odpovědí:

    • SuccessWithShareEgressThrottling
    • SuccessWithShareIngressThrottling
    • SuccessWithShareIopsThrottling
    • ClientShareEgressThrottlingError
    • ClientShareIngressThrottlingError
    • ClientShareIopsThrottlingError

    Poznámka

    Pokud v rozevíracím seznamu Hodnoty dimenzí nejsou uvedené typy odpovědí, znamená to, že prostředek nebyl ohroován. Pokud chcete přidat hodnoty dimenzí, vyberte vedle rozevíracího seznamu Hodnoty dimenzí možnost Přidat vlastní hodnotu, zadejte typ odpovědi (například SuccessWithThrottling), vyberte OK a pak zopakujte tyto kroky a přidejte všechny příslušné typy odpovědí pro vaši sdílenou složku.

  8. U sdílených složek úrovně Premium klikněte na rozevírací seznam Název dimenze a vyberte Sdílená složku. U standardních sdílených složek přejděte ke kroku 10.

    Poznámka

    Pokud je sdílená sdílená složky standardní, dimenze Sdílená složky nebude tyto sdílené složky vyjád ovat, protože pro standardní sdílené složky nejsou k dispozici metriky pro každou složku. Upozornění na omezování pro standardní sdílené složky se spustí, pokud dojde k omezení jakékoli sdílené složky v rámci účtu úložiště a výstraha nepozoruje, která sdílená složky byla hrozena. Vzhledem k tomu, že metriky pro sdílené složky nejsou k dispozici pro standardní sdílené složky, doporučujeme mít jednu složku na jeden účet úložiště.

  9. Klikněte na rozevírací seznam Hodnoty dimenzí a vyberte sdílené složky, na které chcete upozornit.

  10. Definujte parametry upozornění (prahová hodnota, operátor, členitost agregace a četnost vyhodnocení) a klikněte na Hotovo.

    Tip

    Pokud používáte statickou prahovou hodnotu, může vám graf metrik pomoct určit přiměřenou prahovou hodnotu, pokud se sdílená složky právě omešká. Pokud používáte dynamickou prahovou hodnotu, graf metrik zobrazí vypočítané prahové hodnoty na základě nedávných dat.

  11. Kliknutím na Přidat skupiny akcí přidejte k upozornění skupinu akcí (e-mail, SMS atd.) tak, že vyberete existující skupinu akcí nebo vytvoříte novou skupinu akcí.

  12. Vyplňte podrobnosti upozornění, jako je název pravidla upozornění, popis a závažnost.

  13. Kliknutím na Vytvořit pravidlo upozornění vytvořte výstrahu.

Další informace o konfiguraci výstrah v Azure Monitor najdete v tématu Přehled výstrah v Microsoft Azure.

  1. V Azure Portal přejděte ke svému účtu úložiště.

  2. V části Monitorování vyberte Výstrahy a pak vyberte Nové pravidlo upozornění.

  3. Vyberte Upravit prostředek, jako Typ prostředku souboru vyberte účet úložiště a pak vyberte Hotovo. Pokud je například název účtu úložiště contoso, vyberte prostředek contoso/file.

  4. Vyberte Vybrat podmínku a přidejte podmínku.

  5. V seznamu signálů podporovaných pro účet úložiště vyberte metriku Egress úložiště.

    Poznámka

    Musíte vytvořit tři samostatná upozornění, která se budou upozorní, když hodnoty příchozího přenosu dat, výchozího přenosu dat nebo transakce překročí nastavené prahové hodnoty. Je to proto, že se výstraha aktivuje jenom při splnění všech podmínek. Pokud například všechny podmínky zadáte do jedné výstrahy, budete upozorněni pouze v případě, že příchozí a příchozí přenos dat a transakce překročí jejich prahovou hodnotu.

  6. Posuňte se dolů. V rozevíracím seznamu Název dimenze vyberte Sdílená složku.

  7. V rozevíracím seznamu Hodnoty dimenzí vyberte sdílené složky nebo sdílené složky, na které chcete upozornit.

  8. Definujte parametry výstrahy výběrem hodnot v rozevíracích seznamech Operátor , Prahová hodnota , Úroveň agregace a Frekvence vyhodnocení a pak vyberte Hotovo.

    Egress metriky příchozího přenosu dat a transakcí se vyjadřují za minutu, i když jste zřídli výstupní přenos dat, příchozí přenos dat a V/V za sekundu. Pokud je tedy například váš zřízený příchozí přenos dat 90 MiB/s a chcete, aby prahová hodnota byla 80 % zř vybraného příchozího přenosu dat, vyberte     následující parametry upozornění:

    • Pro Prahovou hodnotu: 75497472
    • Pro operátor: větší než nebo rovno
    • Typ agregace: průměr

    V závislosti na tom, jak hlučné má upozornění být, můžete také vybrat hodnoty pro Úroveň agregace a Frekvence vyhodnocení. Pokud například chcete, aby se vaše upozornění podívalo na průměrný příchozí přenos dat za časové období 1 hodiny a chcete, aby se pravidlo upozornění spouštěl každou hodinu, vyberte následující:

    • Pro úroveň agregace: 1 hodina
    • Frekvence vyhodnocování: 1 hodina
  9. Vyberte Přidat skupiny akcí a pak do upozornění přidejte skupinu akcí (například e-mail nebo SMS) tak, že vyberete existující skupinu akcí nebo vytvoříte novou.

  10. Zadejte podrobnosti o upozornění, například Název pravidla upozornění, Popis a Závažnost.

  11. Výběrem možnosti Vytvořit pravidlo upozornění vytvořte upozornění.

    Poznámka

    • Pokud chcete být informováni o omezování sdílené složky úrovně Premium kvůli zřízenému příchozímu přenosu dat, postupujte podle předchozích pokynů, ale s následující změnou:

      • V kroku 5 vyberte metriku Příchozí přenos dat místo Egress.
    • Pokud chcete být informováni o omezování sdílené složky úrovně Premium kvůli zřízenému IOPS, postupujte podle předchozích pokynů, ale proveďte následující změny:

      • V kroku 5 vyberte metriku Transakce místo Egress.
      • V kroku 10 je jedinou možností pro Typ agregace hodnota Celkem. Proto prahová hodnota závisí na vybrané agregační členitosti. Pokud například chcete, aby prahová hodnota byla 80 % zřízených základních IOPS a jako Úroveň agregace vyberete 1 hodinu, prahovou hodnotou bude vaše základní   hodnota IOPS (v bajtech) ×   0,8 ×   3600.

Další informace o konfiguraci výstrah v Azure Monitor najdete v tématu Přehled výstrah v Microsoft Azure.

Viz také