Skip to main content

DigitalOcean CPU-Optimized 2 vCPU / 4 GB

New York 1

Benchmark complete
Finished Oct 12, 2026
Geekbench 7 single-core
994
Faster than 43% of 2 vCPU plans
Median here: 994 over 3 runs in 90 days
Geekbench 7 multi-core
1,190
Faster than 13% of 2 vCPU plans
Median here: 1,190 over 3 runs in 90 days
Disk 4K IOPS
43,799
fio random read and write, 50/50
Median here: 83,404 over 3 runs in 90 days
Monthly price at test time
$42.00
28 multi-core points per dollar
Same price today

Server

  • Provider
    DigitalOcean
  • Plan
    CPU-Optimized 2 vCPU / 4 GB
  • Location
    New York 1
  • vCPU
    2
  • RAM
    4 GB
  • Storage
    25 GB SSD
  • Network
    2 Gbps
  • OS image
    ubuntu-24-04-x64
  • Trigger
    Scheduled
  • Queued at
    Oct 12, 2026, 21:51:00 UTC
Visit DigitalOcean

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

CPU

Version Single-core Multi-core Result link
Geekbench 7 994 1,190 Geekbench Browser

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,066
89th of 129
1,105
94th of 103
Navigation
1,232
82nd of 129
Single-core only
HTML5 Browser
1,017
84th of 129
Single-core only
PDF Viewer
1,112
86th of 129
Single-core only
Photo Library
835
94th of 129
1,054
94th of 103
Clang
1,098
77th of 129
1,410
91st of 103
Text Processing
892
101st of 129
1,087
96th of 103
Asset Compression
844
107th of 129
1,163
96th of 103
HDR
943
82nd of 129
1,092
94th of 103
Photo Editor
1,076
83rd of 129
1,338
87th of 103
Ray Tracer
904
105th of 129
1,323
97th of 103
Structure from Motion
1,091
94th of 129
Single-core only
Game Physics
955
98th of 129
Single-core only
Video Encoder
941
93rd of 129
Single-core only
Audio Encoder
1,032
91st of 129
Single-core only
Video Player
959
92nd of 129
Single-core only

Rank among the 129 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.3 GB/s 3 0.255%
Scale higher is better 12.7 GB/s 3 0.507%
Add higher is better 13.1 GB/s 3 0.13%
Triad higher is better 13.2 GB/s 3 0.647%

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 254/s 3 0.65%
RSA 4096 verifies higher is better 16,716/s 3 0.077%
SHA-256 higher is better 284 MB/s 3 0.285%
AES-256-GCM higher is better 3.72 GB/s 3 0.092%
ChaCha20-Poly1305 higher is better 2.45 GB/s 3 0.405%

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.17 ms 3 0.129%
Requests per second, 90th percentile higher is better 276/s 3 0%
Request latency, 99.9th percentile lower is better 13.2 ms 3 0.14%
Requests per second, average higher is better 276/s 3 0.119%

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

Disk

Block size Read Write Total
4K 85.4 MB/s (21,871 IOPS) 85.7 MB/s (21,928 IOPS) 171.1 MB/s (43,799 IOPS)
64K 192.3 MB/s (3,077 IOPS) 193.3 MB/s (3,093 IOPS) 385.7 MB/s (6,170 IOPS)
512K 247.9 MB/s (495 IOPS) 261 MB/s (522 IOPS) 508.9 MB/s (1,017 IOPS)
1M 228.9 MB/s (228 IOPS) 244.1 MB/s (244 IOPS) 473 MB/s (472 IOPS)

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

Network

iperf3 didn't report network results for this run.

Datastores

PostgreSQL

fsync speed (pg_test_fsync)

Method Operations per second Time per operation
One 8 kB write
open_datasync 1,568 0.638 ms
fdatasync 1,755 0.57 ms
fsync 480 2.08 ms
fsync_writethrough Not supported here n/a
open_sync 695 1.44 ms
Two 8 kB writes
open_datasync 655 1.53 ms
fdatasync 1,042 0.959 ms
fsync 662 1.51 ms
fsync_writethrough Not supported here n/a
open_sync 319 3.14 ms
open_sync at different write sizes
1 * 16kB open_sync write 536 1.87 ms
2 * 8kB open_sync writes 299 3.35 ms
4 * 4kB open_sync writes 183 5.45 ms
8 * 2kB open_sync writes 80.7 12.4 ms
16 * 1kB open_sync writes 39.8 25.1 ms
fsync on a non-write descriptor
write, fsync, close 536 1.87 ms
write, close, fsync 635 1.58 ms
Non-synced 8 kB writes
write 605,673 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 831 1.06 ms 1.5 ms 3.14 ms 15.7 ms 0
Read/write (TPC-B like) 8 2,336 2.89 ms 6.18 ms 11.8 ms 53.2 ms 0
Read/write (TPC-B like) 32 2,305 10 ms 35.7 ms 65.9 ms 183 ms 0
Read only 1 21,025 0.042 ms 0.069 ms 0.083 ms 0.139 ms 0
Read only 8 27,281 0.27 ms 0.424 ms 0.512 ms 1.4 ms 0
Read only 32 28,010 1.01 ms 1.48 ms 2.07 ms 3.74 ms 0

Scale 10 (1,000,000 accounts), loaded in 2.16 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 695 1.18 ms 1.98 ms 6.55 ms 22.5 ms 0
Read/write (TPC-B like) 8 1,906 3.47 ms 8.12 ms 18.8 ms 45.1 ms 0
Read/write (TPC-B like) 32 2,422 11.3 ms 23.6 ms 43.6 ms 101 ms 0
Read only 1 11,807 0.07 ms 0.111 ms 0.445 ms 3.08 ms 0
Read only 8 21,133 0.352 ms 0.55 ms 0.711 ms 2.28 ms 0
Read only 32 21,125 1.37 ms 2.2 ms 3.07 ms 5.64 ms 0

Scale 100 (10,000,000 accounts), loaded in 27.5 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 154 3,082 5.18 ms 8.74 ms 35.6 ms 0
Read/write 8 415 8,296 15.8 ms 42.6 ms 90.8 ms 0
Read/write 32 486 9,721 61.1 ms 117 ms 187 ms 0
Read only 1 545 8,721 1.86 ms 2.35 ms 2.76 ms 0
Read only 8 984 15,751 7.99 ms 10.8 ms 12.1 ms 0
Read only 32 899 14,379 35.6 ms 44.2 ms 49.2 ms 0

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

Redis

memtier

Mix Operations/s Hits/s Median p99 p99.9
1:10 set:get 41,860 38,054 1.32 ms 3.28 ms 5.57 ms
1:1 set:get 40,821 20,410 1.38 ms 3.28 ms 5.76 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 nextjs 327 1,220 1,663 2.5 s
Express express-postgresjs 4,451 5,918 15,164 391 ms
Fastify fastify-postgres 4,301 6,231 15,644 106 ms
NestJS nestjs 2,502 2,824 8,734 177 ms
Nuxt nuxt 3,759 5,442 13,099 143 ms
FastAPI fastapi 2,006 2,636 9,624 517 ms
Django django-postgresql 740 931 2,098 518 ms
Rails rails 1,298 1,785 6,278 230 ms
Laravel laravel 396 415 788 682 ms
Symfony symfony 496 541 1,628 552 ms

Peak requests per second across the 64 and 256 connection levels, measured with wrk. Each test has to pass the TechEmpower response checks first, or it's marked invalid.

WooCommerce

Page mix

Step Requests/s Median p95 p99 Error rate
8 virtual users
Home page 1.15 1.34 s 1.58 s 1.6 s 0%
Shop page 1.15 1.86 s 2.07 s 2.13 s 0%
Category page 1.15 1.18 s 1.82 s 1.93 s 0%
Product page 1.15 1.24 s 1.45 s 1.49 s 0%
Product search 1.15 1.07 s 1.28 s 1.37 s 0%
32 virtual users
Home page 1.35 4.84 s 5.44 s 5.48 s 0%
Shop page 1.35 6.5 s 7.3 s 7.46 s 0%
Category page 1.3 5.66 s 6.62 s 6.69 s 0%
Product page 0.903 4.78 s 5.19 s 5.25 s 0%
Product search 0.903 4.58 s 4.92 s 5.13 s 0%

Cart and checkout

Step Requests/s Median p95 p99 Error rate
8 virtual users
Add to cart 2.17 1.43 s 1.56 s 1.62 s 0%
Cart 2.17 1.15 s 1.26 s 1.31 s 0%
Checkout 2.17 891 ms 1.02 s 1.09 s 0%
32 virtual users
Add to cart 2.29 4.64 s 5.62 s 5.76 s 0%
Cart 2.29 4.98 s 5.39 s 5.47 s 0%
Checkout 2.29 3.98 s 4.5 s 4.62 s 0%

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

Discourse

Signed in

Step Requests/s Median p95 p99 Error rate
1 virtual user
Topic page 1.45 315 ms 354 ms 419 ms 0%
Topic JSON 0.724 156 ms 180 ms 190 ms 0%
Home page 0.724 275 ms 311 ms 521 ms 0%
Categories page 0.362 327 ms 354 ms 383 ms 0%
User activity page 0.362 195 ms 212 ms 222 ms 0%
4 virtual users
Topic page 2.09 830 ms 1.1 s 1.56 s 0%
Topic JSON 1.05 431 ms 569 ms 686 ms 0%
Home page 1.03 759 ms 1.67 s 1.78 s 0%
Categories page 0.54 870 ms 1.24 s 1.77 s 0%
User activity page 0.507 517 ms 695 ms 839 ms 0%
16 virtual users
Topic page 2.04 1.84 s 2.36 s 2.63 s 0%
Topic JSON 1.09 1.42 s 1.87 s 2.07 s 0%
Home page 1.09 1.79 s 2.26 s 2.42 s 0%
Categories page 0.495 1.83 s 2.47 s 2.58 s 0%
User activity page 0.527 1.55 s 1.91 s 2.08 s 0%

Anonymous

Step Requests/s Median p95 p99 Error rate
16 virtual users
Topic page 43.2 107 ms 231 ms 305 ms 0.0383%
Topic JSON 21.7 105 ms 227 ms 304 ms 0.0765%
Home page 21.7 105 ms 225 ms 296 ms 0%
Categories page 10.8 115 ms 236 ms 335 ms 0%
User activity page 10.8 327 ms 502 ms 698 ms 0%

k6 with a fixed number of virtual users, 60 to 63 s per level, after a 22 s warmup. The error rate counts responses that weren't a 200. Discourse ran with 4 app workers and 1024 MB of Postgres shared buffers, what its installer picks for a 4 GB box. It added a 2 GB swapfile first, the way its installer does, and didn't need it. The container peaked at 2,147 MB.

Ghost

Readers

Step Requests/s Median p95 p99 Error rate
1 virtual user
Home page 5.84 48.4 ms 57.8 ms 72.4 ms 0%
Post page 14.6 25.6 ms 31.6 ms 41.8 ms 0%
Tag page 2.93 33.4 ms 38.1 ms 48.7 ms 0%
Author page 2.91 33.3 ms 41.3 ms 50.2 ms 0%
RSS feed 2.91 39.7 ms 45.9 ms 49 ms 0%
4 virtual users
Home page 6.79 153 ms 189 ms 233 ms 0%
Post page 17 108 ms 146 ms 187 ms 0%
Tag page 3.38 98.7 ms 144 ms 164 ms 0%
Author page 3.4 103 ms 137 ms 170 ms 0%
RSS feed 3.4 107 ms 145 ms 168 ms 0%
16 virtual users
Home page 6.73 591 ms 706 ms 801 ms 0%
Post page 16.9 503 ms 615 ms 670 ms 0%
Tag page 3.35 327 ms 409 ms 447 ms 0%
Author page 3.37 309 ms 411 ms 451 ms 0%
RSS feed 3.37 346 ms 439 ms 465 ms 0%

Staff in Ghost Admin

Step Requests/s Median p95 p99 Error rate
1 virtual user
Post list 3 49.9 ms 61 ms 80.5 ms 0%
Post editor 9.04 18.9 ms 24.5 ms 36.4 ms 0%
Saving a draft 9.04 47.8 ms 57.9 ms 77.2 ms 0%
Member list 3.02 59.7 ms 77.4 ms 107 ms 0%
4 virtual users
Post list 3.57 73 ms 82.5 ms 137 ms 0%
Post editor 10.8 33.2 ms 41.9 ms 62.1 ms 0%
Saving a draft 10.8 290 ms 347 ms 418 ms 0%
Member list 3.62 83.8 ms 96.4 ms 119 ms 0%

k6 with a fixed number of virtual users, 60 s per level, after a 20 s warmup. The error rate counts responses that weren't a 200. Ghost ran the way its ghost-docker setup runs it: one Node process, and MySQL with its stock 128 MB buffer pool. Memory peaked with Ghost at 368 MB and MySQL at 619 MB.

Wagtail

Visitors

Step Requests/s Median p95 p99 Error rate
1 virtual user
Home page 1.13 120 ms 130 ms 131 ms 0%
Blog index 1.13 412 ms 423 ms 427 ms 0%
Blog post 3.36 38.1 ms 56.8 ms 60.4 ms 0%
Bread page 3.37 42.3 ms 46.4 ms 47.8 ms 0%
Location page 1.13 40.6 ms 44.9 ms 46.1 ms 0%
Site search 1.11 60.2 ms 109 ms 120 ms 0%
4 virtual users
Home page 1.65 335 ms 476 ms 523 ms 0%
Blog index 1.68 1.13 s 1.5 s 1.54 s 0%
Blog post 4.97 104 ms 169 ms 204 ms 0%
Bread page 5 110 ms 156 ms 169 ms 0%
Location page 1.7 105 ms 143 ms 167 ms 0%
Site search 1.65 146 ms 306 ms 361 ms 0%
16 virtual users
Home page 1.54 1.21 s 1.57 s 1.82 s 0%
Blog index 1.61 3.01 s 3.58 s 3.88 s 0%
Blog post 4.66 673 ms 1.1 s 1.28 s 0%
Bread page 4.64 675 ms 1.1 s 1.53 s 0%
Location page 1.57 628 ms 946 ms 1.06 s 0%
Site search 1.54 757 ms 1.23 s 1.55 s 0%

Editors in the Wagtail admin

Step Requests/s Median p95 p99 Error rate
1 virtual user
Admin dashboard 0.475 120 ms 141 ms 144 ms 0%
Page explorer 0.984 485 ms 553 ms 681 ms 0%
Page editor 1.44 231 ms 268 ms 423 ms 0%
Image library 0.475 91.8 ms 101 ms 872 ms 0%
Admin page search 0.475 47.4 ms 103 ms 111 ms 0%
4 virtual users
Admin dashboard 0.588 397 ms 737 ms 970 ms 0%
Page explorer 1.23 1.51 s 2.48 s 2.59 s 0%
Page editor 1.81 712 ms 1.18 s 1.22 s 0%
Image library 0.605 317 ms 658 ms 782 ms 0%
Admin page search 0.588 186 ms 487 ms 729 ms 0%

k6 with a fixed number of virtual users, 60 to 61 s per level, after a 20 s warmup. The error rate counts responses that weren't a 200. Wagtail ran the way bakerydemo ships it: uWSGI with 2 workers of 4 threads each, whatever the box, and Postgres and Redis on stock settings. Memory peaked with Wagtail at 294 MB, Postgres at 163 MB, and Redis at 26 MB.

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
New York 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 12, 2026, 21:53:01 UTC
Parser version
5

Run timeline

Queued
Oct 12, 2026, 21:51:00 UTC
Server created
Oct 12, 2026, 21:52:06 UTC
First update from the server
Oct 12, 2026, 21:52:07 UTC
Completed
Oct 12, 2026, 23:36:00 UTC
Server deleted
Oct 12, 2026, 23:36:00 UTC
Cost of this run
$0.11
Watch party 0 watching

This party closed at . It's read only now.

Watch party

Loading the party