# OVHcloud D2-4

[London](https://rackcensus.com/locations/london-vps-benchmarks "Every provider in London")

Benchmark complete

Finished Oct 25, 2026

Geekbench 7 single-core

748

Faster than 17% of 2 vCPU plans

Geekbench 7 multi-core

1,389

Faster than 29% of 2 vCPU plans

Disk 4K IOPS

20,031

fio random read and write, 50/50

Monthly price at test time

$13.50

103 multi-core points per dollar

Same price today

## Server

[OVHcloud](https://rackcensus.com/vps-providers/ovh-benchmarks)[D2-4](https://rackcensus.com/plans/47ot8m-ovh-d2-4-benchmarks?location=UK1)

-

Provider

OVHcloud

-

Plan

D2-4

-

Location

London

-

vCPU

2

-

RAM

4 GB

-

Storage

50 GB NVMe

-

Network

250 Mbps

-

OS image

Ubuntu 24.04

-

Trigger

Scheduled

-

Queued at

Oct 22, 2026, 17:09:00 UTC

[Visit OVHcloud](https://rackcensus.com/go/ovh)

## Latest runs of this plan

- [Beauharnois Oct 20, 2026](https://rackcensus.com/benchmarks/egtrhr-ovh-d2-4-bhs5-benchmark)648

[Full history of this plan](https://rackcensus.com/plans/47ot8m-ovh-d2-4-benchmarks/history)

## CPU

| Version | Single-core | Multi-core | Result link |
| --- | --- | --- | --- |
| Geekbench 7 | 748 | 1,389 | [Geekbench Browser](https://browser.geekbench.com/v7/cpu/713049) |

Scores from different Geekbench versions aren't comparable with each other. Charts only use Geekbench 7.

### Geekbench 7 workloads

| Workload | Single-core | Multi-core |
| --- | --- | --- |
| File Compression | 77272nd of 86 | 1,15246th of 48 |
| Navigation | 97260th of 86 | Single-core only |
| HTML5 Browser | 69171st of 86 | Single-core only |
| PDF Viewer | 79871st of 86 | Single-core only |
| Photo Library | 59773rd of 86 | 1,18345th of 48 |
| Clang | 68571st of 86 | 1,33244th of 48 |
| Text Processing | 72569th of 86 | 1,41537th of 48 |
| Asset Compression | 77263rd of 86 | 1,53540th of 48 |
| HDR | 68169th of 86 | 1,32840th of 48 |
| Photo Editor | 78363rd of 86 | 1,56641st of 48 |
| Ray Tracer | 84667th of 86 | 1,68939th of 48 |
| Structure from Motion | 88167th of 86 | Single-core only |
| Game Physics | 73868th of 86 | Single-core only |
| Video Encoder | 69569th of 86 | Single-core only |
| Audio Encoder | 73273rd of 86 | Single-core only |
| Video Player | 68269th of 86 | Single-core only |

Rank among the 86 runs with Geekbench 7 workload scores. Bars are relative to the best run. Geekbench doesn't run every workload multi-core, so some rows only have a single-core score.

## Disk

| Block size | Read | Write | Total |
| --- | --- | --- | --- |
| 4K | 39.1 MB/s (10,003 IOPS) | 39.2 MB/s (10,028 IOPS) | 78.2 MB/s (20,031 IOPS) |
| 64K | 641.1 MB/s (10,258 IOPS) | 644.5 MB/s (10,311 IOPS) | 1.26 GB/s (20,569 IOPS) |
| 512K | 927.9 MB/s (1,855 IOPS) | 977.2 MB/s (1,954 IOPS) | 1.86 GB/s (3,809 IOPS) |
| 1M | 1.08 GB/s (1,110 IOPS) | 1.16 GB/s (1,184 IOPS) | 2.24 GB/s (2,294 IOPS) |

fio random read and write, 50/50, run by YABS against the boot disk.

## Network

### IPv4 transfer speed

Loading...

| Target | Protocol | Send | Receive |
| --- | --- | --- | --- |
| Clouvider, London, UK (10G) | IPv4 | 244 Mbps | 245 Mbps |
| Leaseweb, NYC, NY, US (10G) | IPv4 | 237 Mbps | 239 Mbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 203 Mbps | 190 Mbps |

Public iperf3 servers vary in capacity and availability. Compare a target only with itself over time.

## Application workloads

### PostgreSQL transactions
Measured

Durable transfers and indexed account lookups against a fixed relational dataset.

PostgreSQL transactions measurements| Repeat | Offered / s | transactions/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 100 | 100 | 5.69 / 6.46 | 0 / 0 | Met workload limits |
| 1 | 500 | 498.34 | 4.59 / 5.82 | 0 / 299 | Met workload limits |
| 1 | 1000 | 992.89 | 4.54 / 16.91 | 0 / 1280 | Met workload limits |
| 1 | 3000 | 2916.93 | 10.68 / 87.91 | 0 / 14936 | error limit exceeded |
| 2 | 100 | 100 | 5.89 / 6.54 | 0 / 0 | Met workload limits |
| 2 | 500 | 498.36 | 4.59 / 8.48 | 0 / 295 | Met workload limits |
| 2 | 1000 | 990.76 | 4.54 / 6.39 | 0 / 1662 | Met workload limits |
| 2 | 3000 | 2975.67 | 7.33 / 76.35 | 0 / 4373 | Met workload limits |

p95 ≤ 50 ms · p99 ≤ 100 ms · errors ≤ 1.0%

### PostgreSQL large dataset
Failed

The same transaction mix against ten million accounts; the dataset never shrinks to fit a plan.

RuntimeError: RuntimeError: TimeoutError:

p95 ≤ 100 ms · p99 ≤ 250 ms · errors ≤ 1.0%

### Redis cache
Measured

A mixed cache workload with 1 KiB values, expiration, misses and eviction.

Redis cache measurements| Repeat | Offered / s | operations/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 1000 | 1000 | 1.5 / 1.63 | 0 / 0 | Met workload limits |
| 1 | 5000 | 4999.98 | 1.55 / 1.76 | 0 / 0 | Met workload limits |
| 1 | 10000 | 9999.23 | 1.47 / 1.79 | 0 / 131 | Met workload limits |
| 1 | 25000 | 24514.57 | 11.4 / 13.83 | 0 / 87197 | latency limit exceeded |
| 2 | 1000 | 1000 | 1.52 / 1.68 | 0 / 0 | Met workload limits |
| 2 | 5000 | 4999.76 | 1.55 / 1.81 | 0 / 0 | Met workload limits |
| 2 | 10000 | 9999.76 | 1.47 / 1.73 | 0 / 36 | Met workload limits |
| 2 | 25000 | 24591.91 | 11.27 / 13.25 | 0 / 73448 | latency limit exceeded |

p95 ≤ 10 ms · p99 ≤ 25 ms · errors ≤ 1.0%

### Redis persistent queue
Measured

Enqueue, consume and acknowledge payloads with append-only persistence.

Redis persistent queue measurements| Repeat | Offered / s | jobs/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 100 | 100 | 3.87 / 4.16 | 0 / 0 | Met workload limits |
| 1 | 500 | 500 | 2.68 / 3.11 | 0 / 0 | Met workload limits |
| 1 | 1000 | 999.99 | 2.76 / 3.15 | 0 / 0 | Met workload limits |
| 1 | 3000 | 2997.5 | 2.87 / 4.65 | 0 / 447 | Met workload limits |
| 2 | 100 | 100 | 3.82 / 4.16 | 0 / 0 | Met workload limits |
| 2 | 500 | 500 | 2.68 / 3.15 | 0 / 0 | Met workload limits |
| 2 | 1000 | 999.13 | 2.79 / 3.36 | 0 / 156 | Met workload limits |
| 2 | 3000 | 2999.99 | 2.72 / 3.87 | 0 / 0 | Met workload limits |

p95 ≤ 20 ms · p99 ≤ 50 ms · errors ≤ 1.0%

### Discourse community
Failed

Signed-in reading, search, posting and replies in a populated Rails forum.

RuntimeError: RuntimeError: TimeoutError:

p95 ≤ 1500 ms · p99 ≤ 3000 ms · errors ≤ 1.0%

### n8n workflows
Measured

Webhook, transformation, branching and a verified final response.

n8n workflows measurements| Repeat | Offered / s | workflows/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 5 | 5 | 37.54 / 55.25 | 0 / 0 | Met workload limits |
| 1 | 20 | 20 | 39.11 / 98.19 | 0 / 0 | Met workload limits |
| 1 | 50 | 43.47 | 6413.02 / 6607.37 | 0 / 1017 | latency limit exceeded |
| 1 | 100 | 40.77 | 6740.2 / 6944.46 | 0 / 10498 | latency limit exceeded |
| 2 | 5 | 5 | 39.91 / 64.96 | 0 / 0 | Met workload limits |
| 2 | 20 | 20 | 30.9 / 67.64 | 0 / 0 | Met workload limits |
| 2 | 50 | 44.01 | 6162.75 / 6349.51 | 0 / 909 | latency limit exceeded |
| 2 | 100 | 44.77 | 6413.02 / 6541.94 | 0 / 9778 | latency limit exceeded |

p95 ≤ 1000 ms · p99 ≤ 2000 ms · errors ≤ 1.0%

### n8n queue workers
Measured

Completed queued workflows including waiting time and worker execution.

n8n queue workers measurements| Repeat | Offered / s | workflows/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 5 | 5 | 55.25 / 106.41 | 0 / 0 | Met workload limits |
| 1 | 20 | 20 | 57.54 / 170.46 | 0 / 0 | Met workload limits |
| 1 | 50 | 36.26 | 7747.83 / 8062.47 | 0 / 2257 | latency limit exceeded |
| 1 | 100 | 35.35 | 7982.63 / 8224.54 | 0 / 11414 | latency limit exceeded |
| 2 | 5 | 5 | 55.82 / 102.22 | 0 / 0 | Met workload limits |
| 2 | 20 | 20 | 70.43 / 194.13 | 0 / 0 | Met workload limits |
| 2 | 50 | 35.58 | 8224.54 / 8644.13 | 0 / 2380 | latency limit exceeded |
| 2 | 100 | 36.95 | 7595.15 / 7671.11 | 0 / 11137 | latency limit exceeded |

p95 ≤ 2000 ms · p99 ≤ 4000 ms · errors ≤ 1.0%

### Ghost publishing
Measured

Readers, authenticated draft creation, publishing and image uploads.

Ghost publishing measurements| Repeat | Offered / s | journeys/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 5 | 5 | 777.03 / 833.16 | 0 / 0 | Met workload limits |
| 1 | 20 | 17.85 | 7013.92 / 7013.92 | 344 / 0 | latency limit exceeded |
| 1 | 50 | 0.97 | 7013.92 / 7013.92 | 6447 / 2372 | latency limit exceeded |
| 1 | 100 | 0.89 | 7013.92 / 7013.92 | 6570 / 11263 | latency limit exceeded |
| 2 | 5 | 5 | 777.03 / 833.16 | 0 / 0 | Met workload limits |
| 2 | 20 | 17.81 | 7013.92 / 7013.92 | 342 / 0 | latency limit exceeded |
| 2 | 50 | 0.86 | 7013.92 / 7013.92 | 6465 / 2375 | latency limit exceeded |
| 2 | 100 | 0.82 | 7013.92 / 7013.92 | 6574 / 11273 | latency limit exceeded |

p95 ≤ 1000 ms · p99 ≤ 2000 ms · errors ≤ 1.0%

### Formbricks / Next.js
Failed

Public survey rendering, persisted responses and authenticated analysis.

RuntimeError: RuntimeError: TimeoutError:

p95 ≤ 1000 ms · p99 ≤ 2000 ms · errors ≤ 1.0%

### Elasticsearch search and ingestion
Measured

Full-text search, filtering and aggregations while new documents are indexed.

Elasticsearch search and ingestion measurements| Repeat | Offered / s | operations/s | p95 / p99 ms | Errors / dropped | Result |
| --- | --- | --- | --- | --- | --- |
| 1 | 10 | 10 | 14.13 / 18.59 | 0 / 0 | Met workload limits |
| 1 | 50 | 50 | 11.52 / 15.06 | 0 / 0 | Met workload limits |
| 1 | 100 | 100 | 10.33 / 15.22 | 0 / 0 | Met workload limits |
| 1 | 250 | 250 | 22.91 / 43.75 | 0 / 0 | Met workload limits |
| 2 | 10 | 10 | 14.28 / 18.59 | 0 / 0 | Met workload limits |
| 2 | 50 | 50 | 11.03 / 14.43 | 0 / 0 | Met workload limits |
| 2 | 100 | 99.91 | 12.42 / 210.3 | 0 / 0 | Met workload limits |
| 2 | 250 | 250 | 20.22 / 45.1 | 0 / 0 | Met workload limits |

p95 ≤ 250 ms · p99 ≤ 500 ms · errors ≤ 1.0%

### GitHub self-hosted runner
Insufficient RAM

A pinned build and test workflow with separate cold and warm dependency caches.

Requires 8192 MiB RAM; plan has 4096 MiB, 3819 MiB detected.

p95 ≤ 3600000 ms · p99 ≤ 3600000 ms · errors ≤ 1.0%

### Odoo Community sales
Failed

Customer lookup, sales order confirmation, stock operations and reporting.

RuntimeError: fixture command in rc-odoo failed: -packages/odoo/cli/shell.py", line 148, in shell self.console(local\_vars) File "/usr/lib/python3/dist-packages/odoo/cli/shell.py", line 82, in console exec(sys.stdin.read(), local\_vars) File "\<string\>", line 1, in \<module\> PermissionError: [Errno 13] Permission denied: '/tmp/rc-seed.py'

p95 ≤ 2000 ms · p99 ≤ 4000 ms · errors ≤ 1.0%

## Advertised vs. measured

| Spec | Advertised | Measured |
| --- | --- | --- |
| vCPU | 2 | 2 |
| CPU | Shared vCPU | 0.1% of busy CPU time stolen |
| RAM | 4 GB | 3.7 GiB |
| Storage | 50 GB NVMe | 48.4 GiB |
| Architecture | x86\_64 | x86\_64 |
| Virtualization | KVM | KVM |

Guests usually report slightly less RAM and disk than advertised because of kernel reservations and filesystem overhead.

## Detected hardware

**CPU model:** Intel Core Processor (Haswell, no TSX)

**CPU cores:** 2

**CPU frequency:** 2400 MHz

**AES-NI:** Yes

**VM-x/AMD-V:** Yes

**RAM reported:** 3.7 GiB

**Swap reported:** 0 MiB

**Disk reported:** 48.4 GiB

**Virtualization reported:** KVM

**CPU steal:** 0.1% of busy CPU time stolen

**Distro:** Ubuntu 24.04.4 LTS

**Kernel:** 6.8.0-136-generic

**Architecture:** x86\_64

**IPv4 reachable:** Yes

**IPv6 reachable:** Yes

## Advertised at test time

**Plan:** D2-4

**Product line:** Discovery D2

**Location:** London

**vCPU:** 2 shared vCPU

**Architecture:** x86\_64

**RAM:** 4 GB

**Storage:** 50 GB NVMe

**Virtualization:** KVM

**Network:** 250 Mbps

**Transfer:** Unmetered

**Port 25:** Unknown

**Monthly price at test time:** $13.50

**Hourly price at test time:** $0.024

**YABS version:** v2026-09-20

**Ran at:** Oct 24, 2026, 21:19:51 UTC

**Parser version:** 5

## Run timeline

**Queued:** Oct 22, 2026, 17:09:00 UTC

**Server created:** Oct 24, 2026, 21:18:18 UTC

**First update from the server:** Oct 24, 2026, 21:18:18 UTC

**Completed:** Oct 25, 2026, 02:08:00 UTC

**Server deleted:** Oct 25, 2026, 02:08:00 UTC

**Cost of this run:** $0.12

Tests 46 of 50 done Live output 1285 lines

Setup 2 cores, 3.7 GiB RAM 4 of 4Done

Disk (fio) 82.0 MB/s at 4k, 2.40 GB/s at 1m 5 of 5Done

Network, IPv4 (iperf3) Median 237 Mbit/s send, 239 Mbit/s receive, 2 retried 3 of 3Done

Geekbench 7, single-core Score 748 17 of 17Done

Geekbench 7, multi-core Score 1,389 9 of 9Done

Web apps 4 failed, 1 skipped 7 of 11Some failed

TestResultTime

PostgreSQL transactions 8 measured trials completed 8 trials Measurements, 8 measured trials completed 30m 08s

PostgreSQL large dataset RuntimeError: RuntimeError: TimeoutError: Stopped RuntimeError: RuntimeError: TimeoutError: 2m 11s

Redis cache 8 measured trials completed 8 trials Measurements, 8 measured trials completed 28m 33s

Redis persistent queue 8 measured trials completed 8 trials Measurements, 8 measured trials completed 28m 24s

Discourse community RuntimeError: RuntimeError: TimeoutError: Stopped RuntimeError: RuntimeError: TimeoutError: 18m 20s

n8n workflows 8 measured trials completed 8 trials Measurements, 8 measured trials completed 32m 38s

n8n queue workers 8 measured trials completed 8 trials Measurements, 8 measured trials completed 33m 14s

Ghost publishing 8 measured trials completed 8 trials Measurements, 8 measured trials completed 34m 24s

Formbricks / Next.js RuntimeError: RuntimeError: TimeoutError: Stopped RuntimeError: RuntimeError: TimeoutError: 19m 37s

Elasticsearch search and ingestion 8 measured trials completed 8 trials Measurements, 8 measured trials completed 39m 12s

GitHub self-hosted runner Requires 8192 MiB RAM; plan has 4096 MiB, 3819 MiB detected. Not run Requires 8192 MiB RAM; plan has 4096 MiB, 3819 MiB detected.

Odoo Community sales Application workloads Stopped RuntimeError: fixture command in rc-odoo failed: -packages/odoo/cli/shell.py", line 148, in shell self.console(local\_vars) File "/usr/lib/python3/dist-packages/odoo/cli/shell.py", line 82, in console exec(sys.stdin.read(), local\_vars) File "\<string\>", line 1, in \<module\> PermissionError: [Errno 13] Permission denied: '/tmp/rc-seed.py' 2m 39s

Finish Results saved 1 of 1Done

Watch party 0 watching

This party closed at 03:08 UTC. It's read only now.

## Watch party

Loading the party
