Más contenido relacionado La actualidad más candente (20) Similar a Professional Services Insights into Improving Sitecore XP (20) Professional Services Insights into Improving Sitecore XP1. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Pro Services Insights
into Improving
Sitecore XP
Sean Holmesby and James Barrow
August 18-19 2022
#sugcon
2. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Sean Holmesby
• 14+ years software development
• 11+ years Sitecore experience
• 9+ years Hedgehog/Sitecore
James Barrow
• 16+ years software development
• 11+ years Sitecore experience
• 3+ years in Sitecore Professional Services
Who are we?
3. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
” –
What is Sitecore Professional
Services?
4. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
xDB Analytics are Missing
XM Usability
Big Big Data (big xDB)
XM Page Performance
Agenda
5. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
This is NOT
a Name and Shame
session
6. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Links for this Session
URL Prefix
• https://bit.ly/SUGCON2022ProServInsights-
• Add Postfix from each link
i.e LINK: Intro
• = https://bit.ly/SUGCON2022ProServInsights-Intro
8. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
xDB Analytics are Missing
9. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
xconnect.collection – LINK: AppRoles
• 9.0-9.2
o CM should point to xConnect Collection Search service,
o CD to xConnect Collection role
• 9.3+
o CM and CD should point to xConnect Collection role
o xconnect.search connection string added to CM, points to xConnect Collection Search
reporting.secondary – LINK: ReportingRebuild
• Only use when doing a Reporting DB rebuild
Check your Connection Strings
10. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
• Connection strings in SMM need to change – LINK:
RenameXdb
• xDB Solr index also has a SyncToken for each shard
• Sitecore.Xdb.Collection.Failures.IncompatibleSyncTokensException: Tokens are
incompatible, they have different set of shards.
• Rebuild the xDB Index from the xConnect Collection Search IndexWorker
• Sitecore.XConnectSearchIndexer.exe -rr
LINK: RebuildXdbIndex
Shard DBs changed
11. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
• Configure processing agents
• Increase maxAgents on
o aggregation/aggregator
o aggregation/contactProcessing
• LINK: ProcessingAgents
Configure batch aggregation
• maximumBatchSize and MultiplexingTimeout
• LINK: Batching
Tune your Processing and Aggregation
12. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
• Hotfixes
• Beware of conflicting hotfixes/patches
• Always check with Sitecore Support before using a Patch or Hotfix
• Support will validate your current environment to ensure the hotfix
is compatible
• Read the release notes, to understand what the fix is doing!
When upgrading it is important to check your installed
hotfixes against the release notes of the Sitecore version.
Known Issues
13. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
• Analytics Performance Optimization – 9.0 – 9.1
• SC Hotfix 307949-1 – LINK: AnalyticsPerf
• Error when saving a contact to xDB - 9.0-9.3
• ERROR General error when submitting contact.
Exception: Sitecore.XConnect.Operations.FacetOperationException
Message: Operation #0, AlreadyExists, <ContactId>, Classification
• [TIMESTAMP value] [Error] Sitecore.XConnect.Operations.AddContactOperation: Sitecore.XConnect.Operations.EntityOperationException:
Operation #0, AlreadyExists, Contact
[TIMESTAMP value] [Error] Sitecore.XConnect.Operations.SetFacetOperation`1[Sitecore.XConnect.Facet]:
Sitecore.XConnect.Operations.FacetOperationException: Operation #1, ReferenceNotFound, Contact, Classification
• LINK: XdbContactError
Device Profile conflict exception - 9.0-9.2
• ERROR PostSessionEndPipeline failed.
Exception: Sitecore.XConnect.Operations.EntityOperationException
Message: Operation #0, Conflict, DeviceProfile {c8b3cd10-631e-4c0d-9efe-53e8b7a1b97b}
• LINK: DeviceProfile
Known Issues
14. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
• Excessive load on ASP.NET Session State store – LINK: LoadedSession
Excessive usage of threads on session expiration – 9.2 – LINK: SessionThreads
• Dedicated CD for session expiry: LINK: DedicatedCDForSession
o pollingEnabled: true, but false on other CDs
Redis Specific Issues
• Driver timeout issues: Hotfixes and Tuning - 8.0+: LINK: RedisTimeout
o Example:
operationTimeoutInMilliseconds="5000“
retryTimeoutInMilliseconds="16000“
connectionTimeoutInMilliseconds ="3000“
pollingMaxExpiredSessionsPerSecond="20"
• Split private and shared session into two databases:
• LINK: RedisCache
Known Issues
16. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
XM Usability – Make it a pleasant experience
17. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
XM Usability – Make it a pleasant experience
Add Insert Options
Add Placeholder Settings
Modify Access Rights
Ensure the Experience Editor works
Less than 100 child items
… and
18. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Use Icons!!!
Credit:@victornguyen on Twitter
LINK: Icons
19. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
XM Usability – Performance
Tune Prefetch caches
• Better performance for Content Editor/Experience Editor
Publishing DeepScan
• <setting name=“Publishing.DeepScanRelatedItems” value=“false” />
Disable child items
• <setting name=“ContentEditor.RenderCollapsedSections”
value=“false” />
20. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
XM Usability – Performance
Disable Performance Counters when not required
• <setting name=“Counters.Enabled” value=“false” />
• <agent type=“Sitecore.Tasks.CounterDumpAgent” interval=“00:00:00” />
Disable Show Locked Items Count
• <setting key=“WebEdit.ShowNumberOfLocksItemsOnButton”
value=“false” />
Disable the show suggested test index – LINK: SuggestedTestIndex
21. Big Big Data (big xDB)
• With big data comes...
• Big Responsibility.
21
22. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Big xDB is Big
23. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
How big are your xDB Shards?
Per Month, how many
• Visitors
• Page Views / visitor
• Recurring visitors / month
What is a typical size of a DB Contact and DB Interaction?
How much will it grow?
24. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
xDB Shards
Only get 2 shards by default
Could start with more shards (across same server – move
to different servers)
From 9.3+ - Split shards and rebalance the data
• LINK: SplitXdb
25. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Potentially more Data than required
Robots not being detected
Health Checks / pings being tracked – LINK: Robots
• <excludedIPAddresses>
10.1.2.3
12.9.2.2
</excludedIPAddresses>
• <excludedUserAgents>
UserAgent 1.0
UserAgent 2.0
</excludedUserAgents>
Pages / API endpoints that don’t need to be tracked – LINK: Tracking
• <tracking>
<untrackedPages>
<add path="/sitecore/service/error.aspx" />
<add path="/sitecore/service/Heartbeat.aspx" />
<add path="/sitecore/service/keepalive.aspx" />
</untrackedPages>
</tracking>
26. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Potentially more Data than required
Interaction Sizes
• Large number of personalization rules on a page
• Large number of Events being triggered
• Failed static assets giving 404/500 pages that are tracked
27. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Personalization in Interaction Data
{
"@odata.type": "#Sitecore.ContentTesting.Model.xConnect.PersonalizationEvent",
"CustomValues": [],
"DefinitionId": "0fd3ef44-6c4a-40ce-8f97-6197bd9c61f2",
"Id": "efb4362a-5f60-46ab-94a7-370c81ef4701",
"ParentEventId": "f8d4656c-65cb-4ae0-a6fc-ee4b3b885d3c",
"Timestamp": "2022-03-21T03:26:13.8015913Z",
"ExposedRules": [
{
"RuleSetId": "35f61c9a-8b13-49bf-9d5a-69f473e10901"
},
{
"RuleId": "09dbe58b-f4ca-42cb-937f-d1bad1fb973b",
"RuleSetId": "99419a71-8b85-4745-affc-4905340ea9ff"
},
{
"RuleId": "6409d304-dd81-46eb-8831-ef895bcb7cf8",
"RuleSetId": "5ad65f27-0de6-46f5-baea-927a485178a8"
},
{
"RuleSetId": "1a265bed-02fa-4202-8685-16c0dc8a3e69"
},
{
"RuleSetId": "98682cfa-dc55-4304-bf64-7e1284b44de1"
28. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Tracking static files in Interaction Data
{
"@odata.type": "#Sitecore.XConnect.Collection.Model.PageViewEvent",
"CustomValues": [],
"DefinitionId": "9326cb1e-cec8-48f2-9a3e-91c7dbb2166c",
"ItemId": "a0d2deab-0aa5-415c-a1ba-83a20ab2d622",
"Id": "420c0615-e8f8-4059-3578-ca2c6adea07d",
"Timestamp": "2022-03-21T03:28:33.7057969Z",
"ItemLanguage": "en",
"ItemVersion": 3,
"Url": "/scripts/src/bootstrap.bundle.min.js",
"SitecoreRenderingDevice": {
"Id": "be5d7dbf-89c0-4a99-9ac3-b5fbd129c8f1",
"Name": "Default"
}
},
29. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Potentially more Data than required
Logging of errors
• <setting name=“Analytics.LogLevel” value=“None” />
• Sitecore.Analytics.Pipelines.HandlePageError.RegisterPageErrorP
rocessor
Logging of Page Not Found
• Sitecore.Analytics.Pipelines.HandlePageNotFound.
RegisterPageNotFoundProcessor
Logging of long running requests
• <setting name=“Analytics.LongRunningRequest” value=“5000” />
30. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Potentially more Data than required
31. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
But these already Exist in xDB.. What now?
Find the excessive number of Interactions – LINK: ExcessiveInteractions
xConnect Purging Tool – LINK: PurgeTool
• 10.1 – Contacts with no recent interactions
• 10.2 – Specific Interactions
Sitecore Analytics Database Manager (ADM) – LINK: ADM
Professional Services engagement
• (for pre-Sitecore 10)
• SQL scripts to do the equivalent
Shard Splitter or Start Fresh
32. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Content Testing with Personalization
33. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Disabled by Default
To disable – LINK: DisableContentTests
• <setting name="ContentTesting.AutomaticContentTesting.Enabled"
value="false" />
‘Test’ items will be saved to
• /sitecore/system/Marketing Control Panel/Test Lab
34. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Big xDB Symptoms and Fixes
Large Session Size causing timeouts – LINK: LargeSession
Compression to fix timeouts – LINK: CompressionSession
Async Redis session state provider – LINK - AsyncRedis
36. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
XM Page Performance
37. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Sitecore is still Sitecore
CMS Performance Tuning Guide from 7.0 – LINK: CmsTuning
• Still valid
• SQL Indexes and Maintenance
• DB Properties
• Caches
• IIS Settings
• Client Optimizations
o Use SPE reports to find large number of versions, or bucketable items
• CD Optimizations (mostly included in patch files now)
o CD IndexUpdate strategies to manual
IgnoreUrlPrefixes
CDN
Managed Cloud Best Practices – LINK: AzureBestPractice
38. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Finding Performance Issues
Use Rule-Based configs – LINK: RuleBasedConfigs
• ShowConfigLayers – showconfig for CD – LINK: ShowConfig
o Or Sitecore Config Builder tool – LINK: ConfigBuilder
Admin Pages – LINK: AdminPages
• /sitecore/admin/stats.aspx
• /sitecore/admin/cache.aspx
• /Sitecore/admin/pipelines.aspx
CD equivalents by enabling
/App_Config/Sitecore/CMS.Core/Sitecore.Diagnostics.config
39. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Fixing Performance Issues
Caches should be 70-80% full
Don’t ignore ‘cache is cleared’ messages in the logs
• May need to increase a cache size like AccessResultsCache or
QueryStringCache
• Or if it’s allowed, disable item permissions checks on the CD
instance – LINK: AccessResultCache
Cache Renderings appropriately
• Watch out for nested components that shouldn’t be cached
41. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Fixing Performance Issues
Precompile MVC Views (or disable for faster startup)
Find SQL Index fragmentation issues
• Add padding to rebuilt indexes – LINK: DBPerf
Azure SQL – Add a SQL DB Maintenance Plan – LINK:
AzureSQLMaintain
42. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
Final Thoughts
Would ‘Sitecore Personalize’ suit you
Test
Decompile
Subscribe
• To the security bulletin – LINK: SecurityBulletin
Check with Support
• Run any hotfixes/patches by them
Get in Touch with Sitecore Professional Services or a Partner
43. © 2022 Sitecore User Group Conference ANZ and its respective speakers. All rights reserved.
I am a proud community member! Please contact me on the following handles:
sitecorechat.slack.com twitter sitecore.stackexchange.com
How can you find us?
@James Barrow @sholmesby @seanholmesby sean-holmesby