Bewährte Verfahren für IBM Master Data Management die Leistungsoptimierung
Der IBM Master Data Management Dienst verarbeitet und analysiert große Mengen von Datensatzdaten, um Stammdatenentitäten zu erstellen. Wenn Sie die Richtlinien und bewährten Verfahren in diesem Thema befolgen, können Sie dazu beitragen, dass Ihre IBM Master Data Management Servicebereitstellung optimal verläuft.
Informationen zum Bearbeiten der IBM
Master Data Management benutzerdefinierten Ressource (mdm-cr) finden Sie unter Ändern der CR zum Anpassen Ihrer IBMMaster Data Management Installation.
Wählen Sie die richtige Skalierungskonfiguration
level_1(x-small) – Nur zu Demonstrations- und Entwicklungszwecken.level_2(small_mincpureq) - Ähnlich wie dielevel_3Größe, jedoch mit kleineren CPU-Anforderungsgrößen.level_3(small) – Die Standardgröße für kleinere Bereitstellungen.level_4(medium) – Für Bereitstellungen mittleren Umfangs.level_5(large) – Für großvolumige Bereitstellungen.
level_1 Skalierungskonfiguration erfordert die in den Hardwareanforderungen dokumentierten Mindestsystemanforderungen.Wenn die geschätzte Größe Ihrer Bereitstellungskonfiguration zwischen zwei Standardgrößen liegt, beginnen Sie mit der niedrigeren Skalierungsspezifikation. Sie können dann Ihre Ressourcenzuweisung nach Bedarf anpassen.
Stellen Sie sicher, dass Sie über ausreichende Hardware-Ressourcen für die von Ihnen ausgewählte Größe verfügen. Für weitere Informationen und Unterstützung wenden Sie sich bitte an Ihren IBM® Vertriebsmitarbeiter oder IBM den Support.
Weitere Informationen zu Größenoptionen und zu beachtenden Aspekten finden Sie im Leitfaden zur Skalierung von Komponenten, den Sie herunterladen können. Weitere Informationen zum Herunterladen der PDF-Datei finden Sie unter Herunterladen der PDF-Datei mit den Richtlinien zur Komponentenskalierung aus dem IBM Entitled Registry.
Daten mithilfe der API in großen Mengen laden
Verwenden Sie für Massen-Datenladeaufträge, die große Datenmengen umfassen, die Massenlade-API anstelle der IBM Master Data Management Benutzeroberfläche, um die Daten zu laden. Weitere Informationen zu API-Methoden finden Sie unter IBM Master Data Management API-Referenz.
- Um die Fehlerbehandlung zu vereinfachen, ist es besser, große Dateien in mehrere Teile aufzuteilen und diese dann nacheinander zu laden.
- Datenladeaufträge sind sehr I/O-intensiv, daher ist es wichtig, die richtige Anzahl von Ausführern zu konfigurieren. Die Konfiguration der Anzahl Ihrer Executoren hängt von den verfügbaren Ressourcen ab, sollte jedoch normalerweise weniger als 20 betragen. Es ist besser, Spark-Parallelität als Vielfaches der Ausführenden zu haben. Beispielsweise konfigurieren Sie für N Executoren die Spark-Parallelität von N auf 4N.
Den Dienst für Massenabrufe optimieren
Bei umfangreichen Ableitungsaufträgen müssen Sie möglicherweise die Parallelität Apache Spark Ihres Systems anpassen. Eine Spark-Parallelität von 128 ist ausreichend für 10 Millionen Datensätze, wenn 6 GB Executor-Speicher zur Verfügung stehen. Mit zunehmendem Datenvolumen müssen Sie die Parallelität von Spark proportional erhöhen. Bei einem gegebenen Volumen sollte die Parallelitätszahl höher sein, wenn der Arbeitsspeicher des Ausführenden reduziert wird.
Den Dienst für Massenabgleichaufträge optimieren
Ähnlich wie bei Bulk-Derive-Jobs müssen Sie möglicherweise die Parallelität Apache Spark Ihres Systems für Bulk-Match-Jobs anpassen. Der erforderliche Parallelismuswert hängt von Ihrer spezifischen Konfiguration des Abgleichalgorithmus, der Gesamtmenge der Datensätze in Ihrem System und der den Spark-Executors zugewiesenen Speichermenge ab. Eine Spark-Parallelität von 256 sollte für Datensätze mit 10 Millionen Datensätzen ausreichend sein, vorausgesetzt, es stehen 6 GB Arbeitsspeicher zur Verfügung.
Bei einem gegebenen Volumen sollte die Parallelitätszahl höher sein, wenn der Arbeitsspeicher des Ausführenden reduziert wird.
Mit zunehmendem Datenvolumen müssen Sie die Parallelität von Spark proportional erhöhen. Im Allgemeinen wächst die erforderliche Parallelität schneller als das Volumen.
Wenn Sie feststellen, dass Executoren aufgrund von OutOfMemory Fehlern ausfallen, passen Sie Ihre Konfiguration so an, dass eine höhere Spark-Parallelität oder ein höherer Speicher-Overhead erreicht wird. Der Speicher-Overhead wird durch den spark.kubernetes.memoryOverheadFactor Parameter im mdm_matching Abschnitt des IBM
Master Data Management CR definiert.
spark_driver:
containers:
- resources:
limits:
ephemeral-storage: 20Gi
requests:
ephemeral-storage: 20Gi
tolerations:
- effect: NoSchedule
key: cp4dmdm
operator: Equal
value: "true"
spark_executor:
containers:
- resources:
limits:
ephemeral-storage: 20Gi
requests:
ephemeral-storage: 20Gi
Stimmen Sie den Dienst für Massen-Synchronisierungs- oder Exportaufträge ab
Je nach Umfang der zu synchronisierenden oder zu exportierenden Daten müssen Sie möglicherweise die Parallelität von Spark anpassen. Ein Spark-Parallelismus von 100 sollte für 10 Millionen Datensätze ausreichend sein, vorausgesetzt, es stehen 6 GB Executor-Speicher zur Verfügung. Mit jeder Volumensteigerung muss die Spark-Parallelität proportional erhöht werden.
Optimieren Sie die Laufzeit-REST-APIs
Für Vorgänge mit hoher Parallelität, die auf mehr als 300 Transaktionen pro Sekunde (TPS) abzielen, müssen Sie möglicherweise zusätzliche Nginx Pods hinzufügen, indem Sie die IBM Software Hubzenservices CR bearbeiten. Führen Sie den Befehl oc edit zenservices aus, um die Konfiguration des spec:Nginx:replicas Parameters zu ändern.
Die Neo4j Datenbank abstimmen
Bei einer Neo4J Graphendatenbank enthält die Datenpartition (/data) den Großteil der Inhalte. Um mögliche Probleme zu vermeiden, müssen Sie die Datenpartition entsprechend dem Datenvolumen angemessen dimensionieren. Als bewährte Vorgehensweise sollten Transaktionsprotokolle in einer separaten Partition gespeichert werden (/transactions). Die Größe einer Partition kann nur vergrößert werden. Es kann nicht reduziert werden.
Der Speicherbedarf der Datenbank hängt vom Umfang der gespeicherten und verarbeiteten Daten ab. Eine größere Seiten-Cache-Größe kann dazu beitragen, physische E/A-Vorgänge zu reduzieren, was die Leistung verbessert.