Updated: Feb 17, 2014
There are a few questions I hear from System Center 2012 Service Manager (SCSM) customers all the time, like.
How can I make the SCSM Admin Console more responsive?
Can I host the SQL databases (DB and data warehouse) on the same server?
What settings can I tweak to make my SCSM perform better and scale further?
Why is my console responding so slowly?
There are definitely a number of steps you can take that will make a big difference.
Optimize Your Infrastructure for Top SQL Performance
Like most System Center 2012 components, Service Manager is database-driven. Poor database performance will impact every aspect of workflow and the user experience (for end users, analysts and admins). Optimizing the backend for performance will ensure happier users on the frontend.
- Separate database and log files, and put them on separate LUNs or arrays to provide dedicated disk I/O to each
- Don’t skimp on disk subsystem. Opt for SCSI, SAS and SSD over SATA.
- Avoid using autogrow on Service Manager databases altogether. Statically set the DB size and monitor for free space with SC 2012 OpsMgr
- Do NOT use a shared server for the DB and data warehouse. I’ve never seen this work out well at high scale. You can co-locate and play with multiple instances, processor affinity, etc., but it’s easier to just separate the DB roles to separate servers.
- Move TempDB to it’s own RAID 1 volume with it’s own IO (separate LUN if on a SAN)
- Break TempDB into multiple files. Try 1 file for every 2 cores.(added Mar 22, 2014)
- Provide at least 8GB ram to the management server that hosts the SCSM database to ensure consoles are responsive
- Provide at least 8 cores to the computer hosting the DB
- If you virtualize the role, don’t overcommit resources. MS has some SQL virtualization best practices for you.
- Matt McSpirit covers a few tips in this session at http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/VIR322.
- Here’s a more recent edition with speakers from the community http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B328#fbid=Bop_lsidQtj
MS covers several of these recommendations at http://technet.microsoft.com/en-us/library/hh519624.aspx
Size Your Management Servers Appropriately
Per Microsoft: “You should have 8 GB of RAM for the management server. You should have at least 4 CPU cores per management server, assuming that you have 10 to 12 active consoles per CPU core.”
Reduce Frequency of Group Membership Polling Interval
Group membership is checked every 30 seconds by default, so in large SCSM deployments, it seems obvious this could affect performance. This is actually the same concept we use in System Center 2012 Operations Manager (OpsMgr) to improve performance at high scale. (Remember, SCSM was originally based on a version of the OpsMgr 2007 platform, so some of the internal workflow is the same in some respects.)
To manually specify the group change check interval
- Run Regedit, and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\System Center\2012\Common\.
- Create a new DWORD value named GroupCalcPollingIntervalMilliseconds.
- For its value, specify the interval in milliseconds. The result is multiplied by 6. For example, to set the interval to 10 minutes, type 1000000.
- Restart the System Center Management service.
Additionally, you could use static group membership for large group, but I would recommend reducing the interval before you take that next step.
Connectors (new Mar 22, 2014)
The native connectors in SCSM that are critical in the initial population and lifecycle management of your CMDB can degrade performance if not configured according to MS recommendations. Tips for optimizing performance from a
- Stagger connector schedules – You can control the hour of the day the connectors run. Spreading out the connector run schedules will reduce processing load at any given time.
- Use LDAP filters in the AD Connector – Using an LDAP query to filter which user, computer and group objects are imported. Bringing in the entire AD domain likely means you are bringing in dead accounts. If your AD administrators have an area where they move aging / disabled / archived objects, you should avoid targeting your AD Connector to the OUs those objects are stored in. Details at http://technet.microsoft.com/en-us/library/hh519802.aspx
- Do Not synchronize null values with the SCCM CI Connector – In the SCCM CI Connector configuration you can select to synchronize (or not synchronize) null values. Select the ‘Do not write null values…’ checkbox to avoid CIs being modified every time the connector runs.
- Disable DCM Rule – If you are not planning on auto-creating incidents with SCCM Desired Configuration Management (aka Settings Management in SCCM 2012), disable the DCM rule in SCSM. Instructions at http://blogs.technet.com/b/mihai/archive/2012/11/30/configuration-manager-connector-s-dcm-rule-can-cause-massive-performance-issues-in-service-manager.aspx
- Choose the right target collection for the SCCM Connector – It’s easy to simply pick the ‘All Systems’ collection to get everything from SCCM, but think about which systems you want to manage and consider using a more targeted (smaller) collection of active objects.
- Whitelist conservatively with the SCOM CI Connector – The whitelist process allows you to import new classes across the SCOM CI Connector for use in asset management and developing an optimal self-service user experience. Just don’t get carried away. Whitelisting to many classes can end in CMDB bloat.
Enable and Encourage E-mail Workflow
The Exchange Connector in SCSM enables e-mail driven workflow for all classes of work items. Set it up, tell your users about it and how to use it. This will reduce traffic to the Self-Service Portal, which is not designed for processing a high number of simultaneous requests. Likewise, this may save your analysts a few trips to the console, reducing traffic from probably your heaviest user…the analyst.
Be Smart with Your Customizations & Use Search
Custom views, when created without performance in mind, can result in a substantial negative impact. I’ve seen some nasty ones in the real world. Learn about how to leverage filtering by related object properties and type projections from these two articles
Use the Search feature to look for work items rather than opening the All Incidents view.
And a final tip about the console…
Don’t put the SCSM Admin Console into full screen mode, as a bug there will cause some memory consumption issues. Size your console to near full screen when it’s not in full screen mode and you will be better for it. Teach this tip to your analysts as well. The corner of the console should look like this:
not like this
Have a performance tip of your own? Leave them as comments on this post.