INTEGRITY Dokumentace

Řešení problémů s pomalým webem

Tento návod vám pomůže zjistit a vyřešit problémy s výkonem, které ovlivňují váš web. Začíná základní diagnostikou a postupně přechází k pokročilejším technikám řešení potíží.

Než začnete: ověřte, že provoz prochází přes Cloudflare

Než začnete řešit problémy s výkonem, ověřte, že váš provoz skutečně prochází přes Cloudflare. Pokud požadavky Cloudflare obcházejí, problém se Cloudflare nesouvisí a tento návod vám nepomůže.

Zkontrolujte hlavičku cf-ray

Každá odpověď doručená prostřednictvím Cloudflare obsahuje cf-ray Zkontrolujte, zda je přítomna tato hlavička:

curl -s -D- -o /dev/null https://www.example.com | grep -i cf-ray
(Invoke-WebRequest -Uri "https://www.example.com" -Method Head).Headers["cf-ray"]

Pokud se zobrazí cf-ray hlavičky (například cf-ray: 8a1b2c3d4e5f6g7h-SJC), váš provoz prochází přes Cloudflare. Pokud ne, zkontrolujte konfiguraci DNS.

Ověřte, že DNS směřuje na Cloudflare

Aby mohl být provoz proxován, musí se vaše doména překládat na IP adresy Cloudflare:

dig +short www.example.com
Resolve-DnsName -Name www.example.com | Select-Object -ExpandProperty IPAddress

Vrácené IP adresy by měly být IP adresy Cloudflare ↗. Pokud směřují přímo na váš origin server, vaše DNS záznamy nejsou proxované.

Jak to opravit:

  1. Přejděte na Cloudflare dashboard ↗.
  2. Najděte DNS záznam pro pomalý hostname.
  3. Zajistěte, že Stav proxy je nastaveno na Proxováno (ikona oranžového mraku).

Shromážděte informace o pomalých požadavcích

Problémy s výkonem se řeší snáze, když přesně víte, co je pomalé. Začněte shromážděním následujících informací:

  1. Identifikujte konkrétní pomalé požadavky - Zjistěte, které URL adresy, prostředky nebo API endpointy jsou pomalé.
  2. Změřte zpomalení - Kvantifikujte zpoždění (například „načtení tohoto obrázku trvá 5 sekund“).
  3. Reprodukujte problém - Ověřte, že pomalost je trvalá, a ne jednorázová záležitost.

Krok 1: Analýza výkonu pomocí Observatory

Observatory poskytuje syntetické testy a data z monitorování reálných uživatelů (RUM) pro posouzení výkonu vašeho webu.

RUM je obzvláště důležitý, protože tyto metriky se sbírají přímo z prohlížečů vašich reálných návštěvníků, a poskytují tak objektivní pohled na to, jak vaši návštěvníci váš web ve skutečnosti vnímají. Laboratorní data bývají sice podrobnější (což se hodí při ladění), ale ne vždy odpovídají zařízením nebo připojení, která mají k dispozici reální uživatelé.

Spustit test rychlosti

  1. Přejděte na Cloudflare dashboard.

    Přejděte na Observatory ↗
  2. Vyberte Observatory.

  3. Zadejte adresu URL, kterou chcete otestovat, a vyberte Spustit test.

Pochopení výsledků

Observatory uvádí klíčové metriky:

Metrika Co se měří Cíl
Largest Contentful Paint (LCP) Čas do načtení největšího viditelného prvku Pod 2.5 sekundy
First Contentful Paint (FCP) Čas do zobrazení prvního obsahu Pod 1.8 sekundy
Cumulative Layout Shift (CLS) Vizuální stabilita při načítání stránky Pod 0.1
Doba do prvního bajtu (TTFB) Čas do přijetí prvního bajtu odpovědi Méně než 800 ms
Celková doba blokování (TBT) Doba, po kterou je zablokované hlavní vlákno Pod 200 ms

Real User Monitoring vykazuje podobné metriky, ale místo Total Blocking Time (TBT) uvidíte Interaction to Next Paint (INP).

TBT měří pouze během načítání stránky, zatímco INP měří každou interakci, kterou s vaším webem provedou skuteční návštěvníci.

Na základě výsledků Observatory zapněte příslušné Optimalizace rychlosti:


Krok 2: Identifikace pomalých zdrojů

Pokud data z Observatory a RUM ukazují na konkrétní problémy, použijte nástroje pro vývojáře v prohlížeči k prošetření jednotlivých zdrojů.

Použijte nástroje pro vývojáře v prohlížeči

  1. Otevřete nástroje pro vývojáře ve svém prohlížeči.
  2. Přejděte na Síť kartě.
  3. Znovu načtěte stránku a sledujte, které požadavky trvají nejdéle.
  4. Seřadit podle Čas nebo Doba trvání abyste identifikovali nejpomalejší prostředky.
  5. Poznamenejte si konkrétní URL adresy pomalých zdrojů.

Zaměřte se na:


Krok 3: Analýza výkonu originu

Pokud je váš web pomalý, problém může být na straně vašeho origin serveru. K posouzení výkonu origin serveru použijte Origin Analytics.

Zkontrolujte dobu odezvy origin serveru

V dashboardu Cloudflare:

  1. Přejděte na Rychlost > Origin Analytics.

    Přejděte na Origin Analytics ↗
  2. Zkontrolujte Doba odezvy originu metriky.

  3. Hledejte vzorce v pomalých odpovědích, například konkrétní cesty, denní doby nebo geografické oblasti.

Vysoké doby odezvy origin serveru znamenají, že má váš origin server potíže. Zvažte:

Úplného průvodce dostupnými metrikami, diagnostickými postupy a interpretací stavových kódů originu najdete v Origin Analytics.

Zkontrolujte pomalé Workers

Pokud vaše zóna má Cloudflare Workers nasazeny, spouštějí se při každém odpovídajícím požadavku a prodlužují celkovou dobu odezvy. Pomalý Worker je běžnou příčinou vysokého TTFB.

Pokud chcete zjistit, zda výkon ovlivňují Workers:

  1. Přejděte na Workers & Pages na Cloudflare dashboardu.
  2. Zjistěte, které Workers jsou nasazené ve vaší zóně.
  3. Zkontrolujte Analytics pro každý Worker, abyste viděli dobu provádění.
  4. Dočasně vypněte Workers, abyste zjistili, zda způsobují zpomalení.

Pokud je Worker pomalý, zkontrolujte jeho kód, zda neobsahuje:


Krok 4: Měření výkonu z příkazové řádky

Pro podrobné časové metriky konkrétních požadavků použijte k měření výkonu nástroje příkazového řádku.

Základní test výkonu

curl -w "\n\nDNS Lookup: %{time_namelookup}s\nTCP Connect: %{time_connect}s\nTLS Handshake: %{time_appconnect}s\nTime to First Byte: %{time_starttransfer}s\nTotal Time: %{time_total}s\n" -o /dev/null -s https://www.example.com/slow-asset.jpg
$url = "https://www.example.com/slow-asset.jpg"
try {
    $timing = Measure-Command { 
        $response = Invoke-WebRequest -Uri $url -ErrorAction Stop
    }
    Write-Host "Total Time: $($timing.TotalSeconds)s"
    Write-Host "Status: $($response.StatusCode)"
} catch {
    if ($_.Exception.Response) {
        $statusCode = $_.Exception.Response.StatusCode.value__
        Write-Host "Error Status: $statusCode"
    }
    Write-Host "Error: $($_.Exception.Message)"
}

Příklad výstupu (bash):

DNS Lookup: 0.025s
TCP Connect: 0.045s
TLS Handshake: 0.120s
Time to First Byte: 0.350s
Total Time: 1.250s

Pochopení metrik

Rozpis časování curl zobrazuje následující:

Metrika Popis Vysoká hodnota znamená
Vyhledání DNS Čas potřebný k překladu doménového jména Problémy s DNS nebo pomalý resolver
Navázání TCP spojení Čas potřebný k navázání TCP připojení Latence sítě nebo vzdálenost serveru
Navázání TLS spojení Čas potřebný k dokončení vyjednávání SSL/TLS Problémy s řetězem certifikátů nebo pomalý server
Doba do prvního bajtu (TTFB) Čas do prvního bajtu odpovědi Pomalé zpracování na originovém serveru
Celkový čas Celková doba trvání požadavku Velká velikost souboru nebo pomalý přenos

Testování z různých lokalit

Pokud chcete testovat z různých geografických lokalit, použijte online nástroje, například:


Krok 5: Prověření cachování

Ukládání do mezipaměti je jedním z nejúčinnějších způsobů, jak zlepšit výkon webu. Když je obsah uložen v mezipaměti, Cloudflare jej doručuje přímo z datového centra v blízkosti vašich návštěvníků, takže odpadá zpáteční cesta na váš origin server. Díky tomu se doba odezvy může zkrátit ze stovek milisekund na pouhých několik milisekund.

Obsah, který není v mezipaměti, musí putovat od návštěvníka k Cloudflare, poté na váš origin server a zpět. Použijte Cache Analytics abyste pochopili výkon své cache a identifikovali příležitosti, jak ukládat do cache více obsahu.

Zkontrolujte, zda jsou prostředky uloženy v mezipaměti

Zkontrolujte stav mezipaměti konkrétního prostředku:

curl -s -D- -o /dev/null https://www.example.com/asset.jpg | grep -i "cf-cache-status"
(Invoke-WebRequest -Uri "https://www.example.com/asset.jpg" -Method Head).Headers["cf-cache-status"]

Možné hodnoty:

Stav Význam Akce
HIT Obslouženo z mezipaměti Cloudflare Není potřeba žádná akce
MISS Není v cache, načteno z originu Může být potřeba nastavit Cache Rules
DYNAMIC Nelze uložit do cache Pokud je obsah statický, vytvořte pravidlo mezipaměti
BYPASS Mezipaměť záměrně obejita Zkontrolujte Cache Rules
EXPIRED Uložená kopie v mezipaměti byla neaktuální Zvyšte Edge TTL
REVALIDATED Cloudflare potvrdilo, že obsah je aktuální Zvyšte Edge TTL

Úplný seznam naleznete v Odpovědi mezipaměti Cloudflare.

Použijte Cache Analytics

  1. Přejděte na Cloudflare dashboard.

    Přejděte na Přehled ↗
  2. Zkontrolujte Výkon mezipaměti sekce.

  3. Filtrovat podle Stav mezipaměti se rovná MISS nebo DYNAMIC abyste identifikovali obsah, který není uložen v cache.

Zjistěte, proč se statický obsah neukládá do cache

Pokud statická aktiva (obrázky, CSS, JavaScript) vykazují stav cache DYNAMIC, BYPASS, nebo MISS, prozkoumejte příčinu:

Příznak Pravděpodobná příčina Řešení
DYNAMIC stav Typ obsahu není v výchozí přípony souborů Vytvořte Cache Rule pro ukládání obsahu do mezipaměti
DYNAMIC stav Origin server odesílá Cache-Control: private nebo no-store Vytvořte Cache Rule pro přepsat cache control origin serveru
BYPASS stav Cache Rule obchází cache Zkontrolujte své Cache Rules konfigurace
MISS při každém požadavku Odpověď obsahuje Set-Cookie hlavička Nastavte svůj origin server tak, aby u statických prostředků nenastavoval cookies, nebo použijte Cache Rule k ignorovat soubory cookie
MISS s parametry adresy URL Různé query řetězce vytvářejí různé záznamy v mezipaměti Použijte vlastní cache key abyste ignorovali nebo normalizovali parametry adresy URL

Ukládejte do mezipaměti další statický obsah

Cloudflare ve výchozím nastavení ukládá do mezipaměti pouze určité přípony souborů. Chcete-li ukládat do cache další statický obsah:

  1. Přejděte na Ukládání do mezipaměti > Cache Rules.
  2. Vytvořte pravidlo pro ukládat konkrétní obsah do mezipaměti.
  3. Nastavte vhodné Edge TTL.

Použijte Cloudflare Trace k ladění pravidel cache

Pokud se vaše cache rules neuplatňují podle očekávání, použijte Cloudflare Trace abyste simulovali požadavek a zjistili přesně, která pravidla se uplatní. Trace vám ukáže, jak by vaše konfigurace Cloudflare (včetně cache rules, page rules a dalších nastavení) ovlivnila konkrétní URL adresu.

To je užitečné zejména v těchto případech:


Krok 6: Diagnostika síťových problémů

Pokud curl ukazuje vysoké hodnoty TCP Connect nebo TLS Handshake, problém může souviset spíše se sítí než s aplikací.

Otestujte své internetové připojení

Navštivte speed.cloudflare.com ↗ abyste otestovali:

Špatné výsledky ukazují na problémy s vaší lokální sítí nebo poskytovatelem internetového připojení.

Spusťte MTR ze svého umístění do Cloudflare

MTR kombinuje traceroute a ping a zobrazuje latenci a ztrátovost paketů na každém síťovém uzlu.

mtr -rw www.example.com

Stáhnout WinMTR ↗ a spusťte ji s vaší doménou jako cílem.

Zaměřte se na:

Podrobnosti uvádí Jak číst výstup MTR ↗.

Spusťte MTR z vašeho originového serveru do Cloudflare

Pokud máte přístup ke svému origin serveru, spusťte MTR z origin serveru na IP adresa Cloudflare ↗ abyste otestovali síťovou cestu mezi vaším originem a Cloudflare.

mtr -rw 104.16.132.229

Vysoká latence nebo ztráta paketů na této cestě ovlivňuje všechny požadavky, které nezasáhnou cache.


Krok 7: Pochopení směrování sítě

Způsob, jakým Cloudflare směruje požadavky do svých datových center, může výrazně ovlivnit výkon.

Zjistěte, které datové centrum obsluhuje vaše požadavky

Přidejte /cdn-cgi/trace k vaší doméně, abyste zjistili, které datové centrum Cloudflare obsluhuje vaše požadavky:

curl https://www.example.com/cdn-cgi/trace
Invoke-RestMethod -Uri "https://www.example.com/cdn-cgi/trace"

colo pole zobrazuje třípísmenný kód letiště obsluhujícího datového centra (například colo=SJC pro San Jose). Úplný seznam datových center Cloudflare a jejich kódů najdete na Stránka stavu Cloudflare ↗.

Proč na směrování záleží

Když požadavek dorazí ke Cloudflare:

  1. Požadavek je směrován do nejbližšího datového centra Cloudflare na základě anycast směrování ↗.
  2. Pokud je obsah uložen v cache, je doručen okamžitě.
  3. Pokud obsah není uložen v cache, Cloudflare jej načte z vašeho origin serveru.

Pokud je váš origin server geograficky vzdálený od datového centra Cloudflare, které obsluhuje vaše uživatele, budou požadavky mimo cache pomalé.

Řešení neočekávaného směrování

Pokud jsou požadavky směrovány do datového centra, které se zdá být od uživatele vzdálené, může to být způsobeno automatizovaným řízením provozu Cloudflare nebo směrováním provozu ze strany ISP daného uživatele.

Cloudflare se vždy snaží poskytovat nejlepší možný výkon obsluhou provozu z nejbližší lokality, prioritou číslo jedna ale zůstává spolehlivost. Pokud jsou výkon a spolehlivost v rozporu, systémy Cloudflare upřednostní stabilní připojení před lokálním.

Podrobnosti uvádí Provoz Cloudflare není směrován do geograficky nejbližšího datového centra.

Časté příčiny neočekávaného směrování:

Příznak Vysvětlení
Požadavky se směrují do vzdáleného datového centra Řízení provozu Cloudflare kvůli spolehlivosti nebo směrovací rozhodnutí poskytovatele připojení (ISP)
Změny směrování mezi jednotlivými požadavky Normální chování: směrování se přizpůsobuje podmínkám sítě nebo vyvažování zátěže u ISP
Konzistentní směrování do vzdáleného regionu Místo peeringu ISP nebo správa kapacity Cloudflare
Vysoká latence i přes blízké datové centrum Přetížení sítě na trase

Řešení vzdálenosti od originu

Podle svých potřeb zvažte následující řešení:

Řešení Popis Vhodné pro
Zlepšete poměr zásahů v cache Ukládejte do mezipaměti více obsahu a omezte tak počet požadavků na origin server Všechny weby
Tiered Cache Použijte datová centra vyšší úrovně ke snížení počtu požadavků na origin server Weby s globálním provozem
Argo Smart Routing Směrujte provoz přes rychlejší síťové cesty Weby s pomalým připojením k originovému serveru
Přesuňte origin server blíže Nasaďte origin servery ve více regionech Rozsáhlé aplikace

Povolte Argo Smart Routing

Argo Smart Routing analyzuje podmínky v síti v reálném čase a směruje provoz po nejrychlejších cestách, čímž v průměru snižuje latenci o 30%.

Argo Smart Routing je součástí Smart Shield, které sdružuje více funkcí Cloudflare pro výkon a spolehlivost.

Pokud chcete zapnout Argo Smart Routing:

  1. Přejděte na Cloudflare dashboard ↗.
  2. Postupujte podle Průvodce nastavením Smart Shield abyste danou funkci povolili.

Argo je obzvláště účinné v těchto případech:

Podrobné informace o fungování Argo Smart Routing najdete v Dokumentace Argo Smart Routing.


Pokud problém přetrvává, kontaktujte podporu

Pokud jste postupovali podle výše uvedených kroků a problém s výkonem přetrvává, kontaktujte Cloudflare Support s žádostí o pomoc.

Když kontaktujete podporu, poskytněte co nejvíce podkladů, které pomohou problém diagnostikovat:

Čím více důkazů o zpomalení poskytnete, tím rychleji dokáže podpora problém identifikovat a vyřešit.