Performance Optimization

I measure the slow path, fix that, and stop paying for capacity you aren't using.

What I do

The slow request

I find the slow request and fix that path: code, query, or both.

Capacity after the slow path

I add capacity only after the slow path is fixed. Extra servers hide a bad query.

A number before and after

I measure before and after, so the change has a number on it.

What you get

The whole path

Frontend, the app, the database. I start where the time actually goes.

A trace, not a hunch

I don't guess. I read the trace.

Headroom you can name

I say what the current path can take, and what breaks first when traffic doubles.

A number you can watch

I leave the graph in place so the next slowdown is visible.

How the work goes

Measure the slow path

I measure the slow path under load that looks like yours.

Ordered by time saved

You get a short list, ordered by how much time it gives back.

The slowest thing first

I change the slowest thing first, then measure again.

A dashboard that stays

I leave the dashboard so you can see if it stays fast.

Tools I use

These show up when they fit the job.

New Relic logoNew Relic
Datadog logoDatadog
Prometheus logoPrometheus
Grafana logoGrafana
Apache JMeter logoApache JMeter
Gatling logoGatling
Elastic APM logoElastic APM
Dynatrace logoDynatrace
Lighthouse logoLighthouse
WebPageTest logoWebPageTest
Redis logoRedis
New Relic logoNew Relic
Datadog logoDatadog
Prometheus logoPrometheus
Grafana logoGrafana
Apache JMeter logoApache JMeter
Gatling logoGatling
Elastic APM logoElastic APM
Dynatrace logoDynatrace
Lighthouse logoLighthouse
WebPageTest logoWebPageTest
Redis logoRedis

If it's slow, measure the path before you add capacity.

Questions people ask