DTU Usage, SAP CX Optimierung

DTU Usage Optimierungsstrategien - SAP Commerce Cloud Performance

Lukas Frey
25/2/2025
10m

In der heutigen digitalen Landschaft ist eine leistungsfähige und skalierbare E-Commerce-Plattform entscheidend für den Geschäftserfolg. Die SAP Commerce Cloud bietet leistungsstarke Funktionen, aber um eine optimale Performance sicherzustellen, sind spezifische Strategien erforderlich. In diesem Beitrag werden bewährte Methoden zur Leistungsoptimierung vorgestellt, die in einem kürzlich abgehaltenen Webcast detailliert erläutert wurden.

Was bedeutet DTU?


DTU (Database Transaction Unit) ist eine Metrik, die die Leistungsfähigkeit einer SQL-Datenbank in Bezug auf CPU, Speicher und I/O-Ressourcen beschreibt. Eine hohe DTU-Nutzung kann auf ineffiziente Abfragen oder eine Überlastung der Datenbank hinweisen, was zu Leistungsproblemen führt. Durch gezielte Optimierung kann die DTU-Nutzung reduziert und die Performance verbessert werden. Eine gängige Methode zur Reduktion der DTU-Nutzung ist das Identifizieren und Optimieren ressourcenintensiver SQL-Abfragen, die Verwendung von Read-Only-Replikaten für leseintensive Vorgänge und die effektive Indizierung von Tabellen.

Warum ist Performance-Optimierung wichtig?


Eine ineffiziente Plattform kann zu längeren Ladezeiten, höherem Ressourcenverbrauch und letztendlich zu einer schlechten Benutzererfahrung führen. Unternehmen, die ihre SAP Commerce Cloud Umgebung nicht optimieren, riskieren Umsatzverluste und höhere Betriebskosten. Besonders bei steigenden Nutzerzahlen oder saisonalen Schwankungen kann eine schlechte Performance zu Systemausfällen oder Skalierungsproblemen führen.

Wichtige Optimierungsstrategien

1. Reduzierung der Datenbank-Last (DTU)

  • Datenbanknutzung überwachen: Durch die Nutzung von Monitoring-Tools wie Dynatrace, kann Datenbanknutzung der letzten Tage und Wochen genaustens analysiert werden. Wichtige Metriken sind dabei DTU-Nutzung, Lese-/Schreiboperationen pro Sekunde und der Speicherverbrauch. Hierbei lohnt es sich vorallem Peaks genauer unter die Lupe zu nehmen.
  • Hauptabfragen identifizieren: Durch die Hybris Administration Console (kurz HAC) können SQL-Analysen zur Bestimmung ressourcenintensiver Abfragen durchgeführt werden. Eine direkte SQL-Abfrage über die Query Store Runtime Stats kann die Abfragen mit der höchsten CPU-Zeit und den meisten logischen Lesevorgängen identifizieren:

SELECT TOP 10   query_id, query_sql_text,   ROUND(SUM(count_executions * avg_cpu_time / 1000.0),2) AS total_cpu_millisec,   ROUND(SUM(avg_logical_io_reads),2) total_logic_read_IO,   ROUND(SUM(avg_logical_io_writes),2) total_logic_write_IO  FROM sys.query_store_runtime_stats  JOIN sys.query_store_plan ON plan_id = query_store_runtime_stats.plan_id  JOIN sys.query_store_query ON query_id = query_store_runtime_stats.query_id  WHERE last_execution_time > DATEADD(HOUR, -1, GETDATE())  ORDER BY total_cpu_millisec DESC;

  • Code-Ebene analysieren: Mithilfe von Java Stacktraces, können ineffiziente Code-Stellen identifiziert werden. Eine tiefergehende Analyse kann mit Application Observability-Tools wie New Relic oder Dynatrace durchgeführt werden.
  • Optimierung von Abfragen: Sobald resourcenintensive Abfragen ermittelt wurde, können diese durch die Reduzierung von Joins, das Vermeiden von `SELECT *`, die Verwendung von Indizes und das Caching von häufig genutzten Ergebnissen verbessert werden.

2. Senkung der CPU-Last von virtuellen Maschinen

  • Methoden-Hotspots identifizieren: Um Methoden Hotpots zu identifizieren gibt es verschiedene Tools. Dynatrace bietet hier die Möglichkeit Stacktraces zu analysieren. Falls das nicht genügt, können Mithilfe von Profiler-Tools wie VisualVM oder YourKit, besonders CPU-intensive Methoden gefunden und optimiert werden.
  • Containerisierte Anwendungen optimieren: In der SAP Commerce Cloud können manche Prozesse auf sogenannte "BackgroundProcessing"-Nodes ausgelagert werden. Diese Nodes bieten sich vorallem für Cronjobs und Business Processes an. Damit nehmen sie Last von anderen Nodes wie zum Beispiel den "Backoffice"-Nodes.
  • Lasttests durchführen: Lasttests ermöglichen die Simulation realer Benutzerlasten, um Engpässe und Performance-Probleme frühzeitig zu erkennen und die Skalierbarkeit des Systems zu optimieren. Dazu können Tools wie JMeter oder Gatling zur Simulation von Benutzerlasten benutzt werden.

3. Optimierung durch den Einsatz von Datenbank-Indizes

Eine effektive Methode zur Reduzierung der DTU-Nutzung ist der gezielte Einsatz von Datenbank-Indizes. Indizes beschleunigen Datenbankabfragen, indem sie den Suchprozess optimieren und die Anzahl der gelesenen Datensätze reduzieren. Besonders bei häufig ausgeführten SELECT-Abfragen können gut gewählte Indizes erhebliche Performance-Verbesserungen bewirken. Dabei sind folgende Maßnahmen besonders effektiv:

  • Primär- und Sekundärindizes nutzen: Primärschlüssel sorgen für schnelle Zugriffsmöglichkeiten, während zusätzliche Sekundärindizes gezielt für oft gefilterte oder sortierte Spalten erstellt werden können.
  • Überprüfung bestehender Indizes: Nicht genutzte oder redundante Indizes sollten entfernt werden, um die Schreib-Performance nicht unnötig zu belasten.
  • Index-Fragmentierung minimieren: Regelmäßige Reorganisation und Neuaufbau fragmentierter Indizes verbessert die Abfragegeschwindigkeit.
  • Covering Indexes verwenden: Durch die Aufnahme aller in der Abfrage benötigten Spalten kann der Zugriff auf die eigentlichen Datensätze minimiert werden.


Lang laufende Queries identifizieren

Die Identifikation langsam laufender Abfragen ist ein entscheidender Schritt zur Optimierung der Datenbank-Performance. Es gibt zwei Hauptmethoden zur Analyse:

Über die HAC (Hybris Administration Console):

In der HAC können lang laufende Abfragen eingesehen und analysiert werden.

Über Dynatrace:

Dynatrace bietet umfassende Monitoring-Funktionen, um langsame Datenbankabfragen zu erkennen. Die Plattform liefert detaillierte Metriken zu Abfragezeiten und Ressourcennutzung, was eine präzisere Optimierung ermöglicht. Mithilfe von Tracing-Mechanismen können die genauen Stellen im Code identifiziert werden, an denen problematische Abfragen ausgeführt werden.

Indizes setzen

Indizes können auf verschiedene Art und Weise gesetzt werden.

  • Über die items.xml
  • Mittels eines SAP Support Tickets
  • Via Groovy Script zur Laufzeit:
import org.springframework.jdbc.core.JdbcTemplate

JdbcTemplate jdbcTemplate = spring.getBean "jdbcTemplate"

jdbcTemplate.execute("CREATE INDEX MyIndexName ON Table (p_field1, p_field2);")

Fazit


Die Performance-Optimierung der SAP Commerce Cloud erfordert ein tiefgehendes Verständnis von Datenbank- und Server-Performance. Durch regelmäßige Überwachung, Optimierung von Abfragen und effizientes Ressourcenmanagement können Unternehmen ihre Plattform stabil und skalierbar halten. Wichtige Maßnahmen sind die Identifizierung von SQL-Hotspots, die Implementierung von Caching-Mechanismen und die kontinuierliche Analyse von Speicher- und CPU-Auslastung.

Falls Sie mehr über die Best Practices für die SAP Commerce Cloud erfahren möchten, besuchen Sie die SAP Community für detaillierte technische Anleitungen und Erfahrungsberichte.

Links zu weiterführenden Ressourcen:


- [Wie man DTU in SAP Commerce Cloud Umgebungen überwacht](https://community.sap.com/t5/crm-and-cx-blogs-by-sap/how-to-monitor-dtu-on-sap-commerce-cloud-lower-environments/ba-p/13578757)
- [Top 10 Empfehlungen zur Performance-Verbesserung](https://community.sap.com/t5/crm-and-cx-blogs-by-sap/top-10-recommendations-for-improving-the-performance-of-your-commerce-cloud/ba-p/13553289)

Andere Beiträge

Das könnte Sie auch interessieren

Lukas Frey
February 22, 2025
10m
Stefan Kruk
February 19, 2025
5m
Stefan Kruk
January 27, 2025
8min

Kontaktieren Sie unsere Experten

Lassen Sie uns gemeinsam die Grenzen des digitalen Handels überschreiten und Ihr nächstes E-Commerce-Projekt zum Erfolg führen!