After investigating the HealthService CPU issue described in my previous post, I created a rule to collect HealthService Processor usage counter on our customers environment. What I found was, that I still have some Servers with abnormal CPU usage. All those servers are running ISA 2006, so I looked inside the ISA 2006 MP (version 6.0.6351.0) to see if there is a Discovery issue.
I found 2 discoveries that update a property every time they run :
1) Microsoft.ISAServer.2006.Array.Discovery : the following is a code snipped taken from the ISA MP. As you can see the property EnterprisePersistentName is updated with a string concatenation using, PersistenName taken from Enterprise Object and the difference in senconds between the installation date and the current time :
Call objIsaArrayClass.AddProperty(“$MPElement[Name=’Microsoft.ISAServer.2006.Array’]/EnterprisePersistentName$”, objEnterprise.PersitentName & “_” & DateDiff(“s”, objEnterprise.CreatedTime, Date & ” ” & Time))
2) Microsoft.ISAServer.2006.CSS.ServerRole.Discovery : the following is a code snipped taken from the ISA MP. As you can see the property EterpriseHostedPersistentName is updated with a string concatenation using, PersistenName taken from Enterprise Object and the difference in minutes between the installation date and the current time :
m_EnterpriseHostedPersistentName = enterpriseObj.PersistentName & “_” & DateDiff(“n”,enterpriseObj.CreatedTime, Date & ” ” & Time)
Call cssServerRoleInst.AddProperty(“$MPElement[Name=’Microsoft.ISAServer.2006.CSS.ServerRole’]/ EnterpriseHostedPersistentName$”, m_EnterpriseHostedPersistentName)
Those discoveries run every 15 minutes, I changed with an override the interval to 6 hours and I saw a benefit in term of CPU usage. I tried to understand why those properties are built in this way but I didn’t find a good answer.