If your process is not getting enough CPU to run, one of three things is likely occurring.


Background tasks are not given priority

Your Windows system may not be set up to give background tasks priority (i.e. services priority). This is normally set on server versions on Windows. To check this, visit the Windows Control Panel and select System, then Advanced System Settings. Select System Properties and navigate to the Advanced Tab. From there, choose Performance and then Advanced Tab, and select Adjust for best performance of background services.


This will adjust the Windows CPU scheduler "quantum" for non-foreground processes.


FireDaemon Affinity Mask is set incorrectly

Normally an app will be given access to all processes/cores of your machine in the default FireDaemon service setup. Perhaps you have set the priority to only a subset of processes/cores. To address this check the Process Tab from the Settings area in FireDaemon. CPU Binding should be all zeros.



You should also check the Process Affinity via the Task Manager and ensure that the process is bound to all cores. To do this run the Task Manager and go to the Details tab. Right click on the subprocess you are running under FireDaemon control and choose "Set Affinity".


Make sure all CPUs are checked, as seen below.



FireDaemon Process Priority is set incorrectly

Related to the background processes not being given priority, your FireDaemon process priority may need to be changed. Right click FireDaemon within your task manager and change the priority to Above Normal or High.


On running FireDaemon inside a virtual machine

If you are running inside a virtual machine, then you need to ensure your virtual machine's vCPU count maps to a physical core or thread count on the underlying hardware. You also need to consider your NUMA setup. Namely, your virtual machine shouldn't extend across multiple physical processors in order to keep access to RAM channel local. Otherwise your virtual machine will need to access RAM on opposite banks which will incur extra page cycles via QPI (assuming you are using a Nahalem or later Intel architecture).