← All Calculators

🧮 PERFTRACTOR

🔋 Load Generator Calculator

Work out how many virtual users each load generator can safely run.

🔋 Load Generator Calculator

Work out how many virtual users each load generator can safely run.

virtual users per load generator

The Formula

VUs per LG = (Total RAM − OS RAM − First VU) ÷ Additional VU + 1

  • Total RAM = Memory available on the load generator (MB)
  • OS RAM = Memory reserved for the operating system (MB)
  • First VU = Memory footprint of the first virtual user (MB)
  • Additional VU = Memory each extra virtual user adds (MB)

How it works

A load generator that runs out of memory or CPU produces slow, unreliable VUs, so your test measures the generator's limits instead of the system's. Sizing generators correctly is a prerequisite for trustworthy results.

The first virtual user pays the one-time cost (JVM/runtime, loaded resources); each additional VU adds a smaller incremental footprint. Subtract OS reserve and the first VU, then divide the remainder by the per-VU increment.

Always validate with a calibration run: watch generator CPU below ~70% and memory headroom at peak load. Divide your total VU count by this per-generator capacity to get the number of generators required.

Frequently Asked Questions

How many virtual users can one load generator run?

It depends on available memory and per-VU footprint: VUs = (Total RAM − OS reserve − first VU memory) ÷ per-additional-VU memory + 1. A 4 GB generator with 1 GB OS reserve, 200 MB first VU and 100 MB per extra VU runs about 29 VUs. Always confirm with a calibration run keeping CPU under ~70%.

How do I know if my load generator is overloaded?

Watch for generator CPU above 70–80%, memory swapping, or VU response times climbing while server-side metrics stay flat. Overloaded generators distort results: add generators or reduce VUs per generator.

Do I need multiple load generators for JMeter?

When your target VU count exceeds one machine's safe capacity, use JMeter distributed mode (jmeter-server on each injector, -r flag on the controller) or a cloud runner. Deploy the same JMeter version, plugins, and data files on every node.