# DigitalOcean CPU-Optimized 2 vCPU / 4 GB

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

Benchmark complete

Finished Oct 8, 2026

Geekbench 7 single-core

1,025

Faster than 31% of 2 vCPU plans

Geekbench 7 multi-core

1,212

Faster than 0% of 2 vCPU plans

Disk 4K IOPS

63,808

fio random read and write, 50/50

Monthly price at test time

$42.00

29 multi-core points per dollar

Same price today

## Server

[DigitalOcean](https://www.rackcensus.com/vps-providers/digitalocean-benchmarks)[CPU-Optimized 2 vCPU / 4 GB](https://www.rackcensus.com/plans/xhyrw9-digitalocean-cpu-optimized-2-vcpu-4-gb-benchmarks?location=lon1)

-

Provider

DigitalOcean

-

Plan

CPU-Optimized 2 vCPU / 4 GB

-

Location

London 1

-

vCPU

2

-

RAM

4 GB

-

Storage

25 GB SSD

-

Network

2 Gbps

-

OS image

ubuntu-24-04-x64

-

Trigger

Scheduled

-

Queued at

Oct 8, 2026, 04:21:00 UTC

[Visit DigitalOcean](https://www.rackcensus.com/go/digitalocean)

Referral link. If you sign up through it, I may get paid.

[Skip the referral](https://www.rackcensus.com/go/digitalocean/direct)[How this works](https://www.rackcensus.com/transparency#referrals-heading)

## Latest runs of this plan

- [San Francisco 2 Oct 7, 2026](https://www.rackcensus.com/benchmarks/3msls5-digitalocean-cpu-optimized-2-vcpu-4-gb-sfo2-benchmark)1,057
- [New York 1 Oct 5, 2026](https://www.rackcensus.com/benchmarks/cgj40n-digitalocean-cpu-optimized-2-vcpu-4-gb-nyc1-benchmark)934
- [Singapore 1 Oct 3, 2026](https://www.rackcensus.com/benchmarks/t36q0p-digitalocean-c-2-sgp1-benchmark)972
- [New York 1 Oct 3, 2026](https://www.rackcensus.com/benchmarks/wvj2os-digitalocean-c-2-nyc1-benchmark)1,258

[Full history of this plan](https://www.rackcensus.com/plans/xhyrw9-digitalocean-cpu-optimized-2-vcpu-4-gb-benchmarks/history)

## CPU

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

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 | 1,07140th of 53 | 1,10249th of 51 |
| Navigation | 1,23737th of 53 | Single-core only |
| HTML5 Browser | 1,02938th of 53 | Single-core only |
| PDF Viewer | 1,12038th of 53 | Single-core only |
| Photo Library | 85542nd of 53 | 1,06848th of 51 |
| Clang | 1,12236th of 53 | 1,44743rd of 51 |
| Text Processing | 1,01737th of 53 | 1,09448th of 51 |
| Asset Compression | 86648th of 53 | 1,19147th of 51 |
| HDR | 95839th of 53 | 1,11247th of 51 |
| Photo Editor | 1,11137th of 53 | 1,38645th of 51 |
| Ray Tracer | 97242nd of 53 | 1,36448th of 51 |
| Structure from Motion | 1,10742nd of 53 | Single-core only |
| Game Physics | 99840th of 53 | Single-core only |
| Video Encoder | 96340th of 53 | Single-core only |
| Audio Encoder | 1,06841st of 53 | Single-core only |
| Video Player | 97942nd of 53 | Single-core only |

Rank among the 53 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.

## Memory, TLS and scheduler

### Memory bandwidth (STREAM)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| Copy higher is better | 11.6 GB/s | 3 | 1.75% |
| Scale higher is better | 12.5 GB/s | 3 | 0.208% |
| Add higher is better | 13.1 GB/s | 3 | 0.213% |
| Triad higher is better | 13.1 GB/s | 3 | 0.272% |

Average of 3 runs. Spread is the standard deviation as a share of the average.

### TLS and crypto (OpenSSL)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| RSA 4096 signs higher is better | 255/s | 3 | 0.564% |
| RSA 4096 verifies higher is better | 16,786/s | 3 | 0.0864% |
| SHA-256 higher is better | 284 MB/s | 3 | 0.237% |
| AES-256-GCM higher is better | 3.73 GB/s | 3 | 0.426% |
| ChaCha20-Poly1305 higher is better | 2.53 GB/s | 3 | 0.209% |

Average of 3 runs. Spread is the standard deviation as a share of the average.

### Scheduler latency (schbench)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| Request latency, median lower is better | 7.14 ms | 3 | 0% |
| Requests per second, 90th percentile higher is better | 277/s | 3 | 0.208% |
| Request latency, 99.9th percentile lower is better | 13.3 ms | 3 | 2.08% |
| Requests per second, average higher is better | 277/s | 3 | 0.0721% |

Average of 3 runs. Spread is the standard deviation as a share of the average.

## Disk

| Block size | Read | Write | Total |
| --- | --- | --- | --- |
| 4K | 124.5 MB/s (31,862 IOPS) | 124.8 MB/s (31,946 IOPS) | 249.3 MB/s (63,808 IOPS) |
| 64K | 155.2 MB/s (2,483 IOPS) | 156 MB/s (2,496 IOPS) | 311.2 MB/s (4,979 IOPS) |
| 512K | 211.4 MB/s (422 IOPS) | 222.6 MB/s (445 IOPS) | 434 MB/s (867 IOPS) |
| 1M | 280.3 MB/s (280 IOPS) | 299 MB/s (298 IOPS) | 579.3 MB/s (578 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 | 2.01 Gbps | 1.9 Gbps |
| Eranium, Amsterdam, NL (100G) | IPv4 | 2 Gbps | 1.89 Gbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 1.14 Gbps | 1.33 Gbps |
| Clouvider, Los Angeles, CA, US (10G) | IPv4 | 1.06 Gbps | 1.53 Gbps |
| Leaseweb, NYC, NY, US (10G) | IPv4 | 1.67 Gbps | 1.59 Gbps |

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

## Datastores

### PostgreSQL

#### fsync speed (pg\_test\_fsync)

| Method | Operations per second | Time per operation |
| --- | --- | --- |
| One 8 kB write |
| --- |
| open\_datasync | 1,858 | 0.538 ms |
| fdatasync | 1,726 | 0.58 ms |
| fsync | 725 | 1.38 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 795 | 1.26 ms |
| Two 8 kB writes |
| --- |
| open\_datasync | 955 | 1.05 ms |
| fdatasync | 1,771 | 0.565 ms |
| fsync | 815 | 1.23 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 430 | 2.33 ms |
| open\_sync at different write sizes |
| --- |
| 1 \* 16kB open\_sync write | 830 | 1.21 ms |
| 2 \* 8kB open\_sync writes | 428 | 2.33 ms |
| 4 \* 4kB open\_sync writes | 218 | 4.6 ms |
| 8 \* 2kB open\_sync writes | 108 | 9.27 ms |
| 16 \* 1kB open\_sync writes | 52.6 | 19 ms |
| fsync on a non-write descriptor |
| --- |
| write, fsync, close | 791 | 1.26 ms |
| write, close, fsync | 819 | 1.22 ms |
| Non-synced 8 kB writes |
| --- |
| write | 610,654 | 0.002 ms |

pg\_test\_fsync against the Docker volume Postgres keeps its data on. fdatasync is Linux's default wal\_sync\_method.

#### pgbench at scale 10

| Workload | Clients | Transactions/s | Median | p95 | p99 | p99.9 | Failed |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Read/write (TPC-B like) | 1 | 963 | 1.04 ms | 1.19 ms | 1.86 ms | 5.26 ms | 0 |
| Read/write (TPC-B like) | 8 | 2,557 | 2.79 ms | 5.47 ms | 8.78 ms | 14.9 ms | 0 |
| Read/write (TPC-B like) | 32 | 2,595 | 9.5 ms | 29.7 ms | 50.3 ms | 79.9 ms | 0 |
| Read only | 1 | 20,098 | 0.056 ms | 0.069 ms | 0.085 ms | 0.146 ms | 0 |
| Read only | 8 | 27,744 | 0.265 ms | 0.416 ms | 0.503 ms | 1.61 ms | 0 |
| Read only | 32 | 28,199 | 0.997 ms | 1.47 ms | 2.06 ms | 3.7 ms | 0 |

Scale 10 (1,000,000 accounts), loaded in 2.08 s. 60 s per run, prepared statements. Latency comes from sampled transaction logs, and p99.9 is left out when fewer than 1,000 were sampled.

#### pgbench at scale 100

| Workload | Clients | Transactions/s | Median | p95 | p99 | p99.9 | Failed |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Read/write (TPC-B like) | 1 | 753 | 1.18 ms | 1.74 ms | 5.79 ms | 12.6 ms | 0 |
| Read/write (TPC-B like) | 8 | 1,800 | 3.63 ms | 8.89 ms | 21.1 ms | 47.8 ms | 0 |
| Read/write (TPC-B like) | 32 | 2,564 | 10.6 ms | 22.7 ms | 40.6 ms | 98 ms | 0 |
| Read only | 1 | 13,407 | 0.059 ms | 0.107 ms | 0.408 ms | 2.26 ms | 0 |
| Read only | 8 | 21,633 | 0.344 ms | 0.534 ms | 0.703 ms | 2.31 ms | 0 |
| Read only | 32 | 22,279 | 1.31 ms | 2 ms | 2.84 ms | 4.88 ms | 0 |

Scale 100 (10,000,000 accounts), loaded in 24.4 s. 60 s per run, prepared statements. Latency comes from sampled transaction logs, and p99.9 is left out when fewer than 1,000 were sampled.

### MySQL

#### sysbench OLTP

| Workload | Threads | Transactions/s | Queries/s | Median | p95 | p99 | Errors |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Read/write | 1 | 161 | 3,216 | 5.28 ms | 9.06 ms | 33.1 ms | 0 |
| Read/write | 8 | 426 | 8,526 | 16.1 ms | 41.1 ms | 62.2 ms | 0 |
| Read/write | 32 | 510 | 10,197 | 61.1 ms | 103 ms | 135 ms | 0 |
| Read only | 1 | 559 | 8,940 | 1.82 ms | 2.35 ms | 2.81 ms | 0 |
| Read only | 8 | 964 | 15,431 | 8.13 ms | 10.7 ms | 12.5 ms | 0 |
| Read only | 32 | 893 | 14,283 | 36.2 ms | 45.8 ms | 49.2 ms | 0 |

10 tables of 100,000 rows, loaded in 17.4 s. 60 s per run, one connection per thread.

### Redis

#### memtier

| Mix | Operations/s | Hits/s | Median | p99 | p99.9 |
| --- | --- | --- | --- | --- | --- |
| 1:10 set:get | 42,210 | 38,373 | 1.31 ms | 3.26 ms | 5.79 ms |
| 1:1 set:get | 41,243 | 20,621 | 1.35 ms | 3.25 ms | 5.66 ms |

1,000,000 keys of 32 bytes. 64 connections over 2 threads, 60 s per ratio.

## Web frameworks

| Framework | Fortunes req/s | Single query req/s | JSON req/s | Fortunes p99 at 256 connections |
| --- | --- | --- | --- | --- |
| Next.js | The results arrived but couldn't be read, so no numbers are shown. |
| Express | The results arrived but couldn't be read, so no numbers are shown. |
| Fastify | The results arrived but couldn't be read, so no numbers are shown. |
| NestJS | The results arrived but couldn't be read, so no numbers are shown. |
| Nuxt | The results arrived but couldn't be read, so no numbers are shown. |
| FastAPI | The results arrived but couldn't be read, so no numbers are shown. |
| Django | The results arrived but couldn't be read, so no numbers are shown. |
| Rails | The results arrived but couldn't be read, so no numbers are shown. |
| Laravel | The results arrived but couldn't be read, so no numbers are shown. |
| Symfony | The results arrived but couldn't be read, so no numbers are shown. |

### WooCommerce

#### Page mix

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Home page | 1.21 | 1.31 s | 1.41 s | 1.45 s | 0% |
| Shop page | 1.21 | 1.76 s | 1.92 s | 1.94 s | 0% |
| Category page | 1.21 | 1.12 s | 1.76 s | 1.87 s | 0% |
| Product page | 1.21 | 1.23 s | 1.37 s | 1.42 s | 0% |
| Product search | 1.21 | 1.04 s | 1.18 s | 1.27 s | 0% |
| 32 virtual users |
| --- |
| Home page | 1.36 | 4.76 s | 5.35 s | 5.42 s | 0% |
| Shop page | 1.36 | 6.43 s | 7.13 s | 7.3 s | 0% |
| Category page | 1.31 | 5.65 s | 6.64 s | 6.79 s | 0% |
| Product page | 0.933 | 4.88 s | 5.18 s | 5.31 s | 0% |
| Product search | 0.904 | 4.46 s | 4.76 s | 4.83 s | 0% |

#### Cart and checkout

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Add to cart | 2.25 | 1.39 s | 1.49 s | 1.57 s | 0% |
| Cart | 2.25 | 1.12 s | 1.27 s | 1.3 s | 0% |
| Checkout | 2.25 | 879 ms | 994 ms | 1.06 s | 0% |
| 32 virtual users |
| --- |
| Add to cart | 2.32 | 4.72 s | 5.87 s | 6.33 s | 0% |
| Cart | 2.32 | 4.9 s | 5.32 s | 6.31 s | 0% |
| Checkout | 2.32 | 3.84 s | 4.38 s | 4.6 s | 0% |

k6 with a fixed number of virtual users, 65 to 71 s per level. The error rate counts responses that weren't a 200.

## Advertised vs. measured

| Spec | Advertised | Measured |
| --- | --- | --- |
| vCPU | 2 | 2 |
| CPU | Dedicated vCPU | 0% of busy CPU time stolen |
| RAM | 4 GB | 3.8 GiB |
| Storage | 25 GB SSD | 24.1 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(R) Xeon(R) Platinum 8168 CPU @ 2.70GHz

**CPU cores:** 2

**CPU frequency:** 2694 MHz

**AES-NI:** Yes

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

**RAM reported:** 3.8 GiB

**Swap reported:** 0 MiB

**Disk reported:** 24.1 GiB

**Virtualization reported:** KVM

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

**Distro:** Ubuntu 24.04.5 LTS

**Kernel:** 6.8.0-142-generic

**Architecture:** x86\_64

**IPv4 reachable:** Yes

**IPv6 reachable:** Yes

## Advertised at test time

**Plan:** CPU-Optimized 2 vCPU / 4 GB

**Product line:** CPU-Optimized

**Location:** London 1

**vCPU:** 2 dedicated vCPU

**Architecture:** x86\_64

**RAM:** 4 GB

**Storage:** 25 GB SSD

**Virtualization:** KVM

**Network:** 2 Gbps

**Transfer:** 4 TB

**Port 25:** Closed

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

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

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

**Ran at:** Oct 8, 2026, 04:22:37 UTC

**Parser version:** 5

## Run timeline

**Queued:** Oct 8, 2026, 04:21:00 UTC

**Server created:** Oct 8, 2026, 04:22:13 UTC

**First update from the server:** Oct 8, 2026, 04:22:13 UTC

**Completed:** Oct 8, 2026, 05:47:00 UTC

**Server deleted:** Oct 8, 2026, 05:47:00 UTC

**Cost of this run:** $0.090

Tests 61 of 61 done Live output 755 lines

Setup 2 cores, 3.8 GiB RAM 4 of 4Done

Disk (fio) 261 MB/s at 4k, 607 MB/s at 1m 5 of 5Done

Network, IPv4 (iperf3) Median 1.67 Gbit/s send, 1.59 Gbit/s receive 5 of 5Done

Geekbench 7, single-core Score 1,025 17 of 17Done

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

Phoronix (memory, TLS, scheduler) 3 of 3Done

Datastores 5 of 5Done

Web frameworks 12 of 12Done

Finish Results saved 1 of 1Done

Watch party 0 watching

This party closed at 05:40 UTC. It's read only now.

## Watch party

Loading the party
