On a machine (AWS m5.large) that only runs
nice‘d background processing jobs (i.e. no web/DB/etc servers present), are there disadvantages to consistently running the CPU at 100%?
I understand that running the system such that it consumes 100% of the available memory is not a good idea. Without swap, the system will simply kill processes when it runs out of memory. Even with swap, the system will start swapping out pages which slows the entire system down dramatically.
However, my understanding is that a system with
nice‘d processes running at 100% CPU usage will function without dramatic slowdowns. Is this correct?
Or, would it be better to try to configure the background processes such that the system stays within the range of 60% – 90% CPU usage?
nice or not, running at 100% CPU means you are not processing your jobs as quickly as you could be, if you had more CPU available. The entire system does indeed slow down. The only thing
nice does for you is to let you indicate which processes have higher or lower priority and should have more or less of your already limited CPU.
If your jobs are slower than you expect, the only thing that will make any significant difference is to give them more CPU. If you take it from other jobs, then those jobs will slow down. If you upgrade your CPU, then everything will run faster. Of course, since it’s EC2, you could also just add more instances.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.