Benchmarking different hypervisors and baremetal plus SSD vs NVME
I moved my Cloudron back to a hypervisor on my gaming rig after a while on an old HP Desktop. I treated it to a new 1TB NVME drive too and thought about which hypervisor was best in my situation.
I have a ten-year-old i7 4770 CPU and 32GB of RAM with an ancient GTX660 Ti and tested Virtualbox, VM Ware Player and Hyper-V vs the old HP desktop baremetal. I also tested NVME vs SSD. All this runs on Windows 10 - yes, I did have Proxmox / Debian Linux before but virtualising a gaming rig sucked with my old hardware.
TL;DR: Hyper-V rocks! NVME is fast (d'uh!)
Here are the results:
When I did a before and after page load timing test, I reduced the time it took to load the files page by around 2 seconds... that's switching from baremetal and using an external HDD(!) to NVME on Hyper-V o.O
PS Thanks to cestarian on StackExchange for the disk benchmarking script: https://unix.stackexchange.com/revisions/480191/12
@3246 Thank you for taking the time to report these results. Using an old gaming rig for Cloudron is a brilliant idea.
Presumably, you connect your gaming rig to a home router and from there can reach your Cloudron from the WWW.
Is setting up the router for this purpose quite complicated? Could a novice accomplish this well enough?
Hey @LoudLemur, you are welcome
Yes, I am blessed with a decent fiber line and have opened my firewall up for https.
It's fairly straightforward, yes:
- Make sure you have a static IP address or otherwise use a dynamic IP client (e.g. Cloudflare) to update a hostname (e.g. www.yourserver.com) as the address changes
- Open up ports 80 and 443 on your router and forward it to the internal IP address of your Cloudron
I think the most tricky bit is the hostname == IP address issue for most people who are on consumer broadband.
What you have demonstrated is what could bring a ton of new users to Cloudron. The annual hosting costs would vanish.
If developers are able to make the setup you have automated, it would be amazing. I don't know if it would be difficult to do. Probably very!
Some GUI wizard might be able to accomplish much of the troublesome stuff:
1) Please enter your fixed ip address: 2) on which drive is your operating system? 3) On which drive would you like to install Cloudron? 4) What is your router's address? 5) What is your router's password? 6) etc.
@3246 I was having trouble reaching my new home server from an outside network and this post made me go over my ports again and realized that I didn't open any ports for ipv6! I did that and all's good now! Thanks!
As for the NVME speeds, on my production VPS with Contabo, I had switched to NVME when they had it released months back and I could immediately see the difference in how snappy my Cloudron and Wordpress dashboards were responding. Site speeds were noticeable too.
@LoudLemur I agree with 3246 that the hostname and IP are the only real obstacles to self-hosting Cloudron. This is my second attempt at a homeserver. My first attempt failed because my ISP has a fake ipv4 over ipv6. Now that Cloudron supports ipv6, all I had to do was enable that option in my Cloudron dashboard and have Cloudflare handle the DNS (make sure to disable proxies in your CF DNS records).
Here are the key things that I had to do for a homeserver:
- DNS automation is key so Cloudflare is highly recommended
- Once you add your domain in CF, create a manual A record with your server IP for my.yourdomain.tld beforehand so you don't hit the "waiting for DNS propagation" during Cloudron set up.
- In you router, go to DHCP reservations, find your server in the device list, and assign a static IP address to it (ex: 192.168.1.102). This is necessary for the next steps (port opening).
- You can install Cloudron now on a fresh Ubuntu server (20.04).
- In Cloudron dashboard, go to Network, and enable Dynamic DNS.
- In your router, usually under Firewall/Security, you need to open ports for BOTH, ipv4 and ipv6 (assuming you have an ipv6 ip too).
- It's impossible to change the PTR on residential internet plans so setting up an email relay like Mailgun (free for 1200-ish emails per month) is needed. Incoming mail will work fine once the ports are open.
Girish wrote an awesome blog post regarding home servers: https://blog.cloudron.io/installing-cloudron-on-a-home-server/
This site has info on your router settings: https://portforward.com/router.htm
Cloudflare is a terrible internet chokepoint all round the world and has already been involved in censorship activities. It might be convenient, but if the same could be accomplished with an alternative, I would prefer it.
@LoudLemur I'm with you 100% on that. This is my first and only domain that I have with them. Please report back if you find an alternative. I was hoping that DNSME would get some love as I use that for all my other domains but it seems there's not enough users on here that want it. I might have to move all my domains back to NameCheap just to have DNS automation and to avoid CF.