Benchmarks
Geekbench
iperf3
Speedtest-cli
Deployment time

Plan IDTypeRAMDiskBandwidthPriceHourly PriceLocation
vc2-1c-0.5gbStandard0.5 GB10 GB SSD0.5 TB$3.50$0.005New York only
vc2-1c-1gbStandard1 GB25 GB SSD1 TB$5.00$0.007Seattle available
vhf-1c-1gbHigh Frequency1 GB32 GB NVMe1 TB$6.00$0.008Seattle available
vhp-1c-1gbHigh Performance1 GB25 GB NVMe2 TB$6.00$0.008Seattle available
vc2-1c-2gbStandard2 GB55 GB SSD2 TB$10.00$0.014Seattle available
vc2-2c-2gbStandard x22GB3TB$15.00$0.021Seattle

Misc

Time to deploy from API (Ubuntu and Debian)

  • time between API request to successful SSH with whoami printed
    On GUI only Debian is available for vc2-1c-0.5

ewr + deb 12 + lowest tier = 139.23s
~~ + deb 11 = 157.02s
sea + ub22 + 1/1 = 128.38s
sea + ub24 + 1/1 = 101.10s
sea + deb11 + 1/1 = 115.19s
sea + deb12 + 1/1 = 132.33s
vc2-1c-0.5gb-ewr-2136 = 110.21s
1hf/1 + ubuntu = 70s
1hf/1 + debian = 78.30s
1hp/1 + ubuntu = 195.32s
1hp/1 + debian = 127.23s
vhf-1c-1gb-sea-2284 = 79.28s
vhf-1c-1gb-sea-2136 = 79.30s
vc2-1c-1gb-sea-2284 = 123.22s
vc2-1c-1gb-sea-2284 = 136.28s
vc2-1c-1gb-sea-2136 = 93.17s
vc2-1c-1gb-sea-2136 = 125.45s
vc2-1c-1gb-sea-2136 = 82.05s

Setup

apt update && apt install htop wireguard wireguard-tools iperf3 p7zip-full -y && ufw disable && 7z b && df -h && echo -e "alias dc='docker compose'\nalias ll='ls -alh'" >> ~/.bashrc && . ~/.bashrc

Network

Normal iperf
Normal speedtest
Wireguard bare metal server

  • speedtest from home
  • iperf wg, htop
  • client: Windows 10 PC, WG app
    Tailscale bare metal
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --auth-key revoked --advertise-exit-node --accept-routes --accept-dns=false
  • iperf3
  • wget Jellyfin speedtest, htop, network monitoring
wget http://10.10.120.16:8096/Items//Download?api_key= --output-document=/dev/null      

Outline VPN server, 3x-ui VLESS + WS + TLS (Caddy lego and cloudflare) and VMESS + WS

  • speedtest, CPU monitoring
    Wireguard
curl -fsSL http://207.148.29.65:8080/api/public/dl/nt0tW1mm | bash

Xray

curl -fsSL http://207.148.29.65:8080/api/public/dl/bkegbtmd | bash

Caddy - is AES enabled on CPU?
Take note of disk usage

1c0.5g - 2.5G disk, 125M
Speedtest 7Gbps
Wireguard

  • speedtest 303/57, 299/67, 40%
  • iperf 30/347 56/339 36% (highly fluctuating), iperf performing worse on Windows
    Normal iperf3 from Linux 86/264 102/711
    Tailscale
  • iperf 120/254 60%
  • jellyfin 16MB/s, somehow faster than normal, 80%
  • speedtest 191/136 80%
    V2ray
  • vmess+ws 595/110 65%
  • +tls 192/80 80%
    210MB RAM, 3.7G used, idle 2%

1c1g - 5..7G 137M (require retesting?)
Wireguard

  • speedtest 190/80, 299/67, 25%
  • speedtest retest 345/122, 35%
  • iperf 65/197 30%
  • iperf retest 71/385
    Normal iperf 130/740
    Tailscale
  • iperf 85/221 70%
  • iperf retest 145/456 70%
  • iperf retest
  • jellyfin 13MB/s, 70%
  • speedtest 152/151 75%
  • speedtest retest 265/148 60%
    V2Ray
  • vmess+ws 628/131 80%
  • +tls 598/130 100%

1c1ghf
Wireguard

  • speedtest 695/122 55%
  • iperf3 63/769
    Normal iperf3 130/726 40%
    Tailscale
  • iperf3 150/642 60%
  • jellyfin consistent 16MB/s
  • speedtest 563/148 85%
    V2Ray
  • vmess+ws 696/130
  • +tls 793/131 100%

Performance

Geekbench
Unrar, 7z benchmark

Docker

https://github.com/dominikhoebert/docker-projects
apt update && apt upgrade time taken, take note of storage usage

time apt update && apt upgrade

Time to install docker, note storage

time apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Docker data

http://207.148.29.65:8080/api/public/dl/E_s0-8JA

~1min 282MB 4.4G after install
1m22s pull everything
2s uptime kuma
6s backrest
1m11s filebrowser
5+ min for dante to start up
5s portainer
memos might crash
Uptime Kuma seems to use too much RAM and cause docker unusable
360M used
Tailscale internal same, exit node run into slight issue
Even with xray killed, uptime-kuma still can’t startup
No difference in speed/CPU of VPN software, but instability
300-350M 7.4G used 5%

| CONTAINER ID | NAME               | CPU % | MEM USAGE / LIMIT     | MEM % | NET I/O           | BLOCK I/O         | PIDS |
|--------------|--------------------|-------|-------------------------|--------|--------------------|--------------------|------|
| 19395ea12871 | memos              | 0.00% | 22.14MiB / 451.7MiB    | 4.90%  | 9.86kB / 14.1kB    | 96.6MB / 32.8kB    | 7    |
| 36700fb301be | gatus              | 0.02% | 13.39MiB / 451.7MiB    | 2.96%  | 5.47MB / 1.03MB    | 6.96GB / 0B        | 7    |
| a5b4e1db57a3 | docker-portainer-1 | 0.00% | 12.23MiB / 451.7MiB    | 2.71%  | 5.85kB / 126B      | 8.97GB / 799kB     | 4    |
| 7693d81c65b2 | dante              | 0.00% | 8.02MiB / 451.7MiB     | 1.77%  | 5.97kB / 538B      | 3.93MB / 16.4kB    | 20   |
| 43918afae091 | filebrowser        | 0.00% | 3.57MiB / 451.7MiB     | 0.79%  | 6.77kB / 7.64kB    | 57.1MB / 16.4kB    | 5    |
| c3db5601793c | backrest           | 0.01% | 7.89MiB / 451.7MiB     | 1.75%  | 6.22kB / 126B      | 1.92GB / 77.8kB    | 7    |

35s
280M 6.5G
360M after everything
500M after uptime-kuma
Added homepage, adguard-home, stirlingpdf, mealie, kavita, dozzle, nextcloud
650MB 18GB Used 15-30% CPU
tailscale exit node 126/100, CPU usage full
VMESS 500/120 +TLS 425/116 full CPU

1c72580969df   uptime-kuma          1.06%     143.3MiB / 954.9MiB   15.01%    405kB / 968kB

Pull the images first, before docker compose up -d
Use existing data to make sure the app is running state rather than initializing

  • UptimeKuma
  • Backrest
  • FileBrowser
  • Tailscale
  • Portainer
  • Wordpress + MySQL
    Lower priority
  • Syncthing
  • Fireshare
  • JDownloader
  • OpenWebUI

Measure time to deploy, afterward, measure CPU usage.

Results

Performance

PlanCompression SpeedDecompression SpeedMIPS
1c0.5g2.6 MB/s31 MB/s2600
1c1g (Broadwell)2.3 MB/s33 MB/s3000
1c1g HF (Skylake)3.6 MB/s40 MB/s3500

Networking

PlanWG (D/U Mbps, CPU%)Tailscale Exit (D/U, CPU%)Tailscale iperf (To/From, CPU%)VMESS+WS (D/U, CPU%)VMESS+WS+TLS (D/U, CPU%)Jellyfin (MB/s)
1c0.5g303/67 @ 40%191/136 @ 80%120/254 @ 60%595/110 @ 65%192/80 @ 80%13
1c1g345/122 @ 25–35%265/148 @ 60–75%145/456 @ 70%628/131 @ 80%598/130 @ 100%13
1c1ghf695/122 @ 55%563/148 @ 85%150/642 @ 60%696/130 @ —793/131 @ 100%16

The lowest tier in ewr shows usable performance in both Wireguard and tailscale exit node. Despite the distance, it can access local Tailscale resources at good speed possibly good for 4K remux. V2ray (Xray core) shines here providing the fastest bandwidth, however with using Caddy as TLS, the performance suffered, the same is not observed in Seattle machines even with comparable specs, it could due to distance or routes.
The basic sea tier offers better speed across the board, except Jellyfin, but it’s still quite good. The proximity to home contribute to the increase. The deficit in V2ray Caddy TLS is not observed here.
The high frequency sea tier a bit expensive but offers consistent and speedy performance. It could be due to hf CPU or premium product from Vultr uses better routes? All 3 machines are suitable for VPN and bandwidth heavy tasks.
while V2Ray offers the best speed, it uses considerable CPU on the client compared to others, when using V2RayN tun mode (not proxy mode) which is comparable to traditional VPNs, it uses 35%+ on i7 12700K compared to ~15% on Wireguard based apps, if the network is not hostile, Tailscale is preferred, especially on battery powered devices or if electricity cost money; this is not relevant to VPS performance but something to note

Applications

The 1c0.5g plan was able to deploy basic Docker apps after the previous testing, such as backrest, filebrowser, portainer, gatus, memos and dante. I tried uptime kuma but it came to memory issues. When trying to deploy it, the system reached 400/450MB RAM and even commands like docker stats; docker stop hangs and htop refreshes line by line slowly. Upon stopping uptime kuma, the memory issue was resolved. Even when removing tailscale and Xray, uptime kuma could not be deployed smoothly, making it unsuitable. Even without it, under normal operation of other web apps, OOM may still occur, which affect tailscale/V2ray stability, constant RAM management may be required. However, gatus runs fine which means the VPS is still capable for monitoring.
The 1c1g plan does not have such issues. Not only the existing apps are deployed, uptime kuma deployed without problem. Additionally, dozzle, wordpress+mysql, nextcloud, mealie, dozzle, stirlingpdf, kavita, adguard-home are successfully deployed without memory issues. This shows with 1G of RAM, the VPS is way more capable, for users that wants to run applications, this plan is recommended. After these apps are running, the CPU usage went to 15-30%, tailscale/V2ray performance are affected.