# Cherry Servers Cloud ARM VDS 2

Lithuania

Benchmark complete

Finished Oct 16, 2026

Geekbench 7 single-core

816

Faster than 20% of 2 vCPU plans

Geekbench 7 multi-core

1,490

Faster than 27% of 2 vCPU plans

Disk 4K IOPS

102,439

fio random read and write, 50/50

Monthly price at test time

$45.63

33 multi-core points per dollar

Same price today

## Server

[Cherry Servers](https://rackcensus.com/vps-providers/cherryservers-benchmarks)[Cloud ARM VDS 2](https://rackcensus.com/plans/4mfrs8-cherryservers-cloud-arm-vds-2-benchmarks?location=LT-Siauliai)

-

Provider

Cherry Servers

-

Plan

Cloud ARM VDS 2

-

Location

Lithuania

-

vCPU

2

-

RAM

12 GB

-

Storage

50 GB NVMe

-

Network

1 Gbps

-

OS image

ubuntu\_24\_04\_64bit

-

Trigger

Scheduled

-

Queued at

Oct 15, 2026, 23:33:00 UTC

[Visit Cherry Servers](https://rackcensus.com/go/cherryservers)

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 | 816 | 1,490 | [Geekbench Browser](https://browser.geekbench.com/v7/cpu/642274) |

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

## Memory, TLS and scheduler

### Memory bandwidth (STREAM)

| Test | Result | Runs | Spread |
| --- | --- | --- | --- |
| Copy higher is better | 18.3 GB/s | 3 | 2.35% |
| Scale higher is better | 16 GB/s | 3 | 2.86% |
| Add higher is better | 17.9 GB/s | 3 | 1.49% |
| Triad higher is better | 18.1 GB/s | 3 | 1.62% |

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 | 321/s | 3 | 1.87% |
| RSA 4096 verifies higher is better | 22,748/s | 3 | 0.0896% |
| SHA-256 higher is better | 1.75 GB/s | 3 | 1.73% |
| AES-256-GCM higher is better | 5.45 GB/s | 3 | 0.331% |
| ChaCha20-Poly1305 higher is better | 2.11 GB/s | 3 | 0.244% |

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 | 5.13 ms | 3 | 0% |
| Requests per second, 90th percentile higher is better | 386/s | 3 | 0.15% |
| Request latency, 99.9th percentile lower is better | 9.32 ms | 3 | 3% |
| Requests per second, average higher is better | 385/s | 3 | 0.16% |

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

## Disk

| Block size | Read | Write | Total |
| --- | --- | --- | --- |
| 4K | 200.1 MB/s (51,236 IOPS) | 200 MB/s (51,203 IOPS) | 400.2 MB/s (102,439 IOPS) |
| 64K | 536.1 MB/s (8,578 IOPS) | 552.1 MB/s (8,833 IOPS) | 1.06 GB/s (17,411 IOPS) |
| 512K | 508.8 MB/s (1,017 IOPS) | 552.3 MB/s (1,104 IOPS) | 1.04 GB/s (2,121 IOPS) |
| 1M | 492.9 MB/s (492 IOPS) | 549.9 MB/s (549 IOPS) | 1.02 GB/s (1,041 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 | 1.06 Gbps | 938 Mbps |
| Eranium, Amsterdam, NL (100G) | IPv4 | 1.07 Gbps | 933 Mbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 902 Mbps | 769 Mbps |
| Clouvider, Los Angeles, CA, US (10G) | IPv4 | 916 Mbps | 86 Mbps |
| Leaseweb, NYC, NY, US (10G) | IPv4 | 1.02 Gbps | 872 Mbps |

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 | 6,471 | 0.155 ms |
| fdatasync | 6,220 | 0.161 ms |
| fsync | 4,816 | 0.208 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 4,937 | 0.203 ms |
| Two 8 kB writes |
| --- |
| open\_datasync | 3,210 | 0.312 ms |
| fdatasync | 5,717 | 0.175 ms |
| fsync | 4,255 | 0.235 ms |
| fsync\_writethrough | Not supported here | n/a |
| open\_sync | 2,546 | 0.393 ms |
| open\_sync at different write sizes |
| --- |
| 1 \* 16kB open\_sync write | 4,868 | 0.205 ms |
| 2 \* 8kB open\_sync writes | 2,514 | 0.398 ms |
| 4 \* 4kB open\_sync writes | 1,272 | 0.786 ms |
| 8 \* 2kB open\_sync writes | 649 | 1.54 ms |
| 16 \* 1kB open\_sync writes | 325 | 3.08 ms |
| fsync on a non-write descriptor |
| --- |
| write, fsync, close | 4,172 | 0.24 ms |
| write, close, fsync | 3,967 | 0.252 ms |
| Non-synced 8 kB writes |
| --- |
| write | 881,012 | 0.001 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 | 1,295 | 0.787 ms | 0.894 ms | 1.19 ms | 3.74 ms | 0 |
| Read/write (TPC-B like) | 8 | 2,349 | 3.19 ms | 5.48 ms | 7.59 ms | 10.8 ms | 0 |
| Read/write (TPC-B like) | 32 | 1,967 | 13.4 ms | 36.3 ms | 57.4 ms | 90.4 ms | 0 |
| Read only | 1 | 12,613 | 0.09 ms | 0.114 ms | 0.133 ms | 0.277 ms | 0 |
| Read only | 8 | 20,934 | 0.357 ms | 0.571 ms | 0.705 ms | 1.95 ms | 0 |
| Read only | 32 | 20,245 | 1.38 ms | 2.24 ms | 3.13 ms | 5.32 ms | 0 |

Scale 10 (1,000,000 accounts), loaded in 1.61 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 | 1,112 | 0.901 ms | 1.07 ms | 1.68 ms | 6.41 ms | 0 |
| Read/write (TPC-B like) | 8 | 2,154 | 3.55 ms | 5.41 ms | 8.26 ms | 14.6 ms | 0 |
| Read/write (TPC-B like) | 32 | 2,080 | 14.7 ms | 22.8 ms | 28.9 ms | 40.1 ms | 0 |
| Read only | 1 | 9,495 | 0.109 ms | 0.156 ms | 0.196 ms | 1.11 ms | 0 |
| Read only | 8 | 16,619 | 0.451 ms | 0.727 ms | 1.03 ms | 2.85 ms | 0 |
| Read only | 32 | 15,501 | 1.85 ms | 3.18 ms | 4.28 ms | 6.48 ms | 0 |

Scale 100 (10,000,000 accounts), loaded in 18.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 | 243 | 4,857 | 3.68 ms | 5.99 ms | 10.8 ms | 0 |
| Read/write | 8 | 333 | 6,668 | 23.5 ms | 38.2 ms | 51 ms | 0 |
| Read/write | 32 | 320 | 6,393 | 97.6 ms | 180 ms | 249 ms | 0 |
| Read only | 1 | 446 | 7,134 | 2.31 ms | 2.62 ms | 3.08 ms | 0 |
| Read only | 8 | 708 | 11,323 | 10.8 ms | 17 ms | 20 ms | 0 |
| Read only | 32 | 616 | 9,863 | 51 ms | 71.8 ms | 77.2 ms | 0 |

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

### Redis

#### memtier

| Mix | Operations/s | Hits/s | Median | p99 | p99.9 |
| --- | --- | --- | --- | --- | --- |
| 1:10 set:get | 58,817 | 53,469 | 0.559 ms | 3.52 ms | 5.31 ms |
| 1:1 set:get | 54,941 | 27,470 | 0.591 ms | 3.55 ms | 5.5 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 | 318 | 919 | 1,301 | 2.32 s |
| Express express-postgresjs | 3,982 | 5,643 | 18,387 | 290 ms |
| Fastify fastify-postgres | 3,890 | 6,199 | 19,123 | 597 ms |
| NestJS nestjs | 2,043 | 2,030 | 9,819 | 182 ms |
| Nuxt nuxt | 3,284 | 5,832 | 15,913 | 883 ms |
| FastAPI fastapi | 1,788 | 2,183 | 17,222 | 544 ms |
| Django django-postgresql | 651 | 731 | 1,727 | 515 ms |
| Rails rails | 697 | 986 | 4,963 | 457 ms |
| Laravel laravel | 331 | 339 | 653 | 837 ms |
| Symfony symfony | 409 | 446 | 1,354 | 675 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.

## Web apps

### WooCommerce

#### Page mix

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Home page | 1.22 | 1.3 s | 1.48 s | 1.5 s | 0% |
| Shop page | 1.22 | 1.73 s | 2.02 s | 2.04 s | 0% |
| Category page | 1.22 | 1.09 s | 1.8 s | 1.96 s | 0% |
| Product page | 1.22 | 1.18 s | 1.36 s | 1.51 s | 0% |
| Product search | 1.22 | 1.03 s | 1.23 s | 1.27 s | 0% |
| 32 virtual users |
| --- |
| Home page | 1.35 | 4.63 s | 5.2 s | 5.29 s | 0% |
| Shop page | 1.35 | 6.03 s | 6.88 s | 7.05 s | 0% |
| Category page | 1.35 | 5.44 s | 6.54 s | 6.99 s | 0% |
| Product page | 1.1 | 4.75 s | 5.05 s | 5.26 s | 0% |
| Product search | 0.902 | 4.4 s | 4.83 s | 5.02 s | 0% |

#### Cart and checkout

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 8 virtual users |
| --- |
| Add to cart | 2.26 | 1.41 s | 1.6 s | 1.66 s | 0% |
| Cart | 2.26 | 1.12 s | 1.25 s | 1.31 s | 0% |
| Checkout | 2.26 | 854 ms | 989 ms | 1.02 s | 0% |
| 32 virtual users |
| --- |
| Add to cart | 2.32 | 4.57 s | 5.65 s | 5.75 s | 0% |
| Cart | 2.32 | 4.98 s | 5.46 s | 5.51 s | 0% |
| Checkout | 2.32 | 3.85 s | 4.41 s | 4.62 s | 0% |

k6 with a fixed number of virtual users, 64 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.19 | 376 ms | 442 ms | 621 ms | 0% |
| Topic JSON | 0.611 | 183 ms | 231 ms | 435 ms | 0% |
| Home page | 0.611 | 323 ms | 547 ms | 824 ms | 0% |
| Categories page | 0.297 | 387 ms | 424 ms | 440 ms | 0% |
| User activity page | 0.297 | 230 ms | 292 ms | 391 ms | 0% |
| 4 virtual users |
| --- |
| Topic page | 1.74 | 1.02 s | 1.25 s | 1.93 s | 0% |
| Topic JSON | 0.886 | 563 ms | 667 ms | 721 ms | 0% |
| Home page | 0.886 | 865 ms | 1.15 s | 1.8 s | 0% |
| Categories page | 0.459 | 1.04 s | 1.28 s | 1.77 s | 0% |
| User activity page | 0.427 | 636 ms | 1.51 s | 1.65 s | 0% |
| 16 virtual users |
| --- |
| Topic page | 1.66 | 2.08 s | 2.97 s | 3.45 s | 0% |
| Topic JSON | 0.837 | 1.63 s | 2.09 s | 2.32 s | 0% |
| Home page | 0.837 | 1.97 s | 3 s | 3.12 s | 0% |
| Categories page | 0.386 | 2.13 s | 2.6 s | 2.86 s | 0% |
| User activity page | 0.419 | 1.79 s | 2.36 s | 2.59 s | 0% |

#### Anonymous

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 16 virtual users |
| --- |
| Topic page | 31.5 | 152 ms | 307 ms | 427 ms | 0% |
| Topic JSON | 15.8 | 149 ms | 314 ms | 417 ms | 0.21% |
| Home page | 15.8 | 153 ms | 310 ms | 379 ms | 0.105% |
| Categories page | 7.87 | 157 ms | 326 ms | 462 ms | 0% |
| User activity page | 7.89 | 439 ms | 677 ms | 926 ms | 0% |

k6 with a fixed number of virtual users, 60 to 62 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 3072 MB of Postgres shared buffers, what its installer picks for a 12 GB box. Its installer adds no swap on a box this big. The container peaked at 1,797 MB.

### Ghost

#### Readers

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 1 virtual user |
| --- |
| Home page | 3.99 | 70.3 ms | 89.6 ms | 97.9 ms | 0% |
| Post page | 9.93 | 40.3 ms | 56.6 ms | 67.7 ms | 0% |
| Tag page | 2 | 46.3 ms | 59.2 ms | 61.5 ms | 0% |
| Author page | 1.98 | 48.2 ms | 62.3 ms | 76.4 ms | 0% |
| RSS feed | 1.98 | 51.2 ms | 66.4 ms | 68.7 ms | 0% |
| 4 virtual users |
| --- |
| Home page | 5.07 | 210 ms | 266 ms | 309 ms | 0% |
| Post page | 12.7 | 149 ms | 205 ms | 238 ms | 0% |
| Tag page | 2.54 | 122 ms | 170 ms | 203 ms | 0% |
| Author page | 2.53 | 137 ms | 194 ms | 211 ms | 0% |
| RSS feed | 2.53 | 134 ms | 188 ms | 226 ms | 0% |
| 16 virtual users |
| --- |
| Home page | 4.96 | 806 ms | 984 ms | 1.05 s | 0% |
| Post page | 12.3 | 681 ms | 838 ms | 911 ms | 0% |
| Tag page | 2.48 | 445 ms | 566 ms | 614 ms | 0% |
| Author page | 2.46 | 443 ms | 588 ms | 657 ms | 0% |
| RSS feed | 2.46 | 454 ms | 584 ms | 684 ms | 0% |

#### Staff in Ghost Admin

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 1 virtual user |
| --- |
| Post list | 1.94 | 65.3 ms | 83.1 ms | 97.2 ms | 0% |
| Post editor | 5.86 | 34.4 ms | 49.2 ms | 53.3 ms | 0% |
| Saving a draft | 5.86 | 77.8 ms | 107 ms | 121 ms | 0% |
| Member list | 1.95 | 80.8 ms | 105 ms | 146 ms | 0% |
| 4 virtual users |
| --- |
| Post list | 2.62 | 92.8 ms | 123 ms | 152 ms | 0% |
| Post editor | 7.9 | 60.6 ms | 82.6 ms | 96 ms | 0% |
| Saving a draft | 7.93 | 363 ms | 462 ms | 518 ms | 0% |
| Member list | 2.65 | 101 ms | 127 ms | 146 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 523 MB and MySQL at 627 MB.

### Wagtail

#### Visitors

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 1 virtual user |
| --- |
| Home page | 1.09 | 128 ms | 145 ms | 146 ms | 0% |
| Blog index | 1.09 | 401 ms | 462 ms | 491 ms | 0% |
| Blog post | 3.24 | 40.3 ms | 60.7 ms | 67.6 ms | 0% |
| Bread page | 3.26 | 44.2 ms | 54.4 ms | 58.5 ms | 0% |
| Location page | 1.09 | 42.4 ms | 52.3 ms | 54.1 ms | 0% |
| Site search | 1.07 | 63.4 ms | 116 ms | 126 ms | 0% |
| 4 virtual users |
| --- |
| Home page | 1.48 | 376 ms | 536 ms | 600 ms | 0% |
| Blog index | 1.48 | 1.36 s | 1.7 s | 1.81 s | 0% |
| Blog post | 4.45 | 105 ms | 170 ms | 216 ms | 0% |
| Bread page | 4.47 | 121 ms | 171 ms | 201 ms | 0% |
| Location page | 1.52 | 112 ms | 162 ms | 171 ms | 0% |
| Site search | 1.47 | 157 ms | 288 ms | 372 ms | 0% |
| 16 virtual users |
| --- |
| Home page | 1.33 | 1.42 s | 2.27 s | 2.52 s | 0% |
| Blog index | 1.31 | 3.63 s | 4.55 s | 5.48 s | 0% |
| Blog post | 3.89 | 761 ms | 1.54 s | 2.02 s | 0% |
| Bread page | 3.94 | 748 ms | 1.43 s | 1.96 s | 0% |
| Location page | 1.35 | 708 ms | 1.02 s | 1.55 s | 0% |
| Site search | 1.28 | 948 ms | 1.72 s | 2.34 s | 0% |

#### Editors in the Wagtail admin

| Step | Requests/s | Median | p95 | p99 | Error rate |
| --- | --- | --- | --- | --- | --- |
| 1 virtual user |
| --- |
| Admin dashboard | 0.559 | 120 ms | 147 ms | 167 ms | 0% |
| Page explorer | 1.13 | 394 ms | 438 ms | 530 ms | 0% |
| Page editor | 1.68 | 198 ms | 236 ms | 461 ms | 0% |
| Image library | 0.559 | 86 ms | 194 ms | 977 ms | 0% |
| Admin page search | 0.559 | 46.7 ms | 102 ms | 282 ms | 0% |
| 4 virtual users |
| --- |
| Admin dashboard | 0.765 | 385 ms | 718 ms | 793 ms | 0% |
| Page explorer | 1.55 | 1.3 s | 1.9 s | 2.34 s | 0% |
| Page editor | 2.31 | 540 ms | 915 ms | 1.24 s | 0% |
| Image library | 0.781 | 378 ms | 709 ms | 833 ms | 0% |
| Admin page search | 0.765 | 138 ms | 343 ms | 394 ms | 0% |

k6 with a fixed number of virtual users, 60 to 62 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 292 MB, Postgres at 152 MB, and Redis at 25 MB.

## Advertised vs. measured

| Spec | Advertised | Measured |
| --- | --- | --- |
| vCPU | 2 | 2 |
| CPU | Dedicated vCPU | 0.1% of busy CPU time stolen |
| RAM | 12 GB | 11.7 GiB |
| Storage | 50 GB NVMe | 48.4 GiB |
| Architecture | arm64 | arm64 |
| Virtualization | KVM | KVM |

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

## Detected hardware

**CPU model:** Ampere-1a

**CPU cores:** 2

**CPU frequency:** Unknown

**AES-NI:** Yes

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

**RAM reported:** 11.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.2 LTS

**Kernel:** 6.8.0-62-generic

**Architecture:** arm64

**IPv4 reachable:** Yes

**IPv6 reachable:** No

## Advertised at test time

**Plan:** Cloud ARM VDS 2

**Product line:** Cloud ARM VDS

**Location:** Lithuania

**vCPU:** 2 dedicated vCPU

**Architecture:** arm64

**RAM:** 12 GB

**Storage:** 50 GB NVMe

**Virtualization:** KVM

**Network:** 1 Gbps

**Transfer:** 5 TB

**Port 25:** Unknown

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

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

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

**Ran at:** Oct 16, 2026, 02:37:27 UTC

**Parser version:** 5

## Run timeline

**Queued:** Oct 15, 2026, 23:33:00 UTC

**First update from the server:** Oct 15, 2026, 23:37:22 UTC

**Completed:** Oct 16, 2026, 01:21:14 UTC

**Server deleted:** Oct 16, 2026, 01:21:14 UTC

**Cost of this run:** $0.14

Tests 43 of 43 done Live output 776 lines

Setup 2 cores, 11.7 GiB RAM 4 of 4Done

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

Network, IPv4 (iperf3) Median 1.02 Gbit/s send, 872 Mbit/s receive 5 of 5Done

Geekbench 7, single-core Score 816 1 of 1Done

Geekbench 7, multi-core Score 1,490 1 of 1Done

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

Datastores 5 of 5Done

Web frameworks 10 of 10Done

Web apps 8 of 8Done

Finish Results saved 1 of 1Done

Watch party 0 watching

This party closed at 02:21 UTC. It's read only now.

## Watch party

Loading the party
