The OpenVZ Trap: Performance vs. Price in the Norwegian VPS Market
It is 2012, and the "Cloud" is the only thing CTOs want to talk about. But let's be honest: for most of us, "Cloud" is just a marketing term for a Virtual Private Server (VPS). The market is flooded with providers offering instances for 50 NOK ($9) a month. It sounds like a steal.
But there is a reason that VPS is cheaper than your morning coffee in Oslo. It usually comes down to one acronym: OpenVZ.
As a sysadmin who has spent too many nights debugging "mysterious" crashes on budget hosting, I can tell you that not all virtualization is created equal. If you are running a static site, OpenVZ is fine. If you are running a Magento store or a MySQL cluster? You might be building on quicksand.
The Architecture: Apartments vs. Detached Houses
To understand the problem, you have to look at the kernel. OpenVZ uses OS-level virtualization. It splits a single Linux kernel into multiple "containers" (CTs). Think of it like a large apartment building in Grünerløkka. You have your own front door (IP address) and your own rooms (filesystem), but you share the plumbing and the heating (Kernel) with everyone else.
In contrast, technologies like Xen or KVM (Kernel-based Virtual Machine) are more like detached houses. Each VM runs its own kernel. If your neighbor sets their house on fire, your house doesn't necessarily burn down.
The "Noisy Neighbor" Effect
In an OpenVZ environment, resources are often oversold. Providers assume not everyone will use 100% of their CPU at once. But when one user decides to compile a custom kernel or run a massive tar backup operation, the I/O wait climbs for everyone on that physical node.
I recently migrated a client whose site was timing out every day at 14:00. We checked the logs. Nothing. We checked the database. Clean. It turned out another user on the same physical host was running a heavy cron job at that exact time, starving our disk I/O.
The Enemy: User Beancounters (UBC)
The most painful part of managing an OpenVZ container in 2012 is the user_beancounters interface. This is a set of limits enforced by the kernel. Unlike a Xen VPS, which simply acts like a slow server when overloaded, OpenVZ kills processes that hit these artificial limits.
You can check if you are hitting these limits by reading the proc file:
cat /proc/user_beancounters
You will see output that looks like this (and you should fear the failcnt column):
Version: 2.5
uid resource held maxheld barrier limit failcnt
101: kmemsize 2738766 4634234 14336000 14790160 0
lockedpages 0 0 256 256 0
privvmpages 64234 89456 131072 139264 12
shmpages 656 656 21504 21504 0
numproc 32 48 240 240 0
physpages 14234 28456 0 2147483647 0
See that 12 in the privvmpages row under failcnt? That means 12 times, an application tried to allocate memory and the kernel said "No," killing the process instantly. This often leads to MySQL tables crashing silently or Apache workers dying without logging an error.
Pro Tip: If you are stuck on an OpenVZ node, you must tune your MySQL configuration strictly. The defaultmy.cnfis too aggressive. Lower yourinnodb_buffer_pool_sizeto ensure you stay well below theprivvmpagesbarrier.
Configuration Limits
Another issue is kernel modules. Need to run iptables with specific NAT modules? Need to mount a FUSE filesystem? On OpenVZ, you can't just modprobe it. You have to beg your hosting provider to enable it on the host node.
For example, enabling tun/tap for OpenVPN often requires a support ticket:
# This will fail inside most default containers
modprobe tun
FATAL: Module tun not found.
When to Use OpenVZ (and When Not To)
I am not saying OpenVZ is useless. It is incredibly efficient. The overhead is near zero compared to Xen. For development environments, testing scripts, or lightweight DNS servers, it is cost-effective.
The CoolVDS Approach: Integrity in Hosting
At CoolVDS, we understand the Norwegian market needs stability. Latency to NIX (Norwegian Internet Exchange) matters. Data privacy matters. But raw uptime matters most.
We use KVM virtualization for our premium tier. This ensures that your RAM is your RAM. We don't oversell it. If you buy 4GB, the hypervisor reserves 4GB. No "Burst RAM" tricks.
However, we also utilize OpenVZ for our budget-conscious tiers, but we do it differently. We use strict QoS (Quality of Service) rules on the host nodes to prevent the noisy neighbor effect.
| Feature | OpenVZ (Standard) | CoolVDS (KVM/Xen) |
|---|---|---|
| Kernel | Shared (2.6.32 RHEL6) | Dedicated |
| Memory | Burst / Shared | Guaranteed / Isolated |
| Disk I/O | Contended | Dedicated / Cached |
| Swap | Fake (VSwap) | Real Partition |
Storage Speeds: The SSD Revolution
In 2012, most providers are still spinning rusty SAS disks at 15,000 RPM. They are reliable, but slow. We are starting to see the emergence of Solid State Drives (SSD) and PCIe flash storage in the enterprise space. While traditional HDDs struggle with random I/O (vital for databases), SSD technology eliminates seek times.
For high-performance applications, we are rolling out nodes equipped with these high-speed SSDs. Combined with low latency network routes directly to Oslo, this dramatically improves page load times compared to standard hosting hosted in Germany or the US.
Final Verdict
Don't let a low price tag fool you. If your business relies on your server, ask your provider: "Is this guaranteed RAM, or burst RAM?"
If you need absolute isolation, ddos protection, and the ability to run your own kernel, you need a true hypervisor solution. Check your user_beancounters today. If the fail count is rising, it's time to move.
Ready for real performance? Deploy a KVM instance on CoolVDS today and stop fighting for resources.