Tuesday, 25 December 2012

Slow Altiris Web console - Improve Performance

Symantec Solutions based on the Symantec Management Platform can be really demanding on memory, which can have a very adverse impact on production server (systems with an few hundred agent workload) because the Application Pool default configuration causes memory attrition.

The memory attrition is most noticeable in the Web Console, but can also be seen on the server itself with a CPU usage reaching 75 to 100% by the w3wp.exe and a process memory consumption above the 1.1 GiB mark.

This problem is due to a limitation within the .Net framework itself, and varies depending on the count of objects managed by the framework (between 1.1 and 1.3GiB of memory). Once .Net reaches the memory ceiling it spends a lot of time trying to find memory via garbage collection or other internal processing which has a direct impact on the handling of http requests and crafting the http responses.

To avoid this type of problems and optimize the web console experience Symantec recommends implementing additional application pools to partition the Altiris web-applications that are consuming a significant amount of memory or that can be impacted by sharing the default application pool. This way we increase the memory available to the Symantec web-application from 1 x 1.1 GiB to 5 or 6 x 1.1 GiB (which is never used in full with the new configuration)

Scripted configuration of the Application pools:

Here is a script that will implement the application pools as described above:

@echo off
set appcmd=%comspec%\..\inetsrv\appcmd

%appcmd% add apppool -name:Altiris-NS-Agent
%appcmd% set apppool Altiris-NS-Agent -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/NS/Agent" -applicationPool:Atiris-NS-Agent

%appcmd% add apppool -name:TaskManagement
%appcmd% set apppool TaskManagement -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/TaskManagement" -applicationPool:TaskManagement
%appcmd% set app "Default Web Site/Altiris/ClientTaskServer" -applicationPool:TaskManagement

%appcmd% add apppool -name:ActivityCenter
%appcmd% set apppool ActivityCenter -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/ActivityCenter" -applicationPool:ActivityCenter

%appcmd% add apppool -name:PatchManagement
%appcmd% set apppool PatchManagement -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/PatchManagement" -applicationPool:PatchManagement
%appcmd% set app "Default Web Site/Altiris/PatchManagementCore" -applicationPool:PatchManagement
%appcmd% set app "Default Web Site/Altiris/PatchManagementMac" -applicationPool:PatchManagement

%appcmd% add apppool -name:SoftwarePortal
%appcmd% set apppool SoftwarePortal -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/SoftwarePortal" -applicationPool:SoftwarePortal

%appcmd% add apppool -name:ITAnalytics
%appcmd% set apppool ITAnalytics -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/ITAnalytics" -applicationPool:ITAnalytics
%appcmd% set app "Default Web Site/Altiris/ITAnalyticsCSMP" -applicationPool:ITAnalytics
%appcmd% set app "Default Web Site/Altiris/ITAnalyticsSEP" -applicationPool:ITAnalytics

Here is a script that will revert the application pools to the default App pool

@echo off

set appcmd=%comspec%\..\inetsrv\appcmd

%appcmd% set app "Default Web Site/Altiris/NS/Agent" -applicationPool:"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/TaskManagement" -applicationPool"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/ClientTaskServer" -applicationPool"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/ActivityCenter" -applicationPool:"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/PatchManagement" -applicationPool:"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/PatchManagementCore" -applicationPool:"Classic .NET Apppool"

%appcmd% set app "Default Web Site/Altiris/PatchManagementMac" -applicationPool:"Classic .NET Apppool"

%appcmd% set app "Default Web Site/Altiris/SoftwarePortal" -applicationPool:"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/ITAnalytics" -applicationPool:"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/ITAnalyticsCSMP" -applicationPool:"Classic .NET AppPool"

%appcmd% set app "Default Web Site/Altiris/ITAnalyticsSEP" -applicationPool:"Classic .NET AppPool"

Credit goes to : http://www.symantec.com/connect/articles/how-implement-custom-application-pools-smp-improve-web-console-performance

Please be so kind to click on an Advertisement  if you find this information useful. It allows me to keep buying those nifty tech tools :-)



No comments: