I've geared this post towards Keyclone users a little, but it is applicable to anyone who wants to manually control affinity for any number of cores.
A number of people have experienced issues with setting CPU affinity for processors containing more that four cores when using Keyclone. Currently Keyclone can set affinity for up to four cores on a core-per-client basis. If you want to set your affinity effectively for processors such as the Intel Core i7, or want to be able to spread client load across multiple CPU, you will need to manually set the processAffinityMask variable which can be modified in the %wowinstall%/wtf/config.wtf file.
I should note at this point that the Innerspace tool is capable of managing any affinity configuration and if you choose to use it, this information is not applicable. If you want to continue using keyclone commands, read on...
In order to translate your desired client affinity setup into the correct processAffinityMask it is most easily understood by representing each configuration as a binary number. In the table of examples below, each configuration is represented by the 8 bit string in the yellow columns where:
1 = Use this CPU
0 = Do not use this CPU
Each CPU is numbered as it is in the Windows Task Manager.
I have outlined some common examples rather than every possible combination. Those who are familiar with binary will note that the processAffinityMask is a decimal representation of the eight bits in the yellow columns.
![]()
My personal preference at the moment is to set the mask to 3 for my master (use the first two CPU), 240 for my slaves (use the last four CPU) leaving 2 cores free for Windows to do whatever it wants with.
Once you have decided which affinities to use and have modified your config files you will need to make sure your Keyclone commands are setting CPU affinity to NONE otherwise your custom values will not work.
I am terrible at explaining things clearly so please ask if I have failed to explain something properly.
Connect With Us