U novu Metudu di Gestione di Memoria di Facebook

Unu di i membri di a squadra di sviluppu di a rete suciale Facebook, Roman Gushchin, prupostu in a lista di mailing di sviluppatore un set di Patch di u kernel Linuxdestinatu à migliurà a gestione di a memoria attraversu l'implementazione di un novu controller di gestione di memoria - slab (controller di memoria di lastra).

distribuzione di lastre hè un mecanismu di gestione di memoria cuncepitu per assignà a memoria più efficacimente è eliminà a frammentazione significativa. A basa di stu algoritmu hè di almacenà memoria attribuita chì cuntene un ughjettu di un certu tipu è reutilizà quella memoria a prossima volta chì hè attribuita per un ughjettu di u listessu tipu. Sta tecnica hè stata prima introdutta in SunOS da Jeff Bonwick è hè largamente usata in i kernels di parechji sistemi operativi Unix, cumpresi FreeBSD è Linux.

U novu controller hè basatu annantu à u muvimentu di a contabilità di slab da u livellu di a pagina di memoria à u livellu di l'ughjettu di u kernel, chì permette di sparte una pagina di slab in diversi cgroups, invece di assignà una cache separata per ogni cgroup.

Basatu nantu à i risultati di a prova, segue chì u metudu di gestione di memoria prupostu permette di aumentà efficienza usendu lastra à 45%, è ancu riducerà u cunsumu generale di memoria di u kernel OS. Inoltre, riducendu u nùmeru di pagine attribuite per a slab, a frammentazione di a memoria in tuttu hè ridutta, chì ùn pò micca affettà u rendiment di u sistema.

U novu controller hè statu pruvatu nantu à i servitori di Facebook di produzzione per parechji mesi, è finu à quì sta prova pò esse chjamata successu: senza perdita di rendiment è senza aumentu di u nùmeru d'errori, una diminuzione clara di u cunsumu di memoria hè stata nutata - nantu à certi. servitori finu à 1 GB. Stu numeru hè abbastanza subjective, per esempiu, i testi precedenti anu mostratu risultati ligeramente più bassi:

  • 650-700 MB nantu à u frontend web
  • 750-800 MB nantu à u servitore cù a cache di basa di dati
  • 700 MB nantu à u servitore DNS

>>> Pagina di l'autore nantu à GitHub


>>> I primi risultati di teste

Source: linux.org.ru

Add a comment