← Speed / speed / troubleshooting
Ř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.comResolve-DnsName -Name www.example.com | Select-Object -ExpandProperty IPAddressVrá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:
- Přejděte na Cloudflare dashboard ↗.
- Najděte DNS záznam pro pomalý hostname.
- 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í:
- Identifikujte konkrétní pomalé požadavky - Zjistěte, které URL adresy, prostředky nebo API endpointy jsou pomalé.
- Změřte zpomalení - Kvantifikujte zpoždění (například „načtení tohoto obrázku trvá 5 sekund“).
- 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
-
Přejděte na Cloudflare dashboard.
Přejděte na Observatory ↗ -
Vyberte Observatory.
-
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.
Zapněte doporučené optimalizace
Na základě výsledků Observatory zapněte příslušné Optimalizace rychlosti:
- Komprese Brotli - Komprimujte odpovědi pro rychlejší přenos
- Early Hints - Přednačtěte kritické prostředky
- HTTP/2 a HTTP/3 - Používejte moderní protokoly s multiplexováním, které umožňují více požadavků v rámci jednoho spojení místo otevírání samostatného spojení pro každý prostředek
- Optimalizace obrázků - Automaticky optimalizujte a měňte velikost obrázků
- Rocket Loader - Odložte načítání JavaScriptu a zkraťte tak dobu vykreslení
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
- Otevřete nástroje pro vývojáře ve svém prohlížeči.
- Přejděte na Síť kartě.
- Znovu načtěte stránku a sledujte, které požadavky trvají nejdéle.
- Seřadit podle Čas nebo Doba trvání abyste identifikovali nejpomalejší prostředky.
- Poznamenejte si konkrétní URL adresy pomalých zdrojů.
Zaměřte se na:
- Velké obrázky nebo videa
- Pomalá volání API
- Skripty třetích stran
- Zdroje blokující vykreslování
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:
-
Přejděte na Rychlost > Origin Analytics.
Přejděte na Origin Analytics ↗ -
Zkontrolujte Doba odezvy originu metriky.
-
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:
- Upgrade hostingového plánu
- Optimalizace databázových dotazů
- Implementace cachování na straně serveru
Ú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:
- Přejděte na Workers & Pages na Cloudflare dashboardu.
- Zjistěte, které Workers jsou nasazené ve vaší zóně.
- Zkontrolujte Analytics pro každý Worker, abyste viděli dobu provádění.
- Dočasně vypněte Workers, abyste zjistili, zda způsobují zpomalení.
Pokud je Worker pomalý, zkontrolujte jeho kód, zda neobsahuje:
- Pomalá externí volání API nebo
fetch()požadavky - Neefektivní smyčky nebo zpracování dat
- Chybí
awaitpříkazy, kvůli kterým dochází k sekvenčnímu místo paralelního provádění
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.250sPochopení 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
-
Přejděte na Cloudflare dashboard.
Přejděte na Přehled ↗ -
Zkontrolujte Výkon mezipaměti sekce.
-
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:
- Přejděte na Ukládání do mezipaměti > Cache Rules.
- Vytvořte pravidlo pro ukládat konkrétní obsah do mezipaměti.
- 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:
- Cache rule by mělo obsah ukládat do cache, ale odpověď ukazuje
DYNAMICneboBYPASS - Nejste si jisti, které pravidlo má přednost
- Chcete si před provedením změn otestovat scénář „co kdyby“
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:
- Rychlost stahování a nahrávání
- Latence (ping)
- Jitter
- Ztráta paketů
Š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.comStáhnout WinMTR ↗ a spusťte ji s vaší doménou jako cílem.
Zaměřte se na:
- Vysoká latence na konkrétních hopech (naznačuje pomalé segmenty sítě)
- Ztráta paketů (naznačuje přetížení sítě nebo problémy)
- Časové limity (může naznačovat problémy s firewally nebo směrováním)
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.229Vysoká 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/traceInvoke-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:
- Požadavek je směrován do nejbližšího datového centra Cloudflare na základě anycast směrování ↗.
- Pokud je obsah uložen v cache, je doručen okamžitě.
- 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:
- Přejděte na Cloudflare dashboard ↗.
- Postupujte podle Průvodce nastavením Smart Shield abyste danou funkci povolili.
Argo je obzvláště účinné v těchto případech:
- Váš origin server je daleko od vašich uživatelů
- Přetížení sítě ovlivňuje určité trasy
- Potřebujete konzistentní výkon celosvětově
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:
- Soubor HAR - Vygenerování souboru HAR která zachycuje pomalé požadavky. Ty poskytují podrobné informace o časování pro každý požadavek.
- Výsledky Observatory - Sdílejte snímky obrazovky nebo odkazy na výsledky testů Observatory.
- Data RUM - Pokud máte povolené Web Analytics, sdílejte příslušné metriky dokládající problém s výkonem.
- výstup příkazu curl - Přiložte rozpis časování z
curl --write-outpro pomalé prostředky. - Výsledky MTR - Pokud máte podezření na problémy se sítí, přiložte výstup MTR z vaší lokality na postiženou doménu.
- Konkrétní adresy URL - Uveďte přesné URL adresy, které jsou pomalé, spolu s očekávanou a skutečnou dobou odezvy.
Čím více důkazů o zpomalení poskytnete, tím rychleji dokáže podpora problém identifikovat a vyřešit.
Související zdroje
- Observatory - Testujte a sledujte výkon webu
- Cache Analytics - Analyzujte míru zásahů v cache
- Cache Rules - Určete, co se bude ukládat do cache
- Argo Smart Routing - Optimalizujte směrování sítě
- Shromažďování informací pro řešení problémů - Shromážděte diagnostická data