I've not seen it take that long.
Is SQL Server on the same box as your SCCM install?
Thank you for your response,
The SQL Server is on the same box as the Site Server. The Management and Distribution Points are on a different server that has an SQL replica.
So the data access is happening on the same box as the console.
Can you post the server stats?
Ram, CPU, Disk, etc....
Also what is the memory limits set to in SQL? It should be a minimum of 8 and you can limit it to between and 16 if you have the ram for that.
Here is the how to for that.
It should be specced well above the minimum requirements, Server 2012, a san-based virtual vmware box, 4 CPUs 12gigs ram.
SQL memory limit is set to 8gig.
The environment is still being established so we have no actual users on it and consequently the servers should have little actual work to do.
So the SQL Server data is sitting on the sans? Can you check your disk io?
1 gig min for OS
2 gigs min for SCCM
8 gigs min for SQL Server
You are pretty close to the minimums.
ok,
This is on the client going to software center or app cat?
That might be your issue. It should be enabled and set to at least weekly. Every time you add an app without the index being rebuilt it will increase the SQL query time.
Excellent suggestion and great link. I really thought this was it.
I configured the task and confirmed in smsdbmon.log that it has been executed. I could also see in the log that the indexes were, in fact, very fragmented.
Unfortunately, it did absolutely nothing to the Software Center performance :(
SQL Server perf has nothing to do with Software Center perf. The Software Center is a client local process populated from the client system's local policy which was downloaded previously and stored in WMI and not on demand.
Which client OS are you running on?
Have you compared times between a pre-existing system and a freshly installed system?
The clients are running windows 7, they are all fresh installations but they have been provisioned with the 2007 client and then upgraded to 2012, I have yet to test it on a machine that has never run 2007.
It is very interesting that the lookup is completely local, however.
For our 2007 environment we ran a small webservice which basically just returns the content of Run Advertised Programs in a more readable format as a webpage and this webservice actually still works when called from a 2012 client, and it returns the advertisements/deployments instantly. RAP was always a little slow for us as well although not to the same extent (perhaps 1-2 minutes for 500 advertisments) so I always assumed it was pulling it from the server. I guess this means it is a client side issue and possibly a carry-over from our 2007 environment.
Is there a Software Center log somewhere?
Many thanks.
From _SCClient_xx.log I can see that it is the wmi query for CCM_Program that is the culprit.
Logentry: "Executing WMI query: Select * From CCM_Program (Microsoft.SoftwareCenter.Client.Data.WmiConnectionManager at ExecuteQuery)" takes roughly 2 minutes and it runs at least twice every time Software Center is refreshed.
Running:
get-date;$progs = Get-WmiObject -namespace "root\ccm\ClientSDK" -query "Select * From CCM_Program";write-host ("programs: {0}" -f$progs.count);get-date
in powershell I confirmed that it is the wmi query itself which is taking its sweet time. It takes roughly 2 minutes for 520 programs on a freshly installed beefy laptop.
In comparison,
$UIResManager = New-Object -comobject "UIResource.UIResourceMgr";get-date;$progs = $UIResManager.GetAvailableApplications();write-host ("programs: {0}" -f$progs.count);get-date
Only takes about 20-30 seconds.
And the webservice we used on 2007 was based on this query:
get-date;$progs = Get-WmiObject -namespace "root\ccm\policy\machine\actualconfig" -query "Select * From CCM_SoftwareDistribution";write-host ("programs: {0}" -f$progs.count);get-date
Which takes less than a second to run...SMH
Yes, some were deployed with CU1 and then upgraded, others were upgraded from the 2007 client to the 2012 CU2 client (using your excellent startup script).
Note that our migrated 2007 packages have not been converted to applications (we plan to leave the 'legacy' packages in their current format and apply the application model to future applications) and it is the CCM_Program query which is causing the hangup. As far as I can tell, CCM_Program contains package data while CCM_Application contains application data.
Is there any reason to think that deployments to packages should perform significantly worse than deployments to applications?