Sie fügen Elasticsearch zu einem VPS hinzu, auf dem bereits Nginx, PHP-FPM und MySQL ausgeführt werden. Der Erstimport von 400.000 Produktblättern startet an einem Freitagabend. Zwei Stunden später antwortet die Site mit 502: Der Kernel hat PHP-FPM – nicht Elasticsearch – beendet, weil der RAM erschöpft war und der Festplatten-Cache keinen Ausgleich mehr bot.
Elasticsearch ist keine „Erweiterung von MySQL“. Es handelt sich um eine Java-Engine mit Spitzen-I/O und Zusammenführung, die mit Ihrer Anwendung um die gleichen Ressourcen konkurriert.
Heap, Cache und die 50 %-Regel
Elasticsearch verwendet die JVM für den Heap (In-Memory-Strukturen) und verlässt sich für Lucene-Segmente auf den Dateisystem-Cache des Betriebssystems.
| Ressource | Rolle | Häufiger Fehler |
|---|---|---|
| Heap-JVM | Indexpuffer, Abfragen | Zu groß → GC bricht, OOM |
| FS-Cache | Festplattensegmente lesen | Konkurrenz mit App + OS |
| CPU | Zusammenführen, analysieren | Sättigung während der Masse |
| Scheibe | IOPS-Zusammenführung + Translog | Festplatte mit Neuindizierung überlastet |
Offizielle Elastic-Regel: Heap ≈ 50 % des RAM, maximal 32 GB. Darüber hinaus verliert der JVM-Garbage Collector an Effizienz.
Auf einem 4–8 GB VPS, der mit der App geteilt wird, befinden Sie sich bereits in einer strukturellen Spannung.
Massenindizierung ohne Schütteln der Maschine
1. Drosseln Sie den Durchfluss
„json PUT _cluster/settings { „persistent“: { „indexes.memory.index_buffer_size“: „10 %“ } }
Reduzieren Sie „refresh_interval“ während des Massenimports auf „30s“ oder „-1“ und geben Sie dann „1s“ wieder in das Produkt ein.
**2. Stapelgröße** – beginnen Sie mit etwa 1.000–5.000 Dokumenten, messen Sie Latenz und Ablehnungen.
**3. Zeitfenster** – nachts indexieren, wenn das VPS auch den Tagesverkehr bedient.
**4. Rollentrennung** – dedizierter ES-Knoten oder verwaltetes Angebot (Elastic Cloud, OpenSearch verwaltet in Ihrer Cloud).
## Warnsignale vor OOM
- „vmstat“: wenn „si/so“ (Swap) während der Massenverarbeitung ansteigt.
- „Docker Stats“ oder „htop“: Heap ES stabil, aber Gesamt-RAM bei 100 %.
– Die Anwendungslatenz korrelierte mit „_bulk“-Spitzen in ES-Protokollen.
– Festplatte > 85 % – Zusammenführung blockiert, Cluster gelb/rot.
Handeln Sie vor dem Kill: pausieren Sie Massenvorgänge, erhöhen Sie den Arbeitsspeicher oder migrieren Sie ES.
## Oben: Die Volltextsuche rechtfertigt nicht immer Elasticsearch
:::Höhepunkt
**Viele E-Commerce-Kataloge oder Blogs benötigen keinen vollständigen Lucene-Cluster.** Meilisearch, Typesense oder sogar PostgreSQL FTS verbrauchen einen Bruchteil der Ressourcen. Elasticsearch ist sinnvoll, wenn Sie komplexe Aggregationen, Protokollanalysen oder horizontale Skalierung nutzen – nicht, wenn Sie „ein Suchfeld“ auf einem einzelnen VPS wünschen.
:::
Die Dimensionierung der Indizierung bedeutet auch die Frage, ob ES auf derselben Maschine laufen sollte.
## Entscheide dich und gehe ohne blinden Fleck voran
Berechnen Sie das RAM-Budget: Elasticsearch-Heap plus Anwendung plus System plus 20 % Marge. Wenn die Anwendung auf demselben VPS kritisch ist, isolieren Sie Elasticsearch vor dem Massenimport auf einem dedizierten Knoten oder einem verwalteten Angebot. Leiten Sie große Datenträger durch eine Warteschlange, wobei die Massendrosselung und das Aktualisierungsintervall vorübergehend erhöht sind. Messen Sie während eines Importtests vmstat- und Docker-Statistiken – nicht nur den JVM-Heap. Vergleichen Sie verwaltete Elasticsearch und leichtgewichtige Alternativen (Meilisearch, Typesense) über unseren [Komparator](/de/vergleich/) und das [Verzeichnis](/de/verzeichnis/), wenn eine einfache Volltextsuche für den Job ausreicht.
## Häufig gestellte Fragen
### Wie viel RAM muss Elasticsearch auf einem 8-GB-VPS zugewiesen werden?
Heap ≤ 50 % RAM, ≤ 32 GB absolut. Bei gemeinsam genutzten 8 GB ist eine Rollentrennung oft vorzuziehen.
### Warum stürzt meine Neuindizierung den Server ab?
Bulk ohne Drosselung, intensive Zusammenführung, privater RAM-Cache – OOM-Killer in der App oder ES.
### Sollen wir synchron von der Anwendung aus indizieren?
Nein für große Volumina – Warteschlange + Worker-Bulk mit angepasstem Refresh_Interval.
### Ist Managed Elasticsearch die Kosten wert?
Ja, wenn kritische Indexierung und kleines Team; andernfalls Meilisearch oder Typesense auf Budget-VPS.
---
Vor der nächtlichen Indizierung eine Frage: *Wer zahlt für den RAM, wenn die Masse ausbleibt – Elasticsearch oder Ihr Online-Shop?*
