Facebook hà prupostu un novu mecanismu di gestione di memoria di slab per u kernel Linux

Roman Gushchin (Roman Gushchin) da Facebook publicatu nantu à a mailing list di sviluppatori di u kernel Linux un inseme di patches cù l'implementazione di un novu controller di assignazione di memoria lastra (controller di memoria di lastra). U novu controller hè notu per trasfurmà a contabilità di slab da u livellu di a pagina di memoria à u livellu di l'ughjettu di u kernel, chì permette di sparte e pagine di slab in diversi cgroups, invece di assignà cache di slab separati per ogni cgroup.

L'approcciu prupostu permette di aumentà l'efficienza di l'usu di lastra, riduce a dimensione di memoria utilizata per a lastra da 30-45%, è riduce significativamente u cunsumu di memoria generale di u kernel. Riducendu u nùmeru di lastre non mobili, ci hè ancu un effettu pusitivu in a riduzione di a frammentazione di memoria. U novu controller di memoria simplifica significativamente u codice per a cuntabilità per i tavulini è ùn hà micca bisognu di l'usu di algoritmi complicati per a creazione dinamica è l'eliminazione di cache di slab per ogni cgroup. Tutti i gruppi di memoria in a nova implementazione utilizanu un inseme cumuni di cache di slab, è a vita di i cache di slab ùn hè più ligata à a vita di quelli installati attraversu u cgroup. restrizioni nantu à l'usu di memoria.

A cuntabilità di risorsa più precisa implementata in u novu controller di slab deve teoricamente carricà u CPU di più, ma in a pratica e sferenze sò diventate insignificanti. In particulare, u novu controller di slab hè stata utilizata per parechji mesi nantu à i servitori di Facebook di produzzione chì gestiscenu diversi tipi di carichi di travagliu, è ùn anu micca identificatu regressi notevuli. À u listessu tempu, ci hè una riduzzione significativa di u cunsumu di memoria - in certi òspiti era pussibule di salvà finu à 1GB di memoria, ma questu indicatore dipende assai da a natura di a carica, a dimensione tutale di RAM, u numeru di CPU. è e caratteristiche di travaglià cù memoria. Test precedenti mostru riduzzione in u cunsumu di memoria da 650-700 MB (42% di lastra di memoria) in u web front-end, 750-800 MB (35%) in u servitore cù una cache DBMS è 700 MB (36%) in u servitore DNS.

Source: opennet.ru

Add a comment