Nuovo metodo di gestione della memoria da Facebook

Uno dei membri del team di sviluppo del social network Facebook, Roman Guccin, ha proposto in una mailing list per sviluppatori un pacchetto di patch per il kernel Linux, volto a migliorare la gestione della memoria attraverso l'implementazione di un nuovo controller di gestione — slab (controller della memoria slab).

Distribuzione slab –– è un meccanismo di gestione della memoria progettato per una distribuzione più efficiente della memoria e per eliminare una significativa frammentazione. La base di questo algoritmo è il mantenimento della memoria allocata, contenente un oggetto di un certo tipo, e il riutilizzo di tale memoria per la successiva allocazione di un oggetto dello stesso tipo. Questo metodo è stato introdotto per la prima volta in SunOS da Jeff Bonwick ed è attualmente ampiamente utilizzato nei kernel di molti sistemi operativi Unix, tra cui FreeBSD e Linux.

Alla base del nuovo controller c'è il trasferimento della contabilizzazione dello slab dal livello delle pagine di memoria al livello degli oggetti del kernel, il che consente l'utilizzo condiviso di una singola pagina slab in diversi cgroup, invece di allocare una cache separata per ogni cgroup.

Dai risultati dei test, sembra che il metodo di gestione della memoria proposto consenta di aumentare l'efficienza dell'uso dello slab fino al 45%, e inoltre ridurrà il consumo totale di memoria del kernel del sistema operativo. Inoltre, grazie alla riduzione del numero di pagine allocate per lo slab, si riduce la frammentazione della memoria nel complesso, il che non può che influire sulle prestazioni del sistema.

Il nuovo controller è già in fase di test sui server di lavoro di Facebook da diversi mesi e finora si può definire un test di successo: in assenza di perdite nelle prestazioni e aumento del numero di errori, è stata notata una riduzione evidente del consumo di memoria — su alcuni server fino a 1 GB. Questo numero è piuttosto soggettivo, poiché, ad esempio, i test condotti in precedenza hanno mostrato risultati leggermente inferiori:

  • 650-700 MB sul front-end web
  • 750-800 MB su un server con cache database
  • 700 MB su un server DNS

>>> Pagina dell'autore su GitHub


>>> Risultati dei primi test

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster