InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Was ist jemalloc?. jemalloc (abgekürzt von Jason Evans malloc) ist ein leistungsstarker Speicher-Allocator, der den standardmäßigen malloc ersetzt, der in der Standardbibliothek glibc implementiert ist. Es wird von großen Projekten wie Redis, Firefox, Facebook und sogar Android verwendet.
Seine Hauptvorteile:
- Weniger Speicherfragmentierung
- Bessere Multithreading-Leistung
- Transparente Protokollierung der Speichernutzung (durch jemalloc-Profiling)
Warum ist jemalloc wichtig für Ruby / Rails?
Ruby verwendet malloc zur Speicherverwaltung, insbesondere beim Arbeiten mit Objekten. Unter hoher Last (zum Beispiel mit dem Multithread-Server Puma oder Sidekiq) kann der standardmäßige Allocator Speicherfragmentierung und langsame Bereinigung verursachen.
Durch den Austausch von malloc gegen jemalloc können Sie Folgendes erreichen:
- Weniger Speicherverbrauch bei lang laufenden Prozessen
- Stabilerer RSS (Resident Set Size)
- Potentiell schnelleren GC (Garbage Collector), da jemalloc die Platzierung von Objekten besser verwaltet
Wann macht es Sinn, jemalloc zu aktivieren (falls Sie dies noch nicht getan haben)?
Wenn Sie feststellen, dass Ihre Ruby / Rails-Prozesse nach einigen Stunden oder Tagen des Betriebs im Speicher "aufblähen" — kann jemalloc erheblich helfen.
Besonders auffällig ist dies bei:
- Sidekiq / Resque
- Puma / Unicorn unter Last
- Diensten mit lang laufenden Prozessen
Dieser Beitrag hat noch keine Ergänzungen vom Autor.