# DigitalOcean Basic 2 vCPU / 2 GB

[New York 1](https://rackcensus.com/locations/new-york-vps-benchmarks "Every provider in New York")

Benchmark complete

Finished Oct 20, 2026

Geekbench 7 single-core

595

Faster than 9% of 2 vCPU plans

Geekbench 7 multi-core

Skipped

Disk 4K IOPS

43,810

fio random read and write, 50/50

Monthly price at test time

$18.00

Same price today

## Server

[DigitalOcean](https://rackcensus.com/vps-providers/digitalocean-benchmarks)[Basic 2 vCPU / 2 GB](https://rackcensus.com/plans/0ab2gk-digitalocean-basic-2-vcpu-2-gb-benchmarks?location=nyc1)

-

Provider

DigitalOcean

-

Plan

Basic 2 vCPU / 2 GB

-

Location

New York 1

-

vCPU

2

-

RAM

2 GB

-

Storage

60 GB SSD

-

Network

2 Gbps

-

OS image

ubuntu-24-04-x64

-

Trigger

Scheduled

-

Queued at

Oct 19, 2026, 08:43:00 UTC

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

Referral link. If you sign up through it, I may get paid. [How this works](https://rackcensus.com/transparency#referrals-heading)

## CPU

| Version | Single-core | Multi-core | Result link |
| --- | --- | --- | --- |
| Geekbench 7 | 595 | Skipped | [Geekbench Browser](https://browser.geekbench.com/v7/cpu/674930) |

Multi-core was skipped because Geekbench 7 needs about 3.1 GB of free memory to run 2 threads, and this server didn't have that much. Single-core needs much less, so it still ran.

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 | 75523rd of 25 | Single-core only |
| Navigation | 77025th of 25 | Single-core only |
| HTML5 Browser | 50525th of 25 | Single-core only |
| PDF Viewer | 71223rd of 25 | Single-core only |
| Photo Library | 54524th of 25 | Single-core only |
| Clang | 59224th of 25 | Single-core only |
| Text Processing | 37525th of 25 | Single-core only |
| Asset Compression | 54524th of 25 | Single-core only |
| HDR | 65724th of 25 | Single-core only |
| Photo Editor | 77123rd of 25 | Single-core only |
| Ray Tracer | 55424th of 25 | Single-core only |
| Structure from Motion | 71824th of 25 | Single-core only |
| Game Physics | 46025th of 25 | Single-core only |
| Video Encoder | 58424th of 25 | Single-core only |
| Audio Encoder | 60924th of 25 | Single-core only |
| Video Player | 53924th of 25 | Single-core only |

Rank among the 25 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 | 85.5 MB/s (21,876 IOPS) | 85.7 MB/s (21,934 IOPS) | 171.1 MB/s (43,810 IOPS) |
| 64K | 367.2 MB/s (5,874 IOPS) | 369.1 MB/s (5,905 IOPS) | 736.3 MB/s (11,779 IOPS) |
| 512K | 395.4 MB/s (790 IOPS) | 416.5 MB/s (832 IOPS) | 811.9 MB/s (1,622 IOPS) |
| 1M | 388.6 MB/s (388 IOPS) | 414.5 MB/s (414 IOPS) | 803.1 MB/s (802 IOPS) |

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

## Network

### IPv4 transfer speed

Loading...

| Target | Protocol | Send | Receive |
| --- | --- | --- | --- |
| Leaseweb, NYC, NY, US (10G) | IPv4 | 2.01 Gbps | 1.88 Gbps |
| Eranium, Amsterdam, NL (100G) | IPv4 | 787 Mbps | 1.79 Gbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 795 Mbps | 902 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 | 99.63 | 23.63 / 1689.7 | 0 / 66 | load generator fell behind |
| 1 | 500 | 491.55 | 13.98 / 71.14 | 0 / 1520 | load generator fell behind |
| 1 | 1000 | 973.01 | 24.63 / 78.69 | 0 / 4819 | load generator fell behind |
| 1 | 3000 | 2873.99 | 114.16 / 194.13 | 0 / 22660 | latency limit exceeded |
| 2 | 100 | 99.87 | 25.94 / 1357.3 | 0 / 23 | load generator fell behind |
| 2 | 500 | 484.15 | 37.54 / 696.37 | 0 / 2853 | load generator fell behind |
| 2 | 1000 | 973.01 | 21.08 / 87.03 | 0 / 4856 | load generator fell behind |
| 2 | 3000 | 2663.72 | 173.9 / 349.99 | 0 / 60492 | latency limit exceeded |

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 | 3.32 / 9.06 | 0 / 0 | Met workload limits |
| 1 | 5000 | 4995.08 | 7.33 / 16.39 | 0 / 846 | Met workload limits |
| 1 | 10000 | 9951.93 | 11.65 / 23.88 | 0 / 8641 | latency limit exceeded |
| 1 | 25000 | 17781.84 | 23.15 / 36.41 | 0 / 1299076 | load generator saturated |
| 2 | 1000 | 1000 | 3.45 / 8.67 | 0 / 0 | Met workload limits |
| 2 | 5000 | 4998.43 | 10.45 / 22.2 | 0 / 273 | latency limit exceeded |
| 2 | 10000 | 9770.43 | 20.43 / 38.32 | 0 / 41226 | latency limit exceeded |
| 2 | 25000 | 16663.37 | 28.46 / 44.19 | 0 / 1500383 | load generator saturated |

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 | 10 / 20.01 | 0 / 0 | Met workload limits |
| 1 | 500 | 498.86 | 13.98 / 48.43 | 0 / 204 | Met workload limits |
| 1 | 1000 | 995.02 | 13.98 / 35.31 | 0 / 895 | Met workload limits |
| 1 | 3000 | 2967.37 | 49.42 / 87.91 | 0 / 5860 | latency limit exceeded |
| 2 | 100 | 100 | 10.56 / 20.43 | 0 / 0 | Met workload limits |
| 2 | 500 | 500 | 13.68 / 35.67 | 0 / 0 | Met workload limits |
| 2 | 1000 | 999.46 | 21.75 / 76.35 | 0 / 95 | latency limit exceeded |
| 2 | 3000 | 2957.68 | 49.42 / 99.18 | 0 / 7586 | latency limit exceeded |

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 | 118.83 / 301.32 | 0 / 0 | Met workload limits |
| 1 | 20 | 20 | 349.99 / 682.63 | 0 / 0 | Met workload limits |
| 1 | 50 | 0.47 | 7013.92 / 7013.92 | 6727 / 2186 | latency limit exceeded |
| 1 | 100 | 0.08 | 7013.92 / 7013.92 | 7163 / 10823 | latency limit exceeded |
| 2 | 5 | 5 | 120.03 / 230.1 | 0 / 0 | Met workload limits |
| 2 | 20 | 20 | 3784.28 / 5523.71 | 0 / 0 | latency limit exceeded |
| 2 | 50 | 1.52 | 7013.92 / 7013.92 | 6998 / 1717 | latency limit exceeded |
| 2 | 100 | 0.67 | 7013.92 / 7013.92 | 7871 / 10003 | latency limit exceeded |

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

### n8n queue workers
Failed

Completed queued workflows including waiting time and worker execution.

URLError: \<urlopen error [Errno 111] Connection refused\>

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 / 1192.49 | 0 / 0 | Met workload limits |
| 1 | 20 | 17.49 | 7013.92 / 7013.92 | 357 / 0 | latency limit exceeded |
| 1 | 50 | 0.65 | 7013.92 / 7013.92 | 6501 / 2377 | latency limit exceeded |
| 1 | 100 | 0.8 | 7013.92 / 7013.92 | 6565 / 11285 | latency limit exceeded |
| 2 | 5 | 5 | 761.7 / 1101.17 | 0 / 0 | Met workload limits |
| 2 | 20 | 1.5 | 7013.92 / 7013.92 | 3320 / 0 | latency limit exceeded |
| 2 | 50 | 0.54 | 7013.92 / 7013.92 | 6522 / 2377 | latency limit exceeded |
| 2 | 100 | 0.64 | 7013.92 / 7013.92 | 6600 / 11281 | latency limit exceeded |

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

### Formbricks / Next.js
Insufficient RAM

Public survey rendering, persisted responses and authenticated analysis.

Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected.

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

### Elasticsearch search and ingestion
Insufficient RAM

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

Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected.

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 2048 MiB, 1967 MiB detected.

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

### Odoo Community sales
Insufficient RAM

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

Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected.

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

## Advertised vs. measured

| Spec | Advertised | Measured |
| --- | --- | --- |
| vCPU | 2 | 2 |
| CPU | Shared vCPU | 3.5% of busy CPU time stolen |
| RAM | 2 GB | 1.9 GiB |
| Storage | 60 GB SSD | 58 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:** DO-Regular

**CPU cores:** 2

**CPU frequency:** 2295 MHz

**AES-NI:** Yes

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

**RAM reported:** 1.9 GiB

**Swap reported:** 0 MiB

**Disk reported:** 58 GiB

**Virtualization reported:** KVM

**CPU steal:** 3.5% 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:** Basic 2 vCPU / 2 GB

**Product line:** Basic

**Location:** New York 1

**vCPU:** 2 shared vCPU

**Architecture:** x86\_64

**RAM:** 2 GB

**Storage:** 60 GB SSD

**Virtualization:** KVM

**Network:** 2 Gbps

**Transfer:** 3 TB

**Port 25:** Closed

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

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

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

**Ran at:** Oct 20, 2026, 03:31:04 UTC

**Parser version:** 5

## Run timeline

**Queued:** Oct 19, 2026, 08:43:00 UTC

**First update from the server:** Oct 20, 2026, 03:29:31 UTC

**Completed:** Oct 20, 2026, 06:48:00 UTC

**Server deleted:** Oct 20, 2026, 06:48:00 UTC

**Cost of this run:** $0.089

Tests 36 of 39 done Live output 944 lines

Setup 2 cores, 1.9 GiB RAM 4 of 4Done

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

Network, IPv4 (iperf3) Median 795 Mbit/s send, 1.79 Gbit/s receive, 1 retried 3 of 3Done

Geekbench 7, single-core Score 595 18 of 18Done

Web apps 3 failed, 4 skipped 5 of 8Some failed

TestResultTime

PostgreSQL transactions 8 measured trials completed 8 trials Measurements, 8 measured trials completed 31m 16s

PostgreSQL large dataset RuntimeError: RuntimeError: TimeoutError: Stopped RuntimeError: RuntimeError: TimeoutError: 3m 45s

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

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

Discourse community RuntimeError: RuntimeError: TimeoutError: Stopped RuntimeError: RuntimeError: TimeoutError: 16m 50s

n8n workflows 8 measured trials completed 8 trials Measurements, 8 measured trials completed 34m 21s

n8n queue workers URLError: \<urlopen error [Errno 111] Connection refused\> Stopped URLError: \<urlopen error [Errno 111] Connection refused\> 2m 18s

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

Formbricks / Next.js Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected. Not run Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected.

Elasticsearch search and ingestion Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected. Not run Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected.

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

Odoo Community sales Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected. Not run Requires 4096 MiB RAM; plan has 2048 MiB, 1967 MiB detected.

Finish Results saved 1 of 1Done

Watch party 0 watching

This party closed at 07:48 UTC. It's read only now.

## Watch party

Loading the party
