INTEGRITY Dokumentace

Limity

Limity plánu účtu

Funkce Workers Free Workers Paid
Požadavky 100,000/den Bez limitu
Čas CPU 10 ms 5 min
Paměť 128 MB 128 MB
Podpožadavky 50/požadavek 10,000/požadavek
Současná odchozí
připojení/požadavek
6 6
Proměnné prostředí 64/Worker 128/Worker
Proměnná prostředí
velikost
5 KB 5 KB
Velikost Workeru 3 MB 10 MB
Doba spuštění Workeru 1 sekunda 1 sekunda
Počet Workerů1 100 500
Počet Cron Triggers
na účet
5 250
Počet Static Asset souborů na verzi Workeru 20,000 100,000
Individuální Static Asset velikost souboru 25 MiB 25 MiB

1 Pokud tento limit dosáhnete, zvažte použití Workers for Platforms.


Limity požadavků a odpovědí

Limit Hodnota
Velikost URL 16 KB
Velikost hlavičky požadavku 128 KB (celkem)
Velikost hlavičky odpovědi 128 KB (celkem)
Velikost těla odpovědi Žádný vynucený limit

Limity velikosti těla požadavku závisí na vašem plánu účtu Cloudflare, nikoli na plánu Workers. Požadavky, které tyto limity překročí, vrátí 413 Request entity too large chyba.

Tarif Cloudflare Maximální velikost těla požadavku
Free 100 MB
Pro 100 MB
Business 200 MB
Enterprise 500 MB (ve výchozím nastavení)

Zákazníci s plánem Enterprise mohou kontaktovat svůj tým pro správu účtu nebo Cloudflare Support pro vyšší limit velikosti těla požadavku.

Cloudflare nevynucuje limity velikosti těla odpovědi. Limity mezipaměti CDN platí: 512 MB pro plány Free, Pro a Business a 5 GB pro Enterprise.


Čas CPU

Čas CPU měří, jak dlouho CPU tráví prováděním kódu vašeho Workeru. Čekání na síťové požadavky (například fetch() volání, čtení z KV nebo databázové dotazy) nezajišťuje ne se započítávají do doby CPU.

Limit Workers Free Workers Paid
Čas CPU na HTTP požadavek 10 ms 5 min (výchozí: 30 sekund)
Čas CPU na Cron Trigger 10 ms 30 sekund (interval < 1 hodina)
15 min (interval >= 1 hodina)

Většina Workers spotřebuje jen velmi málo CPU času. Průměrný Worker využije přibližně 2.2 ms na požadavek. Náročnější úlohy, jako je autentizace, server-side rendering nebo zpracování velkých payloadů, obvykle spotřebují 10-20 ms.

Každý izolát má určitou vestavěnou flexibilitu pro případy, kdy váš Worker příležitostně překročí nastavený limit. Pokud váš Worker začne limit překračovat trvale, jeho spuštění bude ukončeno podle nastaveného limitu.

Chyba: překročen časový limit CPU

Když Worker překročí limit doby CPU, Cloudflare vrátí Chyba 1102 klientovi se zprávou Worker exceeded resource limits. V dashboardu se to zobrazuje jako Exceeded CPU Time Limits v části Metriky > Chyby > Invocation Statuses. V Analytics a Logpush je výsledek volání exceededCpu.

Chcete-li vyřešit chybu limitu doby CPU:

  1. Zvyšte limit CPU času : v plánu Workers Paid můžete limit zvýšit z výchozích 30 sekund až na 5 minut (300,000 ms). Nastavte to v konfiguraci Wrangleru nebo na dashboardu.
  2. Optimalizujte svůj kód : použijte Profilování CPU pomocí DevTools k identifikaci částí kódu náročných na CPU.
  3. Odložení práce : přesuňte náročné výpočty do Durable Objects nebo zpracovávat data v menších částech napříč více požadavky.

Zvýšení limitu CPU času

V plánu Workers Paid můžete zvýšit maximální dobu CPU z výchozích 30 sekund až na 5 minut (300,000 ms).

{
	// ...rest of your configuration...
	"limits": {
		"cpu_ms": 300000, // default is 30000 (30 seconds)
	},
	// ...rest of your configuration...
}
[limits]
cpu_ms = 300_000

Toto můžete také změnit v dashboardu: přejděte na Workers & Pages > vyberte svůj Worker > Nastavení > upravte limit CPU času.

Sledování využití CPU


Paměť

Limit Hodnota
Paměť na izolát 128 MB

Každý izolát může spotřebovat až 128 MB paměti, včetně haldy JavaScriptu a WebAssembly alokace. Tento limit platí na izolát, nikoli na jedno volání. Jeden izolát dokáže zpracovat mnoho souběžných požadavků.

Když izolát překročí 128 MB, runtime prostředí Workers nechá rozpracované požadavky doběhnout a pro další požadavky vytvoří nový izolát. Při extrémně vysoké zátěži může runtime některé příchozí požadavky zrušit, aby zachoval stabilitu.

Chyba: překročen limit paměti

Když Worker překročí limit paměti, Cloudflare vrátí Chyba 1102 klientovi se zprávou Worker exceeded resource limits. V dashboardu se to zobrazuje jako Exceeded Memory v části Metriky > Chyby > Invocation Statuses. V Analytics a Logpush je výsledek volání exceededMemory.

Také se vám může zobrazit chyba za běhu Memory limit would be exceeded before EOF při pokusu o bufferování těla odpovědi, které přesahuje limit.

Chcete-li vyřešit chybu limitu paměti:

  1. Streamování těl požadavků a odpovědí : použijte TransformStream nebo node:stream místo ukládání celého obsahu do paměti.
  2. Vyhněte se velkým objektům v paměti : ukládejte velká data do KV, R2, nebo D1 místo jejich uchovávání v paměti Workeru.
  3. Profilování využití paměti : použijte profilování paměti pomocí DevTools lokálně, abyste identifikovali úniky paměti a alokace s vysokou spotřebou paměti.

Chcete-li zobrazit chyby paměti v dashboardu:

  1. Přejděte na Workers & Pages.

    Přejděte na Workers & Pages ↗
  2. Vyberte Worker, který chcete prozkoumat.

  3. V části Metriky, vyberte Chyby > Invocation Statuses a prozkoumejte Překročená paměť.


Doba trvání

Duration měří reálný čas od začátku do konce vyvolání Workeru.

Typ triggeru Limit délky trvání
Požadavek HTTP Bez limitu
Cron Trigger 15 min
Durable Object Alarm 15 min
Queue Consumer 15 min

Pro Workers spouštěné přes HTTP neexistuje pevný limit doby trvání. Dokud zůstává klient připojen, může Worker pokračovat ve zpracování, vytváření dílčích požadavků a streamování těla odpovědi. Jakmile se klient odpojí nebo je odpověď dokončena, mohou být úkoly spojené s daným požadavkem zrušeny. Použijte ctx.waitUntil() pro provedení práce po odeslání odpovědi. waitUntil() může prodloužit běh až o 30 sekund po odeslání odpovědi nebo po odpojení klienta.


Denní požadavky

Workers se automaticky škálují v rámci celé globální sítě Cloudflare. Obecný limit počtu požadavků za sekundu neexistuje.

Účty v plánu Workers Free mají denní limit 100,000 požadavků, který se resetuje o půlnoci UTC. Pokud Worker tento limit překročí, Cloudflare vrátí Chyba 1027.

Režim trasy Chování
Fail open Obchází Worker. Požadavky se chovají, jako by nebyl nakonfigurován žádný Worker.
Fail closed Vrátí Cloudflare 1027 chybová stránka. Použijte ji pro Workery, u kterých záleží na bezpečnosti.

Fail mode můžete nakonfigurovat přepnutím odpovídajícího trasa.


Podpožadavky

Subrequest je jakýkoli požadavek, který Worker odešle pomocí Fetch API nebo ke službám Cloudflare, jako je R2, KV, nebo D1.

Limit Workers Free Workers Paid
Podpožadavky na jedno vyvolání 50 10,000 (až 10M)
Podpožadavky na interní služby 1,000 Odpovídá nakonfigurovanému limitu (výchozí 10,000)

Každý subrequest v řetězci přesměrování se počítá do tohoto limitu. Celkový počet subrequestů může přesáhnout počet fetch() volání ve vašem kódu. Limit subrequestů na Worker můžete změnit pomocí limits konfigurace ve vašem konfiguračním souboru Wrangler.

Pro jednotlivé dílčí požadavky není stanoven žádný časový limit. Dokud zůstává klient připojen, může Worker pokračovat ve vytváření dílčích požadavků. Jakmile se klient odpojí nebo je odpověď dokončena, může být nedokončená práce zrušena, pokud nebyla předána ctx.waitUntil(), které mohou prodloužit provádění až o 30 sekund.

Worker-to-Worker subrequesty

Použijte Service Bindings pro odesílání požadavků z jednoho Workeru do druhého v rámci vašeho účtu bez nutnosti procházet internetem.

Použití globálního fetch() pro volání jiného Workeru na stejném zóna bez service bindings selže. Workers přijímají požadavky odeslané na Custom Domain.


Současně otevřená spojení

Každé volání Workeru může mít současně až šest připojení čekajících na hlavičky odpovědi. Do tohoto limitu se počítají následující volání API, dokud probíhá navazování počátečního připojení a server ještě neodpověděl:

Do tohoto limitu se započítávají i odchozí připojení WebSocket.

Jakmile pro dané spojení dorazí hlavičky odpovědi, přestane se počítat do limitu šesti spojení. To znamená, že Worker může mít současně otevřených mnoho spojení, pokud jich není více než šest zároveň ve fázi "waiting for headers". Pokud se pokusí navázat sedmé spojení, zatímco šest již čeká na hlavičky, zařadí se do fronty, dokud jedno z existujících spojení nepřijme své hlavičky odpovědi.

Pokud používáte fetch() ale nepotřebujete tělo odpovědi, volání response.body.cancel() je stále dobrým zvykem uvolnit paměť:

src/index.js
const response = await fetch(url);

// Only read the response body for successful responses
if (response.status <= 299) {
	// Call response.json(), response.text() or otherwise process the body
} else {
	// Explicitly cancel it
	response.body.cancel();
}
src/index.ts
const response = await fetch(url);

// Only read the response body for successful responses
if (response.status <= 299) {
	// Call response.json(), response.text() or otherwise process the body
} else {
	// Explicitly cancel it
	response.body.cancel();
}

Proměnné prostředí

Limit Workers Free Workers Paid
Proměnné na Worker (tajné klíče + text) 64 128
Velikost proměnné 5 KB 5 KB
Proměnné na účet Bez limitu Bez limitu

Velikost Workeru

Limit Workers Free Workers Paid
Po kompresi (gzip) 3 MB 10 MB
Před kompresí 64 MB 64 MB

Větší balíčky Workeru mohou ovlivnit dobu spuštění. Velikost komprimovaného balíčku zjistíte takto:

wrangler deploy --outdir bundled/ --dry-run
# Output will resemble the below:
Total Upload: 259.61 KiB / gzip: 47.23 KiB

Chcete-li zmenšit velikost Workeru:


Doba spuštění Workeru

Limit Hodnota
Doba spuštění 1 sekunda

Worker musí zpracovat a spustit svůj globální rozsah (kód nejvyšší úrovně mimo handlery) do 1 sekundy. Větší bundly a nákladná inicializace v globálním rozsahu prodlužují dobu spuštění.

Když platforma odmítne nasazení, protože Worker překročí limit doby spuštění, ověření vrátí chybu Script startup exceeded CPU time limit (chybový kód 10021). Wrangler automaticky vygeneruje profil CPU, který můžete importovat do Chrome DevTools nebo otevřít ve VS Code. Viz wrangler check startup pro další podrobnosti.

Chcete-li změřit dobu spuštění, spusťte npx wrangler@latest deploy nebo npx wrangler@latest versions upload. Wrangler hlásí startup_time_ms ve výstupu.

Chcete-li zkrátit dobu spuštění, vyhněte se náročným operacím v globálním rozsahu. Přesuňte inicializační logiku do svého handleru nebo do doby sestavení. Generování nebo zpracování velkého schématu na nejvyšší úrovni je například častou příčinou překročení tohoto limitu.


Počet Workerů

Limit Workers Free Workers Paid
Workers na účet 100 500

Pokud potřebujete více než 500 Workerů, zvažte použití Workers for Platforms.


Trasy a domény

Limit Hodnota
Trasy na zónu 1,000
Trasy na zónu (wrangler dev --remote) 50
Vlastní domény na zónu 100
Směrované zóny na jeden Worker 1,000

Trasy s wrangler dev --remote

Když spustíte vzdálený vývoj relaci pomocí --remote příznak, Cloudflare vynucuje limit 50 tras na zónu. Quick Editor v Cloudflare dashboardu rovněž používá wrangler dev --remote, takže platí stejný limit.

Pokud má vaše zóna více než 50 tras, nemůžete spustit vzdálenou relaci, dokud počet tras nesnížíte pod tento limit.

Pokud potřebujete více než 1,000 tras nebo 1,000 směrovaných zón na Worker, zvažte použití Workers for Platforms. Pokud potřebujete více než 100 vlastních domén na zónu, zvažte použití zástupné trasa.


Limity Cache API

Funkce Workers Free Workers Paid
Maximální velikost objektu 512 MB 512 MB
Volání na požadavek 50 1,000

Volání na požadavek je počet put(), match(), nebo delete() volání Cache API na požadavek. Tento limit sdílí stejnou kvótu jako subrequesty (fetch()).


Velikost protokolu

Limit Hodnota
Data protokolu na jeden požadavek 256 KB

Tento limit se vztahuje na všechna data odeslaná pomocí console.log() příkazů, výjimek, metadat requestu a hlaviček pro jeden request. Po překročení tohoto limitu systém pro daný request již nezaznamenává další kontext v lozích, tail lozích ani Tail Workers.

Viz Dokumentace Workers Trace Event Logpush pro limity polí odesílaných do cílů Logpush.


Změna velikosti obrázků pomocí Workers

Viz Dokumentace ke změně velikosti obrázků pro limity platné při použití Image Resizing s Workers.


Static Assets

Limit Workers Free Workers Paid
Soubory na verzi Workeru 20,000 100,000
Velikost jednotlivého souboru 25 MiB 25 MiB
_headers pravidla 100 100
_headers znaků na řádek 2,000 2,000
_redirects statická přesměrování 2,000 2,000
_redirects dynamická přesměrování 100 100
_redirects celkem 2,100 2,100
_redirects znaků na pravidlo 1,000 1,000

Limity plánů Unbound a Bundled

Pokud je váš Worker na plánu Unbound, limity odpovídají plánu Workers Paid.

Pokud je váš Worker na plánu Bundled, limity odpovídají plánu Workers Paid s těmito výjimkami:

Funkce Limit plánu Bundled
Podpožadavky 50/požadavek
Čas CPU (HTTP požadavky) 50 ms
Čas CPU (Cron Triggers) 50 ms
Volání Cache API na požadavek 50

Workers na plánu Bundled nemají žádné časové limity pro Cron Triggers, Durable Object Alarms, nebo Queue Consumers.


Limity reálného času podle typu vyvolání

Reálný čas (anglicky též "wall-clock time") představuje celkovou dobu od začátku do konce vyvolání, včetně času stráveného čekáním na síťové požadavky, I/O operace a další asynchronní operace. Liší se od Čas CPU, které měří pouze čas, který CPU stráví aktivním prováděním vašeho kódu.

Následující tabulka shrnuje limity reálného času pro různé typy vyvolání Workeru v rámci vývojářské platformy:

Invocation type Limit reálného času Podrobnosti
Příchozí HTTP požadavek Neomezeně Žádný pevný limit, dokud zůstává klient připojen. Worker, který stále streamuje tělo odpovědi, zůstává aktivní. waitUntil() prodlužuje běh až o 30 sekund po odeslání odpovědi nebo odpojení.
Cron Triggers 15 minut Naplánovaní Workers mají maximální reálný čas běhu 15 minut na jedno vyvolání.
Queue consumers 15 minut Každé volání consumeru má maximální reálný čas běhu 15 minut.
Obslužné rutiny alarmů v Durable Object 15 minut Volání alarm handleru mají maximální reálnou dobu běhu (wall time) 15 minut.
Durable Objects (RPC / HTTP) Neomezeně Žádný pevný limit, dokud zůstává volající připojen k Durable Object. Durable Objects zůstávají aktivní, dokud probíhá požadavek, RPC volání, stream odpovědi, WebSocket nebo čekající I/O operace.
Workflows (na krok) Neomezeně Každý krok může běžet po neomezenou dobu. Na jednotlivé kroky se vztahuje nakonfigurovaný Limit CPU času.