Strategy ONE
CPU Affinity for MicroStrategy Web
If you have CPU-based licenses for MicroStrategy Web, the CPU affinity feature allows you to match your CPUs and licenses by choosing which processors MicroStrategy Web uses on a given machine.
This feature is only available in the ASP.NET version of MicroStrategy Web.
This section describes settings that may interact with CPU affinity that you must consider, and provides steps to update CPU affinity in your environment.
CPU Affinity and IIS
Before configuring CPU affinity for MicroStrategy Web, you should understand how the CPU affinity setting behaves on different configurations of IIS, and how it interacts with other IIS settings such as the Web Garden mode.
IIS Versions
CPU affinity can be configured on machines running IIS 6.0 or 7.0. The overall behavior depends on how IIS is configured. The following cases are considered:
- Worker process isolation mode: In this mode, the CPU affinity setting is applied at the application pool level. When MicroStrategy Web CPU affinity is enabled, it is applied to all ASP.NET applications running in the same application pool. By default, MicroStrategy Web runs in its own application pool. The CPU affinity setting is shared by all instances of MicroStrategy Web on a given machine. Worker process isolation mode is the default mode of operation on IIS 6.0 when the machine has not been upgraded from an older version of Windows.
- IIS 5.0 compatibility mode: In this mode, all ASP.NET applications run in the same process. This means that when MicroStrategy Web CPU affinity is enabled, it is applied to all ASP.NET applications running on the Web server machine. A warning is displayed before installation or before the CPU affinity tool (described below) attempts to set the CPU affinity on a machine with IIS running in IIS 5.0 compatibility mode.
This is the default mode of operation when the machine has been upgraded from an older version of Windows.
Web Garden Mode
Both IIS 6.0 and IIS 7.0 support a "Web Garden" mode, in which IIS creates some number of processes, each with affinity to a single CPU, instead of creating a single process that uses all available CPUs. The administrator specifies the total number of CPUs that are used. The Web Garden settings can interact with and affect MicroStrategy CPU affinity.
The Web Garden setting should not be used with MicroStrategy Web. At runtime, the MicroStrategy Web CPU affinity setting is applied after IIS sets the CPU affinity for the Web Garden feature. Using these settings together can produce unintended results.
In both IIS 6.0 and IIS 7.0, the Web Garden feature is disabled by default.
CPU affinity interaction depends on how IIS is configured, as described below:
- In worker process isolation mode, the Web Garden setting is applied at the application pool level. You specify the number of CPUs to be used. A given number of CPUs are specified, and IIS creates that number of
w3wp.exe
instances. Each of the instances runs all of the ASP.NET applications associated with the application pool. The Web Garden feature is configured through the application pool settings. For more information, refer to your IIS documentation. - In IIS 5.0 compatibility mode, a single setting affects all ASP.NET applications. The Web Garden feature is enabled or disabled using the WebGarden and cpuMask attributes under the processModel node in machine.config. A given number of CPUs are specified in the mask, and IIS creates that number of
aspnet_wp.exe
instances. Each of these instances runs the ASP.NET applications. For more information, refer to your IIS documentation.
IIS provides metabase properties (SMPAffinitized and SMPProcessorAffinityMask) to determine the CPU affinity for a given application pool. Do not use these settings in conjunction with the MicroStrategy Web CPU affinity setting.