8

Conceptually, what is the definition of an idle server?

What resource metrics would you look at to make an assumption on whether or not a server was idle?

Would you look at:

  • CPU utilization
  • Disk Usage
  • Memory Usage

If so, what thresholds would these have to be at to decide if something is idle?

Would reboots and patching skew your results if you purely looked at these statistics.

1
  • 2
    I would look for metrics for any running services. Idle is when there is no pending work or requests for work for any of the services on the system.
    – Zoredache
    Feb 8, 2018 at 23:40

6 Answers 6

15

A machine is idle when it's not performing the task it's supposed to perform for lack of requests. For example, if you had an email server, you could determine if it was fielding any requests from the email application on it. If it isn't, and that's the only thing on there, then it's idle. Things of course get more complicated with collocated services on a single node.

In general, if you can pull the power and nobody cares then it's idle.

3
  • 5
    The last paragraph somewhat contradicts the previous one. A lot of company infrastructure will be idle at non-office hours, however if you were to pull the power, people would be pretty unhappy when they arrive at work.
    – PlasmaHH
    Feb 9, 2018 at 15:05
  • 3
    In general, if you can pull the power and nobody cares then it's idle - I do not agree with that sentence. Domain controllers are generally idle machines, but try pulling the plug and bad thing will happen...
    – shodanshok
    Feb 9, 2018 at 16:37
  • 1
    Don't assume that pulling the power is a permanent condition. One would generally determine that a server is idle before replacing it or some of its parts, requiring temporary downtime, or to migrate the server itself to another location. Of course there are edge cases, and in shodanshok's example a domain admin should know to demote or freeze a directory node before pulling the plug.
    – Spooler
    Feb 9, 2018 at 17:16
8

"Idle" is not a black and white concept: even a busy server can have free CPU cycles, IOPs and memory to run some other application.

As a rule of thumb, target CPU load should be at around ~80% and not above ~90%, as maxing out the CPU will greatly increase system latency. CPU load under ~60% generally meas your server is underutilized.

Please also consider that a very I/O-dependant workload will tax the disks but the CPU will be mostly idling (wait time in Linux terms), so maybe you can run a CPU-heavy computation on a I/O-loaded server without too much performance degradation.

1

What operating system is it and what is/was the server's purpose?

If I had no other information and I needed to determine is a server was idle I would check to see which services were installed/running and then log some network activity specifically targeting those services. Linux and Windows both have logon auditing. Windows has the performance monitor for monitoring general network activity, and many built in counters of active sessions for various services. For a file server you can check for recently modified/accessed files.

I don't think any of the metrics you've listed are really good indicators of activity or inactivity since there are so many ways to get 'false positives', depending on what you're looking for. E.g. an antivirus program could use CPU cycles or the disk could be full of unused files.

If you want to tell me which OS you're using and what the purpose of the server is/was (if you know) I can edit my answer and provide you with more information.

1
  • Sorry for the late response. Ultimately we are looking to build some kind of idlebot for our AWS environment to help reduce costs and determine what could be shut down. We are primarily a windows shop, so that is what I am focusing on first. However, there are some linux boxes that will be introduced into the mix in the future.
    – Johnrad
    Mar 13, 2018 at 17:22
0

The term “idle” can be very subjective. The best approach is to collect daily metrics from all your production instances and compare the numbers. You may have some workloads that you can distribute across your server farm more evenly thus, giving you a overall lower load average. You want all your servers to be operating in the sweet spot of not to high, yet not too low thus to maximize your overall perforamnce.

0

If you can remove it from you infrastructure / network with no impact on any services then I would consider that server as idle.

-1

how to define a server as being idle depends heavily on the context, what do you want to do with the information, that a server has been classified as idle. There is no meaningful way to classify a server as idle without context.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .