3. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
… is max / chris and I‘m working at netzkern in the consulting department. I‘m a
former Sitecore developer and worked a lot with the Sitecore Backend…. (TBD)
I‘m happy to be here today and use the next 30 minutes to show you some insights
into Monitoring a Sitecore Application.
My name …
4. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
% Anstieg der Abbrecher-Quote
0%
5%
10%
15%
20%
25%
30%
35%
40%
2 bis 4 Sek. 2 bis 6 Sek. 2 bis 8 Sek. 2 bis 10 Sek.
% Anstieg der Abbrecher-Quote
5. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Einfluss bei einer längeren Response Time von 1 Sekunde
-11%
-7%
-16%
-18%
-16%
-14%
-12%
-10%
-8%
-6%
-4%
-2%
0%
Page Views Conversions Customer Satisfaction
6. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
ouch
75% haben in Stoßzeiten lieber zu einem
Mitbewerber gewechselt, anstatt zu warten.
Mehr als ein Drittel haben anderen davon
erzählt.
88% der User kommen nach einer schlechten
Erfahrung wahrscheinlich nicht mehr wieder
7. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Warum optimize
Optimierte Seite Nicht optimierte Seite
Bounce Rate 13,38% 14,35%
Pages pro Visit 15,64% 11,04%
Durchschnittliche
Aufenthaltsdauer
0:30:10 0:23:50
10. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Sitecore Counters
Sitecore.Kernel.Counters
(Sitecore CMS Performance Counters)
Sitecore.Analytics.Counters
(Sitecore Analytics Counters)
Sitecore.Analytics.MongoDb
(Sitecore Analytics MongoDB
Counters)
Sitecore.HealthMonitor
(Sitecore Memory Usage Counters)
Counters:
Beispiele:
Category Name Description
Sitecore.Caching Cache Hits / sec Total number of cache hits for all caches.
Sitecore.Caching Data Cache Clearings / sec
Total number of times that an instance of a data cache has been
cleared.
and 19 more ...
Sitecore.Data Data | Client Data Reads / sec The total number of client data values that have been read.
Sitecore.Data Links | Fields Examined / sec The total number of fields that have been scanned for links
and 17 more ...
Sitecore.Jobs Jobs | Jobs Executed / sec The total number of jobs that have been executed.
Sitecore.Jobs Pipelines | Pipelines Aborted / sec The total number of times a pipeline was aborted.
And 9 more…
Sitecore.Presentation Rendering | Controls Rendered / sec The total number of Sitecore controls rendered.
Sitecore.Presentation
Rendering | Controls Rendered From
Cache / sec
The total number of Sitecore controls rendered from a cache.
And 11 more
Sitecore.Security Access Denied / sec The total number of access requests that have been denied.
Sitecore.Security Programmatic Disabling / sec
The total number of times that security has been
programmatically disabled (using SecurityDisabler).
And 18 more
Sitecore.System Logging | Errors Logged / sec The number of error messages that have been sent to the log.
Sitecore.System Reflection | Types Resolved / sec
The total number of types that have been resolved using
reflection.
And 10 more…
Category Name Description
Sitecore.Analytics Collection | Total Visits / sec
The total number of visits per second that are registered by
the system.
Sitecore.Analytics Collection | Unique Visitors / sec The number of unique visitors per second.
Sitecore.Analytics Data | Last Tracker Flush Time
The time in milliseconds that it took to execute the last
request to write data to the database.
Sitecore.Analytics
Aggregation | Average Write Time
(ms)
Average time it takes to save aggregated data to the
reporting database.
Sitecore.Analytics GeoIP | Cache Size The number of entries in the GeoIP cache.
Sitecore.Analytics
Data | Aggregation – Visits saved to
reporting database / sec
The number of visits saved to the reporting database per
second.
And 61 more....
Category Name Description
Sitecore.Analytics.MongoDb Reads / sec The number of read operations from MongoDB.
Sitecore.Analytics.MongoDb Writes / sec The number of write operations from MongoDB.
Sitecore.Analytics.MongoDb Documents fetched / sec The number of documents fetched from MongoDB.
And 8 more...
Sitecore.Automation
(Sitecore Engagement Automation
Counters)
Categorycc Name Description
Process Private Bytes
The total amount of memory that a process has
allocated, not including memory shared with other
processes.
Process Virtual Bytes
The current size of the virtual address space that the
process is using.
Process Page File Bytes
The current amount of virtual memory, in bytes,
that this process has reserved for use in the
paging files.
.net CLR Memory # Bytes in all Heaps
This counter indicates the current memory
allocated in bytes on the garbage collection
heaps.
.net CLR Memory Current Assemblies
The number of assemblies that are loaded in the
process.
And other 10...
Categorycc Name Description
Sitecore.Automation
State Evaluations – Page Events /
sec
The number of automation condition evaluations per
second that are triggered by page events.
Sitecore.Automation
Aggregation | Average
Automation Aggregation Pipeline
Time / sec
The average time in milliseconds that it takes to run
the automation aggregation pipeline
Sitecore.Automation
Aggregation | Transition
Aggregation Errors / sec
The number of errors (exceptions) occured during
aggregation of state transitions.
And other 14 ...
11. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Counters Einstellungen:
Counters.Enabled – (De-)Aktivieren die Performance Counter. "False" deakitivert das automatische
Update der Windows Performance Counter.
Counters.InstanceName - Legt den Instanznamen für das auslesen und aktualisieren der Counter. Wenn
mehr als eine Sitecore Instanz pro Server überwacht werden soll, muss dieses Feld ausgefüllt werden.
Der Counter Dump Agent schreibt regelmäßig alle Sitecore spezifischen Performance Counter in eine
XML Datei. Diese wird im Data Verzeichnis unter /data/diagnostics/* abgelegt.
Der Sitecore Health Monitor Background Task durchläuft die HealthMonitor Pipeline in einem bestimmten
Zeitinterval(HealthMonitorInterval Einstellung). Unter anderen werden die Health Daten dabei in Log Dateien
geschrieben.
Sitecore Counters
12. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
http://<host>/sitecore/admin/stats.aspx
Sitecore Stats Page
Rendering — Der Name des Renderings
Site — Der Name der Website auf dem das Rendering verwendet wird.
Count — Die Anzahl der Aufrufe seit dem die Stats Page resettet wurde.
From cache —Davon aus dem Cache geladen.
Avg. time (ms) — Durchschnittliche Zeit zum Rendern.
Avg. items — Durchschnittliche Anzahl von geladenen Items.
Max. time — Längste Zeit zum Rendern.
Max. items — Größte Anzahl von geladenen Items.
Total time — Gesamte verbrauchte Zeit des Renderings seit dem letzten
Reset
Total items — Gesamte Anzahl von geladenen Items seit dem letzten
Reset
Last run — Letzter Aufruf des Renderings
13. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
http://<host>/sitecore/admin/pipelines.aspx
Pipelines Profiles Page The # Executions column provides the number of times the pipeline or processor has been
executed over the lifetime of the profiler.
The % Wall Time column is applicable to processors only and provides the ratio of execution
time for a processor vs the execution time for the pipeline that invoked the processor. The values
in this column are helpful in determining which processors consume the most time during
pipeline execution.
The Wall Time column provides the aggregate execution time for each pipeline or processor over
the lifetime of the profiler. The values in this column are cumulative over time and are mostly
useful for calculating average execution time.
The Max Wall Time column provides the maximum time elapsed during the execution of a
pipeline or processor. The values in this column represent the maximum execution time over the
lifetime of the profiler and can be used to compare peak execution duration to average execution
duration.
The % CPU column is applicable to processors only and provides the ratio of CPU time used by
a processor vs the CPU time used by the pipeline that invoked the processor. Note The % CPU
metric is only measured and displayed when the Pipelines.Profiling.MeasureCpuTime setting is
set to true in the web.config file (or via config include).
The Time / Execution column provides the average execution time for each pipeline or processor
over the lifetime of the profiler. The values in this column are valuable when monitoring
pipeline/processor performance over a specific time period (e.g. during load or performance
testing).
17. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
SQL Server Index Fragmentation Level
Symptome
Dramatisches ansteigen der CPU Auslastung
Performance Einbußen bei Queries
Performance Einbußen bei Disk-IO
Connection Verlust zum Datenbank Server
Langsame Renderings
Langsame Performance bei den Sitecore Backend
Sitecore Empfehlung:
SQL Server Fragmantation Level < 10%
18. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
4. Auto Shrink Eigenschaft auf False
SQL Einstellungen: Datenbank Eigenschaften
3. Auto Close Eigenschaft auf False
1. Compatibility Level auf SQL Server 2008 (100) setzen
2. Recovery Model auf Simple
Sitecore Empfehlungen:
Symptome
Keine Möglichkeit Performance optimierende Skripts
auszuführen.
Performance Einbußen bei Queries
Verbindungsaufbau zur Datenbank dauert länger
Allgemeine Performance Einbußen
Verursacht massive Index Fragmentierung
Erhöhte CPU und IO Verbrauch
23. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Sitecore Cache Einstellungen
Symptome
Begrenzte Zuweisung von Speicher
Schlechte Solution Performance
Server wird langsam
Sitecore Empfehlung:
Bei 64-Bit Systemen mit groß Speicher soll die
Speicherbegrenzung vollständig ausgeschaltet
werden.
24. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Sitecore Cache Einstellungen
Environment Target Cache Value
Content Delivery Only
Web Prefetch 200 MB
Web Data 200 MB
Web Item 200 MB
Output (per site) html 100 MB
CMS Only
Master Prefetch 200 MB
Master Data 200 MB
Master Item 200 MB
CMS and Content Delivery on same server (master and web databases)
Master Prefetch 200 MB
Master Data 200 MB
Environment / Target
Master Item 200 MB
Web Prefetch 150 MB
Web Data 150 MB
Web Item 150 MB
Output (per site) html 100 MB
CMS and Content Deliver on same server (Live mode)
Master Prefetch 300 MB
Master Data 300 MB
Master Item 300 MB
Output (per site) html 100 MB
Sitecore Empfehlung:
Standard Werte setzen
Prefetch Cache Standard Werte setzen
HTML Output Cache mit Standard Werten
konfigurieren
25. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Sitecore Cache Einstellungen
Sitecore empfiehlt, dass der Sitecore Datenbank Cache Size
zwischen 70% und 80% der maximal Größe liegt.
Datenbank Caching verbessern:
26. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Cacheable — The Cacheable property defines whether or not the
presentation component should be cached, regardless of what the
VaryBy properties are set to.
Sitecore Output Cache Einstellungen
VaryByData — Set to true for components that generate
different output when used with different data sources.
VaryByDevice — Set to true for components that generate
different output when used with different devices
VaryByLogin — Set to true for components that generate
different output for an authenticated vs. an unauthenticated
user. Note, the layout engine treats all anonymous users as a
single authenticated user. o
VaryByQueryString — Set to true for components that
generate a different output when different query string
parameters are passed in.
VaryByUser — Set to true for components that generate
different output for different users. Note, to avoid excessive
memory usage only use VaryByUser on solutions with a
relatively small number of users.
Sitecore allows developers to define output cache settings in three places:
VaryByParm — Set to true for components that generate a
different output when different rendering parameters are
passed in.
28. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Symptoms
Langsames Publishing
Langsame Indexierung / Index
Check Database Cleanup Agents
Sitecore Empfehlung:
Sitecore empfiehlt das die Scheduler Frequenz
auf mind. 5 Minuten sein sollte.
Cleanup Agents für die History, PublishQueue und
EventQueue können ebenfalls hier konfiguriert
werden. Der Standardwert beträgt 4 Stunden.
29. Unsichtbare Technologie. Sichtbare Kreativität. netzkern.
Sitecore Settings: Disable Showing Number of Locked Items
Symptome
Dramatische Performance Einbußen im Backend / Content Editor
Sitecore Empfehlung:
Setzen der
WebEdit.ShowNumberOfLockedItemsOnButton
Einstellung auf false!
How many of you are annoyed by slow pages and even don‘t wait for the browser to wait compeltely?
How many of you really hate slow pages and don‘t come back?
…
IMAGE: Clock, impatience
Industry Average: 97,8%
Leads to outages: 8 days a year
Shop generating $100,000 a day, loss of $800,000 in yearly revenue
Peak traffic times, 75% left for a competitors site, than suffer delays
88% of online consumers are less likely to return to a site after a bad experience
More than a third told others about their disappointing experience
IMAGE: OUCH, Hurt, Paint, Redcross?
google algorith change on April 22, 2015 for better performing mobile sites
Now we realize that we need a monitoring. More then just „let me know when we are offline“
Now it‘s too much
Zuallererst müssen wir überprüfen, ob wir ein Leistungsproblem und wenn Ja, dann wo genau haben? Und hier soll man diagnostisch machen.
Sitecore hat viele Werkzeuge für dieses Ziel. Zum Beispiel Sitecore Counters. Wir verwenden sie an troubleshoot und analysieren die Leistung(performance) Ihrer Sitecore CM-Installation.
First of all we need to check if we have any performance problem and if yes, then where exactly? And here we need to make diagnostic. Sitecore has a lot of tools for this target. For example counters. We use them to troubleshoot and analyze the performance of your Sitecore CMS installation.
Es gibt 5 Typen von Schaltern von Sitecore:
Sitecore Gesundheitsmonitor ist Speicherauslastungsschalter. Und dieser Tisch zeigt einigen von ihnen.
Kern.Counters geben die ganze notwendige Auskunft über Ihre Beispiele von Sitecore
Es gibt 6 Hauptkategorien, wo Sie ausführliche Statistikinformationen finden können über:
Sitecore. System (als logs errors, wrnings und so weiter)
Sitecore.Data (information über items)
Sitecore Cache,
Jobs
Präsentation
Und Sicherheit
Folgende Typen von Schaltern sind Sitecore Analytik. Counters und Sitecore. Analytik. Mongodb
Der erste sammelt alle Analytikstatistikdaten wie: Gesamtbesucher, unic Gesamtbesucher und anderer. Der zweite sammelt Klotz der Analytik Mongodb: (Die Zahl von gelesenen schreibt Operationen...)
Die letzte Typ von counters sammeln die ganze Info über Sitecore. Automation functionalytet
Aber standardmäßig sind die Schalter von Sitecore deactivieren. Um ihnen zu aktivieren, soll man einige Konfigurationseinstellungen von Sitecore ändern:
Zuerst soll man CountersEnabled stellung als true und das interval von CounterDumpAgent mehr dann 0 einführen.
Um Counters für verschiedene sitecore Installationen auf demselben Server zu führen, soll man Conters. InstanceName ändern.
Um healthMonitor counters zu aktivieren, führe bitte das interval von HealthMonitorInterval Stellung meher dann 0 ein. Dus führe die HealthMonitor pipeline.
So, Wenn Sitecore counters aktivieren sind, kontet ihr sie im Data/Diagnostigs ordner finden
Sitecore hat aber andere Leistungs Indikationen.
Zum beispiel um Sitecore Renderings leistung zu diagnostizieren ,
Die Zahl von Zeiten, ein Rendering genannt wurde.
Die Zahl von Zeiten eine Rendering wurde vom Cache gezogen…
Und letzter Sitecore diagnostisches Werkzeug, dass wir gern u präsentieren würden, ist Sitecore pipeline profiling Seit.
Hier kann man jeden processor für jeder pipeline überwachen:
die Zahl von Zeiten der processor wurde durchgeführt
Die durchschittliche Ausführungzeit für jeder pipeline oder processor.
Und die CPU gebrauch für jeden processor
Aber um die lätzte zu aktivieren, soll man die Pipelines.Profiling.MeasureCpuTime Stellung als true einführen
so wenn es einige Performance Probleme gibt, soll man die Einstellungen von SQL, IIS und Sitecore überprüfen.
Zuallererst ist es sehr wichtig, Ihr SQL Server Fragmentation Level zu überprüfen. Weil Symptome sein würden:
Dramatisches ansteigen der CPU Auslastung
Performance Einbußen bei Queries und Disk-IO
Connection Verlust zum Datenbank Server
Langsame Renderings, Desktop, CE usw.
Um Fragmentation level zu prüfen soll man “Sql Management Studio” ofnen -> dann in context menu für die Sitecore Databanken -> click Reports - > dann Standard Reports -> Index Usage Statistics. Und in die neue windows form kontet ihr die information von fragmentation level für items finden.
Sitecore empfielt die Fragmentation Level über 10% halten für jeder Sitecore Databank.
Wenn es noch SQL Performance probleme gibt, man soll die SQL Einstellungen den databanken von Sitecore überprüfen:
Das Ergebnis des falschen Einstellung „Compatibility Level“ ist Unfähigkeit die Scripts zu führen, um Leistung zu verbessern. Es sollte SQL Server 2008 (100) sein
Wenn ihr findet, dass eur DB-Log zu groß ist und Performance Einbußen bei Queries, musstet ihr eine Einstellung „Recovery Model“ überprüfen. Sitecore empfiehlt dieEinstellung auf Simple setzen.
Aber erinnert Ihr sich, Wenn ihr vom Fill oder bulk-logged recovery model auf simple setzt, brechtet ihr die chain von Backup Log. Deshalb empfehlen wir ein backup von log machen sofort vor der Umschaltung.
Wenn Verbindungsaufbau zur Datenbank länger dauert, soll man Auto Close auf falsch setzen.
When Verursacht massive Index Fragmentierung oder erhöhte CPU und IO Verbrauch, soll man Auto Shrink auf falsch setzen.
Nach SQL, Soll man einige IIS Einstellungen überprüfen.
Weil de falche IIS Konfiguration können ein Grund sein für:
bitte auf eur
Hoher Verbrauch von Bandbreite
Konstant hohe Ladezeiten / schlechte Performance.
Konstant hohe Ladezeiten / schlechte Performance.
Die Estellung “HTTP keep-alive” verbessert Web server performance durch das Halten einer Verbindung des Kunden/Servers offen über vielfache Requests zum Server.
So, Sitecore empfielt HTTP keep-alive aktivieren, Expire Web content aktivieren und die einstellung “After” auf 30 tages setzen”
Wenn Ihre Seiten viel Bandbreite verwenden, oder wenn Sie bandwidth effektiver verwenden wollen, ermöglichen Sie Kompression. Das stellt schnellere Übertragungszeiten zwischen IIS und kompressionsermöglichten Browsern.
nächster ist der sehr wichtige Teil der Performance optimierung: Das Tuning des cache von Sitecore .
Symptome von schlechten Einstellungen würden sein:
Begrenzte Zuweisung von Speicher
Schlechte Solution Performance
Server wird langsam
Bemerken Sie bitte, dass Konfiguration und Einstimmung der Sitecore Sitecore cache nur auf einem Test durchgeführt werden oder entwickeln, und nie in der Produktion Umgebung sollten.
Also zuallererst empfiehlt Sitecore die Einstellung Cache.DisableCacheSizeLimits auf true setzen, Wenn ihr 64-Bit-System mit große Gedächt habt. Für andere System musstet ihr Eistellungen von Sitecore Cache abstimmen.
Satz anfangs werte:
Der folgende Tabellie zeigt einen guten Startpunkt an für die Datenbank und Html Output caches, abhängig von der Umgebung zu setzen
Verwende die Tabelle um Einstellungen von Sitecore Items Cache zu setzen.
Setze Prefetch Cache und Html Output Cache mit Standard Werten
Dann kontet ihr das Tuning von Sitecore Cache machen.
Führen Sie einen Lastgenerator, der alle Items auf allen Sprachen schlägt.
2. Während der Lastgenerator läuft, schiffen Sie zu /sitecore/admin/cache.aspx Seit.
Wir interesieren Master[data], Master[items], Web[data], Web[items], SqlDataProvider- Prefetch data(master), and SqlDataProvider -Prefetch data(web).
4. Machtet ihr die Einstellungen so Sitecore Cache zwischen 70% und 80% der maximal Größe liegt
Auch Sitecore erlaubt Entwicklern, output cache in drei Plätzen zu definieren:
In CE, in Presentation detail, und in Experience Manager.
Wenn die Einstellungen von Sitecore
Wenn Sie langsame Performance während publishing oder indexing finden, brauchtet ihr zur Reinigung Sitecore Datenbanken.
Der Prozess läuft automatisch durch den Planer von Sitecore. Um es zu aktivieren, soll man frequency and Cleanup intervals mehr dann 0 setzen.
Sitecore empfiehlt, frequency auf 5 Minuten und Cleanup intervals auf 4 Stunden zu setzen.
Und die lätzte empfelung um performance zu bessern is nechste:
Setz die WebEdit.ShowNumberOfLockedItemsOnButton auf falsch. Die einstelung kann ein Grund der dramatischen vergrößern Ladezeiten von Experience Manager.