Vextnd
Resources
Cost Management

May 10, 2026

3 min read

BSU storage on Outscale: when io1 stops being worth it

Outscale's three BSU types (magnetic, gp2, io1) cost wildly different things, and the IOPS pricing on io1 is the trap. Here's the math for picking the right one.


You provision a 500 GiB io1 volume with 10,000 IOPS for a database. The volume itself costs about €65/month. The IOPS cost about €100/month. Your "fast disk" is now €165/month for 500 GiB.

A gp2 volume of the same 500 GiB? €55/month, no IOPS surcharge, ~3,000 IOPS baseline (burstable to 6,000+). Same disk, one third the cost, often enough performance.

The lesson: BSU pricing is not a smooth gradient from cheap to fast. There are sharp cliffs, and io1 has the steepest one.

The three BSU types

Outscale BSU comes in three flavours:

Magnetic (standard). About €0.04/GiB/month. Spinning disk, no IOPS guarantee. Cheap, slow. Real use case: cold storage, archived data, snapshots-as-volumes that nobody hits often.

gp2 (performance). About €0.11/GiB/month. SSD-backed, baseline IOPS scales with size (~3 IOPS per GiB), bursts higher. Default for most workloads. Database OK, app servers fine, no per-IOPS surcharge.

io1 (enterprise). About €0.13/GiB/month, plus ~€0.01 per provisioned IOPS per month. SSD-backed with guaranteed IOPS up to whatever you provision. The IOPS line is where the cost runs away.

The IOPS pricing trap

The thing that makes io1 expensive isn't the GiB rate. It's that you provision IOPS as a separate line item, and it's easy to over-provision because the default UI suggestions are aggressive.

A common configuration: 500 GiB io1 with 10,000 IOPS.

  • GiB cost: 500 × €0.13 = €65/month
  • IOPS cost: 10,000 × €0.01 = €100/month
  • Total: €165/month

Same workload on gp2 with 500 GiB:

  • GiB cost: 500 × €0.11 = €55/month
  • IOPS cost: included (baseline ~1,500, burst to 3,000)
  • Total: €55/month

That's a 3× cost difference, on the assumption that the workload genuinely needs 10,000 sustained IOPS. Most workloads don't. They peak there occasionally, and gp2's burst handles it.

When io1 actually wins

io1 is the right choice when both of these are true:

  1. Sustained IOPS demand exceeds gp2's baseline. If you genuinely run 5,000 IOPS continuously, gp2 will throttle and io1 won't.
  2. Latency variance matters. io1's IOPS are guaranteed; gp2's depend on the burst credit balance. For a workload where p99 latency under load is a hard requirement (financial systems, critical OLTP), io1's predictability is worth the cost.

For everything else — analytical workloads, app servers, normal databases, dev environments, snapshot staging — gp2 is correct. The "performance" tier is plenty performant.

The decision tree

Skip io1 unless you can answer "yes" to all three:

  • Does the workload sustain >3,000 IOPS for >15 minutes at a stretch, regularly?
  • Does p99 disk latency under load impact a customer-facing SLO?
  • Is the cost of slowness clearly higher than the cost of the IOPS surcharge?

If any answer is no, pick gp2. If all answers are yes, io1 is genuinely the right tool.

For cold data and rarely-accessed volumes (older snapshots being temporarily mounted, dev environment scratch space), magnetic is fine and 3× cheaper than gp2. Don't default to performance for every disk just because it's the obvious option.

The Vextnd IOPS toggle

For io1 volumes already in production, there's a quieter optimization: the reduce-IOPS-when-idle pattern. Most "high-IOPS" volumes don't need their full provisioned IOPS 24/7 — they need it during business hours, batch windows, or specific load events. The rest of the time, the IOPS provision is paid-for unused capacity.

Vextnd's volume scheduler can lower an io1 volume's provisioned IOPS during off-hours and bring it back during work hours. The savings: typically 20-35% on the IOPS line. This is a manual toggle on each volume — defaults to off because lowering IOPS during a write-heavy moment is bad. Used right (on dev/staging/batch), it's free money.

A 3-volume example

A typical small environment has three meaningful volumes. Here's a realistic configuration and what each should be:

  • Production database (200 GiB, sustained 4,000 IOPS): io1 with 5,000 IOPS provisioned. ~€76/month. Justified.
  • Application server root (50 GiB, low IOPS): gp2. €5.50/month. No reason to use anything fancier.
  • Dev database (200 GiB, occasional access): gp2 with Vextnd scheduling. €22/month, drops to €15 if you tag and schedule. No reason to use io1.

Total: ~€100/month. The same setup with all-io1, default IOPS provisioning, would run €280-€350/month for no perceptible benefit on volumes 2 and 3. The "always pick the fastest" reflex compounds badly across a fleet.

Ready to cut your Outscale bill?

14-day free trial. First results within 24 hours.