SlightlyLoony
Tera Contributor

find_real_file.pngA customer recently asked, basically, just how big the iron for a MID server needed to be:

Right now our choices include for the MID server 12 core at 54 gig, or 16 core at 60 gigs but with more cost associated. Do you think we can get away with the 12 core spec?


Why, yes, as a matter of fact I think you probably could get away with the 12 core spec. And a whole lot less. I haven't actually tried this, but I'm pretty sure you could run a MID server effectively on a four ounce server powered by a starving, depressed, three-legged hamster turning a generator. While he's drunk. With power to spare for recharging your cell phone...

MID servers generally require very little in terms of compute resource.

By default, the MID server Java Virtual Machine (JVM) is configured to use 0.5 gigabytes of RAM, so it will run quite comfortably on a physical or virtual machine with just 1 gigabyte. It's more common to tweak that RAM consumption down (to further reduce the MID server's footprint) than it is to tweak it up. Generally the RAM is configured roughly in parallel with the number of threads used on the MID server. The default max threads setting is 25. If you tweak that down (trading lower performance for lower footprint), both the RAM and the CPU required by the MID server will go down. The practical minimum is about 5 threads and 0.15 gigabytes. If you tweak the max threads up, you're trading a bigger footprint for higher performance. The largest I've seen on a Windows server is 300 threads and 2 gigabytes.

The CPU required is generally very low, as the MID server spends most of its time waiting for network messages. Typically we see just a few percent of a core being consumed while the MID server is working. The only exception to this that we've run into is a quirk of Microsoft's remote registry reading capability (which we use to find installed software packages on Windows targets); for whatever reason that consumes (comparatively) much more CPU. If the max threads is set high enough and you're running the MID server on physical hardware, then it is possible to saturate one or more cores for a few seconds at a time if the MID server is reading the software packages on several target computers in parallel. If you're running the MID server on a virtual machine, then of course the hypervisor will limit the CPU consumption on the physical server according to your VM's configuration.

About the only scenario where the above doesn't apply is if you have a need to complete a Discovery scan of a datacenter in the absolute shortest time possible, and therefore you're going to use multiple MID servers, each with their max threads tweaked way up. We have one customer who has a datacenter with several tens of thousands of servers and a need to scan the entire thing in a couple of hours each night. To assure themselves this could be done, they configured ten 8-core physical servers with a MID server configured for 300 threads on each one. In actual use, these servers don't even get warm — CPU consumption ticks along at around 9 or 10% (or roughly one core).

You can see that our customer's "small" option was quite a bit bigger than is likely to be needed, no matter what the circumstance. So get yourself one of those $50 servers on eBay, a defective hamster, and a generator for a hand-cranked radio. With a little ingenuity, you should have the perfect platform for your MID server — fueled by just a little lettuce, water, and an occasional replacement hamster...

2 Comments