Leistung
IBM Cloud® Databases for Elasticsearch-Bereitstellungen können entsprechend Ihrer Nutzung skaliert, unter bestimmten Ressourcenbedingungen für die automatische Skalierung konfiguriert oder bei mehreren Elasticsearch-Knoten horizontal skaliert werden. Wenn Sie die Leistung Ihrer Einrichtung optimieren wollen, sollten Sie einige Faktoren berücksichtigen.
Bereitstellung überwachen
Databases for Elasticsearch-Bereitstellungen bieten eine Integration mit dem Service IBM Cloud® Monitoring, um eine Basisüberwachung der Ressourcennutzung in Ihrer Bereitstellung zu gewährleisten. Viele der verfügbaren Metriken, wie Plattenbelegung und IOPS (E/A-Operationen pro Sekunde) helfen Ihnen bei der Konfiguration der automatischen Skalierung für Ihre Bereitstellung. Wenn Sie Nutzungstrends beobachten und die automatische Skalierung entsprechend konfigurieren, können Sie Leistungsproblemen entgegenwirken, bevor Ihre Datenbanken aufgrund nicht ausreichend verfügbarer Ressourcen instabil werden.
Sharding in Elasticsearch
Beim Hinzufügen eines Index in Elasticsearch werden die Daten in Shards aufgeteilt, welche dann über die Knoten im Cluster hinweg verteilt werden. Durch diese von Shards geprägte Konfiguration kann Elasticsearch auf allen Knoten gleichzeitige Operationen für Ihre Daten ausführen. Um zusätzliche Parallelität und Leistung zu erzielen, fügen Sie Knoten zum Elasticsearch-Cluster hinzu. Wenn Sie Knoten hinzufügen, werden Ihre Shards automatisch neu über den gesamten Cluster aufgeteilt, um die Ressourcennutzung über alle Knoten hinweg zu verteilen und die Leistung zu erhöhen.
Speicherverwaltung
Der Elasticsearch-Speicher ist in die Kategorien JVM-Heapspeichergröße und Systemspeicher unterteilt. Er verwendet den Heapspeicher für das interne Caching und den Rest des Systemspeichers für das Betriebssystem, die Dateisystemcaches und Garbage-Collection. Je mehr Speicher dem Heapspeicher zugeordnet wird, desto weniger wird dem Rest des Systems zugeordnet.
Bei Databases for Elasticsearch-Bereitstellungen sieht die Speicherzuordnungsrichtlinie 50 % Heapspeicher und 50 % Systemspeicher vor; eine Erhöhung des Arbeitsspeichers führt daher zu einer Erhöhung des Heap- und des Systemspeichers bei einer maximalen Heapspeichergröße von 32 GB. In einigen Fällen ist es sinnvoll, Ihre Bereitstellung auf über 64 GB Arbeitsspeicher zu skalieren, selbst wenn der Heapspeicher begrenzt ist, da Elasticsearch den Dateisystemcache nutzt und so die Platten-E/A-Nutzung verringert. Sie können die automatische Skalierung so konfigurieren, dass der Speicher erhöht wird, wenn die Festplatten-E/A-Auslastung einen bestimmten Schwellenwert erreicht.
E/A-Operationen der Platte pro Sekunde
Die Anzahl der E/A-Operationen pro Sekunde (IOPS) wird durch den Typ des Speicherdatenträgers begrenzt. Speicherdatenträger für Databases for Elasticsearch-Bereitstellungen werden in Block Storage Endurance Volumes im Tier mit 10 IOPS pro GB eingerichtet. Das Erreichen von IOPS-Grenzwerten kann dazu führen, dass Ihre Datenbanken langsam oder gar nicht reagieren.
Die Indexierung erfolgt auf der Platte; wenn Ihr Anwendungsfall schreibintensiv ist, kann die Geschwindigkeit der Indexierung durch die für Ihre Bereitstellung verfügbaren E/A-Operationen pro Sekunde begrenzt werden. Einige Engpässe können dadurch verbessert werden, dass Ihre Indizes für die Plattenbelegung optimiert werden. Zusätzlich können Suchvorgänge Plattenspeicher belegen, wenn Ihr aktuelles Dataset nicht in den Dateisystemcache passt, wodurch die IOPS-Belastung erhöht wird. Wenn bei Ihrem Anwendungsfall ein großes Dataset durchsucht werden muss, kann eine Erhöhung des Speichers für Ihre Bereitstellung dabei helfen, dass Elasticsearch weniger auf Plattenspeicherplatz zurückgreifen muss.
Des Weiteren ist zu beachten, dass die Standardmanagementrichtlinie für Dateisysteme in Lucene niofs ist, die gleichzeitige Lesevorgänge für eine Datei zulässt, die auch durch Begrenzungen für die Platten-E/A eingeschränkt werden
können. Informationen zu Dateisystemspeichertypen finden Sie in der Dokumentation zu Elasticsearch.
Wenn Sie mehr E/A-Operationen pro Sekunde benötigen, können Sie die Anzahl der für Ihre Bereitstellung verfügbaren Operationen durch das Vergrößern des Plattenspeicherplatzes erhöhen. Wenn Sie Trends bei der Indexierung oder Verwendung erkennen, die die Platten-E/A erhöhen, können Sie die automatische Skalierung so konfigurieren, dass der Plattenspeicherplatz auf der Basis der E/A-Operationen pro Sekunde vergrößert wird.