RSS-Geschichten von Pinterest Engineering auf Medium

Wie die Optimierung des Speichermanagements mit LMDB die Leistung unseres API-Dienstes verbesserte

Die API-Plattform von Pinterest, NGAPI, erfordert eine optimierte Systemleistung, um eine hohe Erfolgsrate von Anfragen sicherzustellen. Das Team implementierte eine Lightning Memory-Mapped Database (LMDB), um die Speicherverwaltung zu straffen und die Effizienz zu verbessern. Dies reduzierte den Speicherverbrauch um 4,5 %, sodass mehr Prozesse auf jedem Host laufen konnten und die CPU-Auslastung verbessert wurde. In einer Multi-Prozess-Architektur ist der Speicherverbrauch pro Prozess ein entscheidender Faktor, und die pro Prozess geladene, konfigurationsverwaltete Datenmenge ist ein bedeutender Beitrag. Das Team strebte danach, von pro-Prozess-Speicher-verwalteten Daten auf eine einzelne Kopie pro Host umzustellen, um den Speicherdruck zu reduzieren. Sie bewerteten drei mmap-basierte Lösungen und wählten LMDB, das es ermöglicht, generierte Dateien in einer Transaktion zu aktualisieren, ohne eine neue Version zu erstellen. LMDB ist eine eingebettete Schlüssel-Wert-Datenbank auf Basis von Speicher-zu-Speicher-Dateien, und das Team erstellte eine lokale Datenbank für jede konfigurationsverwaltete Datenmenge. Ein leichtgewichtiger Python-Sidecar wurde entwickelt, um die LMDB-Datenbank zu aktualisieren, und die API-Prozesse halten persistente, schreibgeschützte Verbindungen zu LMDB aufrecht. Die Ergebnisse zeigten einen Rückgang des Speicherverbrauchs um 4,5 %, sodass mehr Prozesse auf jedem Host laufen konnten und die Gesamtzahl der Hosts reduziert wurde. Diese Optimierung verbesserte die Gesamtleistung und Stabilität ohne Auswirkungen auf die Systemlatenz.
favicon
medium.com
How Optimizing Memory Management with LMDB Boosted Performance on Our API Service
Bild zum Artikel: Wie die Optimierung des Speichermanagements mit LMDB die Leistung unseres API-Dienstes verbesserte
Create attached notes ...