CPU Performance Explained

There are a lot of factors that decide how fast a CPU crunches a particular task.The first is “clock speed,” which is the number usually advertised the most on the box. A desktop CPU with good cooling might run around 4.5 GHz, whereas a laptop CPU might run around 3.2 GHz or so. The clock speed of a CPU directly affects performance—faster clocks, more instructions executed per second.

But, faster clocks mean more heat, and when you’re hosting at massive scales, the primary cost for running servers is not really the hardware itself, but the gigantic electricity bill associated with it. Server CPUs, such as Intel’s Xeon lineup, are designed with efficiency in mind; they will often have many cores, which drags the overall clock speed down, because it takes an enormous amount of power to run each core at “full speed.” Because of this, most Xeons will top out at around 3.6 GHz or so for the base clock (and many server providers will lock Xeons to their base clocks).

IPC

On top of clock speed, you also have a metric called Instructions Per Second (IPC). Just because a CPU runs at 5 billion cycles per second doesn’t mean it’s executing exactly 5 billion operations every second. Many operations take multiple clock cycles to fully execute, and this depends on how the CPU architecture is laid out. IPC is something that can improve generationally with more efficient CPU layouts; an instruction that may have taken 7 cycles to execute might be cut down to just 6 cycles in a newer CPU model.

IPC is usually measured as an average, because real-world workloads will differ quite a bit and tax different parts of the CPU. A new CPU might do much better in video encoding, but show little-to-no improvement in Photoshop performance.

IPC is also measured generationally. For example, AMD’s new Zen 2 lineup was a very large leap in IPC of around 14%. Intel usually averages around 4-6% improvement each generation. Clock speeds haven’t been improving much at all, so IPC improvement is what sets CPU generations apart from one another. For general estimates, you can use benchmark sites like UserBenchmark to compare CPU revisions.

Multicore

CPUs also have multiple cores. This can lead you to believe that an 8 core CPU will be twice as powerful as a 4 core CPU, but that isn’t exactly the case. In some workloads, this holds true, particularly when doing “real” work like video and 3D rendering, compiling, and crunching numbers; more cores translates directly to more performance.

For game servers though, they usually only use a single core, so you’ll want to do everything possible to have the single-core speed be as high as possible. Having a multicore CPU is still great though—if you have 4 cores, you’ll be able to run multiple servers without maxing out the system. You’re also able to run other services, such as web servers and voice chat, if you still use TeamSpeak for some reason.

Virtualization Overhead

Additionally, many servers available for rent from cloud providers will be “virtual” servers. What this means is that your server runs on the same hardware as many other servers, and you’re just given a cut of the pie. It achieves this with virtual machines, which run multiple operating systems alongside one another with the help of a controller called a hypervisor.

The problem is that virtual machines aren’t 100% efficient. They will have a performance overhead. Depending on the task, virtual machines can be anywhere from 10% to 25% less efficient than running on directly on the server, AKA “bare metal.”

All in all, the general formula for performance looks like so:

However, this is a simplification, and it doesn’t take into account other factors that might degrade a CPU’s performance under real-world conditions.

Memory speed can affect CPU performance. You’ll often find cheap DDR3 memory in many servers, which is usually ran at the stock JEDEC speed of 1066, 1333, or 1600 Mhz, a far cry from desktop DDR4 RAM that can run over 3200 Mhz. Slower memory speed (specifically, slower memory latency) increases the time that the CPU spends in IOWAIT, waiting for a response from the RAM before executing the next task. This can slow any CPU to a crawl if you’re really taxing the memory system, and on the desktop side of things, is usually the culprit for stuttering in games.

Similarly to memory speed, storage can also affect certain things like loading times. If your server has to frequently restart, it may be a good idea to find a server with an SSD, compared to a traditional hard drive.

On top of all of this, each application is different and will have different requirements. Some game servers might be properly multithreaded, and make use of more than one core. Some servers may be less intensive and may not need more than 3 Ghz or so to run smoothly. You’ll want to do testing and find out how much performance you actually need.

How to Get Maximum Performance

First rule—Xeons are mostly a no-go. Most servers use Xeons, but you can also rent servers from a few companies that use traditional “desktop” processors like Intel’s Core i7 lineup. These will likely run at much higher clocks than their server counterparts.

If you do decide on a server with a Xeon, you should at least try to find a new Xeon, released in the last three years or so. Many providers will buy up used old hardware, and use it for their cheaper offerings. You’ll want to stay clear of this, and always check the tech specs and check the date the Xeon was released.

Additionally, you’ll want to rent a dedicated server, rather than getting a virtualized one. These will likely be sold as a monthly contract, as you’re renting out the actual hardware. It’ll be pricier than getting a virtualized server, but it will be faster.

If you can get a server with DDR4 RAM, it will offer a slight speedup compared to DDR3. An SSD is also preferred over a spinning hard drive.

Again, you should do your own testing before running out and buying something expensive, as you might find that your application is less intensive than you thought. In my personal testing, I found that Google Cloud Platform’s n1-standard instance, powered by Intel’s 2017 Skylake Xeon platform, was enough to run a modded Minecraft server for a handful of players, despite being a slow Xeon in a virtualized environment. But if I had 50 or more people online, it would likely have put too much stress on the system, so your mileage will vary depending on your use case.

Where to Find Servers

Dedicated game servers are big business, and a quick Google search for “___ Server Hosting” will likely turn up numerous results, such as Gameservers.com and other sites offering cheap shared hosting. Many of these shared hosting providers will also let you buy the whole server. However, a lot of these will be managed through their own web panels and will generally be a bit of a hassle to work with, and will usually be running on mediocre hardware anyway.

The best option is to rent a server directly from a cloud provider like OVH. They have a whole section for game servers, which use Intel i7s rather than Xeons. They’re a bit pricey, but it’s a premium service, and with 4 cores and 32 GB of RAM, you can use to run multiple servers. They also have cheaper options if you want to rent a dedicated Xeon.

If you’re fine with having an older i7, you can buy their last generation hardware from their sister company SoYouStart, which offer servers powered by an i7 4790K and 16 GB of RAM for just $42 per month. This is probably the cheapest you’ll find server hosting like this with clock speeds over 4 GHz.

RELATED: Protect Your Home Minecraft Server From DDOS Attacks with AWS

If you’re hosting from home, you’ll likely want to talk to your ISP about getting a static IP address to prevent headaches, and perhaps upgrading to their “business” package, beause you might not be strictly allowed to host servers on most consumer connections (though it’s entirely doable, and you’ll probably be fine).

As far as buying the hardware goes, used hardware is relatively cheap on sites like Ebay, and DDR3 RAM can be bought in bulk from server companies selling off their old stock. You can put together a  basic PC in a traditional case for around $300-$400, which can be cheaper if you’re planning on using that server for a while. With a proper cooler and 120mm fans, a server like this can be near-silent.

If you have a basement and can put up with the noise, you can actually buy prebuilt server racks for insanely cheap prices on Ebay. You can use LabGopher to browse listings, and you’ll find many quad core servers with 16 GB of RAM in the bargain bin at less than $100 with shipping. Keep in mind though, that these servers are meant to be ran in a datacenter, with no respect to noise levels and as such, have 40mm fans that will destroy your ability to sleep. You will not get away with putting these in your bedroom closet. If you do, try to find a server in the 2U form factor, rather than 1U, as the fans will usually be a bit less noisy.

It’s worth noting that there are actually server-hosting companies called colocation services that specialize in running warehouses for other people’s servers. You provide the actual hardware, and they will hook it up to their network, give you an IP address, and a pipe to the outside world. You pay a monthly fee for the service, plus electricity costs. This is probably a bit extreme, and not cost effective for a single server, but if you want to deploy a bunch of cheap used hardware into someone else’s “cloud,” this may be an option for you.