Right now your computer is probably running over a hundred programs! And with just a handful of CPUs available — certainly not enough to dedicate a whole CPU to each process — Windows has to perform some wizardry to give the illusion that each program has all the resources that it needs. Indeed, every few milliseconds the Operating System is deciding which of the many active processes should have exclusive use of the CPU for the next small slice of time, and it is doing this over and over again. This activity is called CPU Scheduling.
This article discusses how you can influence CPU scheduling to benefit all your windows services, as well as any application running as a windows service with AlwaysUp.
Give All Windows Services More CPU Time
While Windows manages CPU scheduling automatically, you can specify which types of tasks get more processing resources via a setting on the Control Panel. To find the setting:
Open Control Panel
Click System and Security
Click Advanced system settings on the left to open the System Properties window
Switch to the Advanced tab
In the Performance section, press the Settings… button to open the Performance Options window
Windows offers a single choice: Do you want to give preferential treatment to regular, foreground programs (like Word and Excel) or to background windows services? A desktop PC, actively driven by a person expecting his applications to be very responsive is better off choosing Programs. However your AlwaysUp-managed applications will likely perform better with the Background services option as they are being run in the background as Windows Services. Please apply that setting to your system if necessary.
Give your Important AlwaysUp Application More CPU Time
Windows performs priority based round robin CPU scheduling. Each process has an assigned priority (from idle to real-time) and Windows tries to assign available CPU cycles to the higher priority processes whenever it can. However, since almost all processes on the typical computer run with normal priority, the reality is that CPUs are offered equally to the majority of the active processes.
But why should the print spooler or the time synchronization service be given a CPU while your mission-critical application is left waiting in line?
Fortunately AlwaysUp can be configured to run your application at a higher priority, to ensure that it gets more processing power than less time-sensitive processes. To make the change, edit your application and find the Set the priority to setting on the General tab:
We recommend setting the priority to Above Normal or High to give your application preferential treatment.
Note: As Microsoft counsels, the Realtime option should be used with extreme caution as it may have unintended side effects.