Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
Co to jest jemalloc?. jemalloc (skrót od Jason Evans malloc) — to wydajny alokator pamięci, który zastępuje standardowy malloc, zaimplementowany w standardowej bibliotece glibc. Używają go takie duże projekty jak Redis, Firefox, Facebook, a nawet Android.
Jego główne zalety:
- Mniej fragmentacji pamięci
- Lepsza wielowątkowa wydajność
- Przezroczyste logowanie użycia pamięci (poprzez profilowanie jemalloc)
Dlaczego jemalloc jest ważny dla Ruby / Rails?
Ruby używa malloc do zarządzania pamięcią, szczególnie podczas pracy z obiektami. W warunkach dużego obciążenia (np. wielowątkowy Puma lub Sidekiq) standardowy alokator może powodować fragmentację pamięci i wolne czyszczenie.
Zastępując malloc jemalloc, możesz uzyskać:
- Mniejsze zużycie pamięci w długoterminowych procesach
- Stabilniejszy RSS (Resident Set Size)
- Potencjalnie szybszy GC (Garbage Collector), ponieważ jemalloc lepiej zarządza rozmieszczeniem obiektów
Kiedy warto włączyć jemalloc (jeśli jeszcze tego nie zrobiono)?
Jeśli zauważasz, że twoje procesy Ruby / Rails "puchną" w pamięci po kilku godzinach lub dniach pracy — jemalloc może znacząco pomóc.
Szczególnie jest to zauważalne w:
- Sidekiq / Resque
- Puma / Unicorn pod obciążeniem
- Usługach z długotrwałymi procesami
Ten post nie ma jeszcze żadnych dodatków od autora.