DigitalOcean Regular (8 GB, 4 Cores) vs. Linode Linode (2 GB)
New day, new benchmarks. Today I've spun up some brand new instance from DigitalOcean and Linode to run some benchmarks on. Each instance was running Ubuntu 24.04 LTS x64 and were created in or around the New York / New Jersey area. Let's get into the numbers.
Overview
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Last Benchmarked | Thu, 30 Oct 2025 15:00:52 GMT | Wed, 29 Oct 2025 19:00:52 GMT |
| Linux Distro | Ubuntu 24.04 LTS x64 | Ubuntu 24.04 LTS x64 |
| Kernel Version | 6.8.0-71-generic | 6.8.0-71-generic |
| MySQL Version | 8.0.43-0ubuntu0.24.04.2 | 8.0.43-0ubuntu0.24.04.2 |
| Redis Version | 7.0.15 | 7.0.15 |
| Location | New York, NY | Newark, NJ |
| Monthly Price | $48.00 | $12.00 |
| RAM (GB) | 8 | 2 |
| CPU Cores | 4 | 1 |
| Storage (TB) | 160 | 50 |
| Storage Type | SSD | SSD |
| Transfer (TB) | 5 | 2 |
CPU
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Vendor | GenuineIntel | AuthenticAMD |
| Model Name | DO-Regular | AMD EPYC 7601 32-Core Processor |
| Clock Speed (MHz) | 2,294.61 | 2,200.00 |
| CPU Cache Size (KB) | 4,096.00 | 512.00 |
| BogoMips | 4,589.21 | 4,399.99 |
| Events per Second | 856.37 | 619.10 |
| Minimum Latency (ms) | 0.97 | 0.63 |
| Average Latency (ms) | 1.17 | 1.61 |
| Maximum Latency (ms) | 49.08 | 9.87 |
| 95th Percentile Latency (ms) | 1.34 | 4.25 |
Memory
Memory Read
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Operations per second | 3,423,105.63 | 2,046,105.54 |
| Mebibytes per second | 3,342.88 | 1,998.15 |
| Minimum Latency (ms) | 0 | 0 |
| Average Latency (ms) | 0 | 0 |
| Maximum Latency (ms) | 0.14 | 7.56 |
| 95th Percentile Latency (ms) | 0 | 0 |
Memory Write
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Operations per second | 3,378,396.22 | 2,048,681.95 |
| Mebibytes per second | 3,299.22 | 2,000.67 |
| Minimum Latency (ms) | 0 | 0 |
| Average Latency (ms) | 0 | 0 |
| Maximum Latency (ms) | 0.19 | 6.47 |
| 95th Percentile Latency (ms) | 0 | 0 |
File I/O
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Reads per Second | 1,188.82 | 982.22 |
| Writes per Second | 792.55 | 654.81 |
| Fsyncs per Second | 2,541.23 | 2,097.60 |
| Read Mebibytes per Second | 18.58 | 15.35 |
| Written Mebibytes per Second | 12.38 | 10.23 |
| Minimum Latency (ms) | 0 | 0 |
| Average Latency (ms) | 0.22 | 0.27 |
| Maximum Latency (ms) | 100.04 | 8.55 |
| 95th Percentile Latency (ms) | 1.12 | 0.57 |
Mutex
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Minimum Latency (ms) | 542.69 | 2,176.60 |
| Average Latency (ms) | 623.84 | 2,190.25 |
| Maximum Latency (ms) | 664.46 | 2,210.36 |
| 95th Percentile Latency (ms) | 669.89 | 2,198.52 |
MySQL
MySQL Read-only
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 3,922.00 | 4,502.00 |
| Queries per second | 39,220.00 | 45,020.00 |
| Minimum Latency (ms) | 1.3 | 1.74 |
| Average Latency (ms) | 2.54 | 2.22 |
| Maximum Latency (ms) | 12.71 | 6.58 |
| 95th Percentile Latency (ms) | 3.13 | 2.48 |
MySQL Write-only
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 1,122.00 | 3,173.00 |
| Queries per second | 11,220.00 | 31,730.00 |
| Minimum Latency (ms) | 5.01 | 1.97 |
| Average Latency (ms) | 8.91 | 3.15 |
| Maximum Latency (ms) | 154 | 21.85 |
| 95th Percentile Latency (ms) | 15 | 5.09 |
MySQL Read/Write
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 954.00 | 1,688.00 |
| Queries per second | 9,540.00 | 16,880.00 |
| Minimum Latency (ms) | 6.72 | 4.26 |
| Average Latency (ms) | 10.47 | 5.92 |
| Maximum Latency (ms) | 49.82 | 16.27 |
| 95th Percentile Latency (ms) | 14.46 | 7.56 |
MySQL INSERT
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 1,648.00 | 6,930.00 |
| Queries per second | 16,480.00 | 69,300.00 |
| Minimum Latency (ms) | 3.83 | 0.97 |
| Average Latency (ms) | 6.06 | 1.44 |
| Maximum Latency (ms) | 48.86 | 5.74 |
| 95th Percentile Latency (ms) | 9.73 | 1.73 |
MySQL Bulk INSERT
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 898,571.00 | 734,741.00 |
| Queries per second | 8,985,710.00 | 7,347,410.00 |
| Minimum Latency (ms) | 0 | 0 |
| Average Latency (ms) | 0.01 | 0.01 |
| Maximum Latency (ms) | 624.25 | 643.74 |
| 95th Percentile Latency (ms) | 0 | 0 |
MySQL SELECT
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 126,315.00 | 90,489.00 |
| Queries per second | 1,263,150.00 | 904,890.00 |
| Minimum Latency (ms) | 0.04 | 0.07 |
| Average Latency (ms) | 0.08 | 0.11 |
| Maximum Latency (ms) | 2.41 | 4.1 |
| 95th Percentile Latency (ms) | 0.11 | 0.15 |
MySQL SELECT (Random Points)
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 4,133.00 | 5,002.00 |
| Queries per second | 41,330.00 | 50,020.00 |
| Minimum Latency (ms) | 0.84 | 0.75 |
| Average Latency (ms) | 2.41 | 2 |
| Maximum Latency (ms) | 23.08 | 8.55 |
| 95th Percentile Latency (ms) | 3.36 | 2.66 |
MySQL SELECT (Random Ranges)
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 3,068.00 | 5,601.00 |
| Queries per second | 30,680.00 | 56,010.00 |
| Minimum Latency (ms) | 0.88 | 0.62 |
| Average Latency (ms) | 3.25 | 1.78 |
| Maximum Latency (ms) | 9.27 | 8.25 |
| 95th Percentile Latency (ms) | 4.91 | 2.35 |
MySQL UPDATE (Indexed)
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 1,480.00 | 5,858.00 |
| Queries per second | 14,800.00 | 58,580.00 |
| Minimum Latency (ms) | 4.18 | 0.96 |
| Average Latency (ms) | 6.75 | 1.71 |
| Maximum Latency (ms) | 51.66 | 10.1 |
| 95th Percentile Latency (ms) | 10.46 | 2.52 |
MySQL UPDATE (Non-Indexed)
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 1,684.00 | 6,227.00 |
| Queries per second | 16,840.00 | 62,270.00 |
| Minimum Latency (ms) | 3.94 | 1.15 |
| Average Latency (ms) | 5.93 | 1.6 |
| Maximum Latency (ms) | 28.39 | 6.52 |
| 95th Percentile Latency (ms) | 9.22 | 2.07 |
MySQL DELETE
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| Transactions per second | 7,728.00 | 33,571.00 |
| Queries per second | 77,280.00 | 335,710.00 |
| Minimum Latency (ms) | 0.05 | 0.07 |
| Average Latency (ms) | 1.29 | 0.3 |
| Maximum Latency (ms) | 46.85 | 13.68 |
| 95th Percentile Latency (ms) | 6.67 | 1.7 |
Redis
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| PING_INLINE per Second | 54,406.96 | 32,341.53 |
| PING_MBULK per Second | 57,703.40 | 32,594.52 |
| SET per Second | 53,304.90 | 32,331.07 |
| GET per Second | 59,311.98 | 32,425.42 |
| INCR per Second | 65,104.17 | 32,626.43 |
| LPUSH per Second | 56,022.41 | 32,351.99 |
| RPUSH per Second | 57,504.31 | 32,829.94 |
| LPOP per Second | 57,405.28 | 31,897.93 |
| RPOP per Second | 55,493.89 | 32,351.99 |
| SADD per Second | 56,306.30 | 31,928.48 |
| HSET per Second | 50,890.59 | 32,594.52 |
| SPOP per Second | 49,188.39 | 28,506.27 |
| ZADD per Second | 55,340.34 | 31,857.28 |
| ZPOPMIN per Second | 58,892.82 | 32,331.07 |
| LRANGE_100 (first 100 elements) per Second | 30,515.72 | 20,028.04 |
| LRANGE_300 (first 300 elements) per Second | 13,917.88 | 10,170.87 |
| LRANGE_500 (first 500 elements) per Second | 8,640.05 | 6,881.84 |
| LRANGE_600 (first 600 elements) per Second | 8,086.69 | 5,830.22 |
| MSET (10 keys) per Second | 48,828.12 | 30,385.90 |
Redis Average Latency (ms)
| DigitalOcean – Regular (8 GB, 4 Cores) | Linode – Linode (2 GB) | |
|---|---|---|
| PING_INLINE | 0.48 | 1.01 |
| PING_MBULK | 0.46 | 1.00 |
| SET | 0.49 | 1.02 |
| GET | 0.44 | 1.01 |
| INCR | 0.41 | 1.01 |
| LPUSH | 0.47 | 1.03 |
| RPUSH | 0.46 | 1.01 |
| LPOP | 0.47 | 1.04 |
| RPOP | 0.48 | 1.03 |
| SADD | 0.47 | 1.03 |
| HSET | 0.53 | 1.02 |
| SPOP | 0.53 | 1.12 |
| ZADD | 0.48 | 1.04 |
| ZPOPMIN | 0.45 | 1.01 |
| LRANGE_100 (first 100 elements) | 0.97 | 1.66 |
| LRANGE_300 (first 300 elements) | 2.32 | 3.14 |
| LRANGE_500 (first 500 elements) | 3.51 | 4.68 |
| LRANGE_600 (first 600 elements) | 3.65 | 5.34 |
| MSET (10 keys) | 0.72 | 1.14 |
Conclusion
From the friendly robots:
After analyzing the benchmark results, it's clear that the DigitalOcean instance excels in CPU-intensive and memory-heavy workloads, offering significantly higher performance in Redis operations, CPU events per second, and memory operations per second compared to the Linode instance. The DigitalOcean instance also provides better file I/O performance and lower latency for MySQL operations. Conversely, the Linode instance, despite having fewer CPU cores and less RAM, performs better in certain memory and thread latency benchmarks, though it lags behind the DigitalOcean instance in overall throughput and responsiveness. Ideal use cases for the DigitalOcean instance would be applications requiring high CPU and memory usage, such as large-scale web applications, data processing pipelines, and high-traffic Redis caching. The Linode instance, while more cost-effective, would be better suited for smaller, less demanding applications or development environments where the trade-off in performance for lower cost is acceptable.
From the friendly human:
If you found this VPS Showdown helpful in your search for a hosting provider, please consider supporting my efforts by signing up using my referral links for DigitalOcean and Linode.
You can also support me directly by buying me a coffee.