# LunaNode c.2 2 vCPU / 10 GB

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

Benchmark complete

Finished Oct 26, 2026

Geekbench 7 single-core

865

Faster than 33% of 2 vCPU plans

Geekbench 7 multi-core

1,543

Faster than 45% of 2 vCPU plans

Disk 4K IOPS

94,781

fio random read and write, 50/50

Monthly price at test time

$40.00

39 multi-core points per dollar

Same price today

## Server

[LunaNode](https://rackcensus.com/vps-providers/lunanode-benchmarks)[c.2 2 vCPU / 10 GB](https://rackcensus.com/plans/sri1r4-lunanode-c-2-2-vcpu-10-gb-benchmarks?location=toronto)

-

Provider

LunaNode

-

Plan

c.2 2 vCPU / 10 GB

-

Location

Toronto

-

vCPU

2

-

RAM

10 GB

-

Storage

200 GB SSD

-

Network

Unknown

-

OS image

Ubuntu 24.04 64-bit (template)

-

Trigger

Scheduled

-

Queued at

Oct 23, 2026, 15:12:00 UTC

[Visit LunaNode](https://rackcensus.com/go/lunanode)

## CPU

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

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 | 98276th of 110 | 1,37449th of 60 |
| Navigation | 1,08275th of 110 | Single-core only |
| HTML5 Browser | 88178th of 110 | Single-core only |
| PDF Viewer | 99678th of 110 | Single-core only |
| Photo Library | 68785th of 110 | 1,29554th of 60 |
| Clang | 91871st of 110 | 1,85641st of 60 |
| Text Processing | 97960th of 110 | 1,92340th of 60 |
| Asset Compression | 1,04866th of 110 | 2,10041st of 60 |
| HDR | 77781st of 110 | 1,51547th of 60 |
| Photo Editor | 57396th of 110 | 78360th of 60 |
| Ray Tracer | 96378th of 110 | 2,03245th of 60 |
| Structure from Motion | 80095th of 110 | Single-core only |
| Game Physics | 94674th of 110 | Single-core only |
| Video Encoder | 76986th of 110 | Single-core only |
| Audio Encoder | 89783rd of 110 | Single-core only |
| Video Player | 73088th of 110 | Single-core only |

Rank among the 110 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 | 184.9 MB/s (47,328 IOPS) | 185.4 MB/s (47,453 IOPS) | 370.2 MB/s (94,781 IOPS) |
| 64K | 1.79 GB/s (29,284 IOPS) | 1.8 GB/s (29,439 IOPS) | 3.58 GB/s (58,723 IOPS) |
| 512K | 1.81 GB/s (3,708 IOPS) | 1.91 GB/s (3,905 IOPS) | 3.72 GB/s (7,613 IOPS) |
| 1M | 1.76 GB/s (1,798 IOPS) | 1.87 GB/s (1,918 IOPS) | 3.63 GB/s (3,716 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 | 1.14 Gbps | 805 Mbps |
| Eranium, Amsterdam, NL (100G) | IPv4 | 1.02 Gbps | 731 Mbps |
| Leaseweb, Singapore, SG (10G) | IPv4 | 725 Mbps | 378 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 | 7.93 / 9.26 | 0 / 0 | Met workload limits |
| 1 | 500 | 494.13 | 7 / 10.45 | 0 / 1056 | load generator fell behind |
| 1 | 1000 | 983.65 | 7.16 / 12.29 | 0 / 2941 | load generator fell behind |
| 1 | 3000 | 2959.11 | 21.97 / 73.33 | 0 / 7337 | error limit exceeded |
| 2 | 100 | 100 | 8.86 / 816.72 | 0 / 0 | load generator fell behind |
| 2 | 500 | 494.18 | 7 / 10.45 | 0 / 1047 | load generator fell behind |
| 2 | 1000 | 984.66 | 7.41 / 12.97 | 0 / 2761 | load generator fell behind |
| 2 | 3000 | 2950.23 | 29.97 / 86.16 | 0 / 8949 | error 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 | 999.99 | 2.02 / 2.72 | 0 / 0 | Met workload limits |
| 1 | 5000 | 4999.6 | 2.91 / 6.1 | 0 / 66 | Met workload limits |
| 1 | 10000 | 9977.91 | 10.68 / 26.75 | 0 / 3968 | load generator saturated |
| 1 | 25000 | 15042.46 | 31.54 / 39.51 | 0 / 1792174 | load generator saturated |
| 2 | 1000 | 1000 | 2.02 / 3.27 | 0 / 0 | Met workload limits |
| 2 | 5000 | 4999.95 | 4.06 / 8.57 | 0 / 1 | Met workload limits |
| 2 | 10000 | 9946.84 | 14.58 / 30.59 | 0 / 9465 | load generator saturated |
| 2 | 25000 | 15119.5 | 31.87 / 39.51 | 0 / 1778302 | 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 | 4.82 / 5.56 | 0 / 0 | Met workload limits |
| 1 | 500 | 500 | 4.22 / 9.16 | 0 / 0 | Met workload limits |
| 1 | 1000 | 999.99 | 5.06 / 9.68 | 0 / 0 | Met workload limits |
| 1 | 3000 | 2994.71 | 39.91 / 71.86 | 0 / 928 | load generator saturated |
| 2 | 100 | 100 | 4.88 / 5.56 | 0 / 0 | Met workload limits |
| 2 | 500 | 499.99 | 3.72 / 5.3 | 0 / 0 | Met workload limits |
| 2 | 1000 | 999.99 | 5.82 / 11.65 | 0 / 0 | Met workload limits |
| 2 | 3000 | 2996.83 | 37.54 / 65.62 | 0 / 416 | load generator saturated |

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 | 41.58 / 53.6 | 0 / 0 | Met workload limits |
| 1 | 20 | 20 | 35.67 / 53.6 | 0 / 0 | Met workload limits |
| 1 | 50 | 47.74 | 5578.96 / 5805.53 | 0 / 233 | latency limit exceeded |
| 1 | 100 | 49.46 | 5634.76 / 5805.53 | 0 / 8924 | latency limit exceeded |
| 2 | 5 | 5 | 44.19 / 53.6 | 0 / 0 | Met workload limits |
| 2 | 20 | 20 | 37.93 / 76.35 | 0 / 0 | Met workload limits |
| 2 | 50 | 46.82 | 5691.12 / 5748.04 | 0 / 422 | latency limit exceeded |
| 2 | 100 | 48.19 | 5748.04 / 5922.24 | 0 / 9167 | 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 | 62.39 / 87.91 | 0 / 0 | Met workload limits |
| 1 | 20 | 20 | 56.39 / 154.22 | 0 / 0 | Met workload limits |
| 1 | 50 | 40.71 | 7013.92 / 7226.48 | 0 / 1473 | latency limit exceeded |
| 1 | 100 | 43.4 | 6477.16 / 6673.45 | 0 / 9967 | latency limit exceeded |
| 2 | 5 | 5 | 61.76 / 77.9 | 0 / 0 | Met workload limits |
| 2 | 20 | 20 | 56.96 / 106.41 | 0 / 0 | Met workload limits |
| 2 | 50 | 43.24 | 6286.64 / 6607.37 | 0 / 989 | latency limit exceeded |
| 2 | 100 | 44.31 | 6286.64 / 6541.94 | 0 / 9813 | 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 | 611.75 / 703.34 | 0 / 0 | Met workload limits |
| 1 | 20 | 17.98 | 7013.92 / 7013.92 | 321 / 0 | latency limit exceeded |
| 1 | 50 | 3.52 | 7013.92 / 7013.92 | 5989 / 2354 | latency limit exceeded |
| 1 | 100 | 6.94 | 7013.92 / 7013.92 | 5486 / 11219 | latency limit exceeded |
| 2 | 5 | 5 | 617.88 / 724.69 | 0 / 0 | Met workload limits |
| 2 | 20 | 18.16 | 7013.92 / 7013.92 | 292 / 0 | latency limit exceeded |
| 2 | 50 | 8.94 | 7013.92 / 7013.92 | 5017 / 2319 | latency limit exceeded |
| 2 | 100 | 15.48 | 7013.92 / 7013.92 | 3937 / 11184 | 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 | 16.74 / 23.39 | 0 / 0 | Met workload limits |
| 1 | 50 | 50 | 12.42 / 16.91 | 0 / 0 | Met workload limits |
| 1 | 100 | 100 | 11.15 / 19.19 | 0 / 0 | Met workload limits |
| 1 | 250 | 249.98 | 15.88 / 34.24 | 0 / 0 | Met workload limits |
| 2 | 10 | 10 | 14.74 / 19.59 | 0 / 0 | Met workload limits |
| 2 | 50 | 50 | 11.9 / 15.88 | 0 / 0 | Met workload limits |
| 2 | 100 | 100 | 10.68 / 16.39 | 0 / 0 | Met workload limits |
| 2 | 250 | 250 | 14.43 / 33.2 | 0 / 0 | Met workload limits |

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

### GitHub self-hosted runner
Failed

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

ValueError: set RUNNER\_BENCHMARK\_REPOSITORY and RUNNER\_BENCHMARK\_REVISION to the repository and commit hosting benchmark-runner.yml

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 | Dedicated vCPU | 0.1% of busy CPU time stolen |
| RAM | 10 GB | 9.7 GiB |
| Storage | 200 GB SSD | 193.7 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 (Skylake, IBRS)

**CPU cores:** 2

**CPU frequency:** 2600 MHz

**AES-NI:** Yes

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

**RAM reported:** 9.7 GiB

**Swap reported:** 4 GiB

**Disk reported:** 193.7 GiB

**Virtualization reported:** KVM

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

**Distro:** Ubuntu 24.04.5 LTS

**Kernel:** 6.8.0-106-generic

**Architecture:** x86\_64

**IPv4 reachable:** Yes

**IPv6 reachable:** Yes

## Advertised at test time

**Plan:** c.2 2 vCPU / 10 GB

**Product line:** Compute-Optimized

**Location:** Toronto

**vCPU:** 2 dedicated vCPU

**Architecture:** x86\_64

**RAM:** 10 GB

**Storage:** 200 GB SSD

**Virtualization:** KVM

**Network:** Unknown

**Transfer:** 5 TB

**Port 25:** Unknown

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

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

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

**Ran at:** Oct 26, 2026, 07:55:36 UTC

**Parser version:** 5

## Run timeline

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

**First update from the server:** Oct 26, 2026, 07:54:32 UTC

**Completed:** Oct 26, 2026, 12:40:49 UTC

**Server deleted:** Oct 26, 2026, 12:40:49 UTC

**Cost of this run:** $0.27

Tests 46 of 51 done Live output 1280 lines

Setup 2 cores, 9.7 GiB RAM 4 of 4Done

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

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

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

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

Web apps 5 failed 7 of 12Some failed

TestResultTime

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

PostgreSQL large dataset RuntimeError: RuntimeError: TimeoutError: Stopped RuntimeError: RuntimeError: TimeoutError: 4m 33s

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

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

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

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

n8n queue workers 8 measured trials completed 8 trials Measurements, 8 measured trials completed 32m 47s

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

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

Elasticsearch search and ingestion 8 measured trials completed 8 trials Measurements, 8 measured trials completed 36m 50s

GitHub self-hosted runner ValueError: set RUNNER\_BENCHMARK\_REPOSITORY and RUNNER\_BENCHMARK\_REVISION to the repository and commit hosting benchmark-runner.yml Stopped ValueError: set RUNNER\_BENCHMARK\_REPOSITORY and RUNNER\_BENCHMARK\_REVISION to the repository and commit hosting benchmark-runner.yml 0s

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 22s

Finish Results saved 1 of 1Done

Watch party 0 watching

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

## Watch party

Loading the party
