Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: Track memory usage for Workers and Durable Objects in the dashboard
description: The Workers Metrics tab now includes a Memory Usage chart that shows V8 isolate memory consumption across percentiles, helping you track memory trends and detect regressions.
products:
- workers

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add the durable objects here

date: 2026-06-25
---

You can now monitor how much memory your Worker consumes across invocations with the new **Memory Usage** chart in the Workers Metrics tab, broken down by P50, P90, P99, and P999 percentiles.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You can now monitor how much memory your Worker consumes across invocations with the new **Memory Usage** chart in the Workers Metrics tab, broken down by P50, P90, P99, and P999 percentiles.
You can now monitor how much memory your [Workers](/workers/) and [Durable Objects](/durable-objects/) consume across invocations with the new **Memory Usage** chart in the Workers Metrics tab, broken down by P50, P90, P99, and P999 percentiles.


![Memory usage chart showing P50, P90, P99, and P999 percentiles with deployment markers](~/assets/images/changelog/workers/observability/2026-06-25-memory-usage.png)

Memory usage measures the V8 [isolate](/workers/reference/how-workers-works/#isolates) memory at the time of each invocation. This is the same memory pool subject to the [128 MB per-isolate limit](/workers/platform/limits/#memory) — a single isolate can handle many concurrent requests and shares memory across them.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we not call this a "pool"? Similar in concept but not literally what this is?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a single isolate can handle many concurrent requests and shares memory across them.

@iglesiasbrandon @vy-ton need to make sure we are explaining Durable Objects model here / somewhere / link to somewhere — to the extent reader needs to understand this in order to understand what the DO metric is or means


Use the Memory Usage chart to:

- **Track memory trends** — Spot gradual increases that may indicate a memory leak before they cause `Exceeded Memory` errors.
- **Correlate with deployments** — Deployment markers on the chart help you identify whether a new version introduced a memory regression.
- **Right-size your Worker** — Understand your baseline memory footprint and how much headroom you have before hitting the 128 MB limit.

Memory usage metrics are also available for Durable Objects.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add some DO specific information, maybe something along the lines of:

For Durable Objects, memory usage reflects the in-memory state an object holds (class properties, caches, active WebSocket connections), which persists across invocations until the object is hibernated or evicted. This state is not preserved across eviction, hibernation, or a crash, so persist anything important to storage.


To view memory usage, go to **Workers & Pages**, select your Worker, and open the **Metrics** tab. You can also query memory usage programmatically via the [GraphQL Analytics API](/analytics/graphql-api/tutorials/querying-workers-metrics/) using the `workersInvocationsAdaptive` dataset — the `quantiles.memoryUsageBytesP50` through `quantiles.memoryUsageBytesP999` fields return percentile values in bytes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about for Durable Objects?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the experience is almost the same except but on the DO page with 1 addition, @nevikashah can you also mention on the DO metrics tab you are able to filter by DO ID or Name so you can drill down and understand if that DO ran into issues because of memory?


For local memory debugging, you can also [profile memory with DevTools](/workers/observability/dev-tools/memory-usage/) to take heap snapshots and identify specific objects causing high memory usage.
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,16 @@ The CPU Time per execution chart shows historical CPU time data broken down into

The Duration per request chart shows historical [duration](/workers/platform/limits/#duration) per Worker invocation. The data is broken down into relevant quantiles, similar to the CPU time chart. Learn more about [interpreting quantiles](https://www.statisticshowto.com/quantile-definition-find-easy-steps/). Understanding duration on your Worker is especially useful when you are intending to do a significant amount of computation on the Worker itself.

### Memory usage

The Memory usage chart shows how much V8 isolate memory your Worker uses at the time of each invocation, broken down into P50, P90, P99, and P999 percentiles using [reservoir sampling](https://en.wikipedia.org/wiki/Reservoir_sampling). For more information, refer to [Interpreting quantiles](https://www.statisticshowto.com/quantile-definition-find-easy-steps/).

Workers run in V8 [isolates](/workers/reference/how-workers-works/#isolates), each with a [128 MB memory limit](/workers/platform/limits/#memory). A single isolate can handle many concurrent requests and shares memory across them. The memory usage metric reflects how much of this shared pool is in use at the time of each invocation.

Deployment markers on the chart let you correlate memory changes with specific code deployments, making it easier to identify whether a new version introduced a memory regression.

If you see memory usage trending upward over time, this may indicate a memory leak. Use [memory profiling with DevTools](/workers/observability/dev-tools/memory-usage/) locally to take heap snapshots and identify specific objects causing high memory consumption.

### Invocation statuses

To review invocation statuses:
Expand Down
Loading