Memory and CPU
Set memory per Function in gigadrive.yaml. CPU is fixed at one core and does not scale with the memory you pick.
memory is the only compute size you set on a Function. It decides how much RAM your code gets, how many WebSocket connections one copy of the Function accepts, and part of what you pay.
Setting memory
version: 4
functions:
api/index.js:
memory: 512
api/report.js:
memory: 1024The config file accepts 128 to 3009, in MB. Leaving memory out gives you 128.
Gigadrive Network then raises anything below 256 MB to 256 MB and rounds up to the next even number. A Function declaring 128 runs with 256 MB, and one declaring 513 runs with 514 MB. That rounded figure is what is reserved for the Function and what your invoice measures.
Framework detection picks a starting point when you have no config file: 1024 MB for Next.js, 512 MB for Symfony, 256 MB for Nuxt, SvelteKit, Astro, Remix, NestJS and Laravel, and 128 MB for Express, Fastify, Hono, Vite and Elysia.
CPU does not follow memory
Every Function gets one vCPU with a full core of quota, whatever memory says. Raising memory buys you heap, not speed. If a Function is slow because it is CPU-bound, more memory will not fix it.
Parallelism inside one copy of a Function still works the way Node and Bun already work: I/O overlaps freely, and CPU work is serialised on that one core. Extra load is handled by adding more copies, which is covered under Concurrency.
Plan caps
Two ceilings apply, in order. The config file's own maximum of 3009 MB is checked when gigadrive.yaml is parsed, so a larger value fails validation before the deploy starts.
Your plan sets a second per-Function maximum, checked against the rounded figure and before your code is packaged. A Function over it fails the deploy with a message naming the file and the ceiling. Every plan's ceiling currently sits above what the config file accepts, so a Function declared in gigadrive.yaml reaches the 3009 MB limit first.
Deployments already serving traffic are unaffected by a plan change; the cap applies again the next time you deploy. The per-plan numbers are in Limits and billing.
What memory costs
Memory is billed as function_in_flight_memory_mb_ms, and it accrues only while a Function is running. Between requests the platform pauses the Function, and a paused Function reports zero memory. Active CPU is billed separately as function_active_cpu_ms, measured while a request is in flight rather than for the time your code sits resident.
Doubling memory therefore doubles the memory portion of a busy Function's bill, and changes nothing about an idle one.
