none
Is Software Inventory Slower in 2012? RRS feed

  • Question

  • When I compare Configuration Manager 2007 and 2012, Software Inventory is much slower in 2012.
    I have similar results in production and play environments.
    I want to know whether my environment is behaving normally and if others see similar results.
    (Maybe it takes longer to lessen the impact on the client machines.)

     

    In Configuration Manager 2007 Software Inventory is finished in 7 minutes.
    We have many rules. The 7 minutes are mostly spend on *.exe.

    Collection: Namespace = \\.\root\ccm\invagt; Query = SELECT Name, Path, LastWriteDate, Size, CompanyName, ProductName, ProductVersion, ProductLanguage, FileVersion, FileDescription FROM FileSystemFile WHERE Name = '*.exe' AND Path = '*\\*' AND IsCompressed = FALSE AND IsEncrypted = FALSE; Timeout = 14400 secs.

    In Configuration Manager 2012 it takes at least 7 hours.

    Most of that is spend on a few queries:

    Collection: Namespace = \\.\root\ccm\invagt; Query = SELECT Name, Path, LastWriteDate, Size, CompanyName, ProductName, ProductVersion, ProductLanguage, FileVersion, FileDescription FROM FileSystemFile WHERE Name = 'socks.cnf|PowerscribeSDK.dll|ctmw32.dll|lsasrv.dll' AND Path = '%systemroot%\\system32\\' AND IsCompressed = FALSE AND IsEncrypted = FALSE; Timeout = 14400 secs.
    --> this is a combination of 4 rules.

    Collection: Namespace = \\.\root\ccm\invagt; Query = SELECT Name, Path, LastWriteDate, Size, CompanyName, ProductName, ProductVersion, ProductLanguage, FileVersion, FileDescription FROM FileSystemFile WHERE Name = '*.exe' AND Path = '*\\*' AND IsCompressed = FALSE AND IsEncrypted = FALSE; Timeout = 14400 secs.

    Collection: Namespace = \\.\root\ccm\invagt; Query = SELECT Name, Path, LastWriteDate, Size, CompanyName, ProductName, ProductVersion, ProductLanguage, FileVersion, FileDescription FROM FileSystemFile WHERE Name = 'emUSD.dll|wuaueng.dll|sysybnt.dll' AND Path = '%systemroot%\\system32\\'; Timeout = 14400 secs.

    And some time before the first query starts (just after Inventory: Initialization completed in 17.551 seconds)

     

    Sometimes it can take 72 hours to finish Software Inventory. I have a case open by MS to solve that issue.
    InventoryAgent.log contains these lines:
    CThrottler::Throttle()[{C0ED66AD-8194-49FD-9826-D0DD38AB7DAA}] - soft timeout exceeded. Throttling is now disabled for the current iteration of this task.
    And even a simple query can take 2 hours to finish. Example:
    Collection: Namespace = \\.\root\ccm\invagt; Query = SELECT Name, Path, LastWriteDate, Size, CompanyName, ProductName, ProductVersion, ProductLanguage, FileVersion, FileDescription FROM FileSystemFile WHERE Name = 'ccm_caltrack.dll.rnm' AND Path = '%systemroot%\\syswow64\\ccm\\'; Timeout = 14400 secs.

    Friday, June 7, 2013 8:49 AM

Answers

  • Yes.

    MS Support saw the same behavior in their labs and conluded this is normal.
    But they gave me a workaround to disable throttling.

    We did a test with this mof provided by them:

     #pragma namespace ("\\\\.\\root\\ccm\\policy\\machine")

      Class CCM_Service_ResourceProfileConfiguration
      {
       [key] uint32 DummyKey;
       boolean ThrottleTasks;
      };

      instance of CCM_Service_ResourceProfileConfiguration
      {
       DummyKey = 1;
       ThrottleTasks = FALSE;
      };

    This demonstrated the principle, but these settings could be overwritten by cm12.
    I wrote this mof and have put it in configuration.mof because this seemed the easiest method to compile it on every machine:

    #pragma namespace ("\\\\.\\root\\ccm\\policy\\machine\\requestedconfig")

     [CCM_Policy_PartialPolicy(true)]
     instance of CCM_Service_ResourceProfileConfiguration
     {
      DummyKey = 1;
      PolicySource = "Local";
      PolicyID = 1;
      PolicyVersion = 1;
      PolicyRuleID = 1;
      PolicyInstanceID = 1;
      
      [CCM_Policy_Override(true)]
      ThrottleTasks = FALSE;
     };

    • Marked as answer by koenraadrens Friday, July 12, 2013 7:43 AM
    Friday, July 12, 2013 7:43 AM

All replies

  • if you have opened a case with MS support, then I don't recommend that you work on it here too.

    http://www.enhansoft.com/

    • Proposed as answer by Mike Laughlin Friday, June 7, 2013 1:23 PM
    Friday, June 7, 2013 10:44 AM
    Moderator
  • Was there any resolution to this issue?  I'm having the same issue with SINV never completing.  I get this in the FileSystemFile.Log:

    CThrottler::Throttle()[{58E2FE09-07BB-4ADB-8A93-E49C5BF2301F}] - soft timeout exceeded. Throttling is now disabled for the current iteration of this task. 7/11/2013 2:21:49 PM

    If I attempt a Full or Delta SINV, I get this in the InventoryAgent.Log:

    Inventory: Message [Type=InventoryAction, ActionID={00000000-0000-0000-0000-000000000002}, Report=Delta] already in queue. Message ignored.


    Terry Wallner

    Thursday, July 11, 2013 9:32 PM
  • Yes.

    MS Support saw the same behavior in their labs and conluded this is normal.
    But they gave me a workaround to disable throttling.

    We did a test with this mof provided by them:

     #pragma namespace ("\\\\.\\root\\ccm\\policy\\machine")

      Class CCM_Service_ResourceProfileConfiguration
      {
       [key] uint32 DummyKey;
       boolean ThrottleTasks;
      };

      instance of CCM_Service_ResourceProfileConfiguration
      {
       DummyKey = 1;
       ThrottleTasks = FALSE;
      };

    This demonstrated the principle, but these settings could be overwritten by cm12.
    I wrote this mof and have put it in configuration.mof because this seemed the easiest method to compile it on every machine:

    #pragma namespace ("\\\\.\\root\\ccm\\policy\\machine\\requestedconfig")

     [CCM_Policy_PartialPolicy(true)]
     instance of CCM_Service_ResourceProfileConfiguration
     {
      DummyKey = 1;
      PolicySource = "Local";
      PolicyID = 1;
      PolicyVersion = 1;
      PolicyRuleID = 1;
      PolicyInstanceID = 1;
      
      [CCM_Policy_Override(true)]
      ThrottleTasks = FALSE;
     };

    • Marked as answer by koenraadrens Friday, July 12, 2013 7:43 AM
    Friday, July 12, 2013 7:43 AM
  • Sorry koenraadrens, I'm not very expert in this area. Could you elaborate further how you made these changes?

    e.g. where is the "configuration.mof"?  Thanks

    I found something similar here which may be of use too: http://www.mnscug.org/blogs/sherry-kissinger/287-cm12disableinventorythrottling

    But is it a case of disabling or enabling throttling? It can't be tweaked instead?

    • Edited by dude -d Thursday, January 30, 2014 9:42 AM
    Thursday, January 30, 2014 9:24 AM
  • This is the default mof file which is needed for some parts of the hardware inventory.
    In this case I abuse this file because I'm familiar with it's functionality.

    You can find this on your site server in \\siteserver\SMS_ABC\inboxes\clifiles.src\hinv
    Where siteserver is the name of your site server and ABC is your sitecode.

    An alternative could be to put this in a seperate file xxx.mof
    And the make a package to execute mofcomp.exe xxx.mof on every machine you want to this changed.

    Thursday, January 30, 2014 9:45 AM