Facebook yntrodusearre it TMO-meganisme, wêrtroch jo 20-32% fan ûnthâld op servers kinne bewarje

Yngenieurs fan Facebook (ferbean yn 'e Russyske Federaasje) publisearren in rapport oer de ymplemintaasje ferline jier fan TMO (Transparent Memory Offloading) technology, wêrtroch signifikante besparring yn RAM op servers mooglik makket troch sekundêre gegevens dy't net nedich binne foar wurk te ferpleatsen nei goedkeapere skiven, lykas NVMe SSD -skiven. Facebook skat dat it brûken fan TMO 20 oant 32% fan RAM kin besparje op elke server. De oplossing is ûntworpen foar gebrûk yn ynfrastruktuer dêr't applikaasjes rinne yn isolearre konteners. Kernel-side-komponinten fan TMO binne al opnommen yn 'e Linux-kernel.

Oan 'e Linux-kernelkant wurdt de technology stipe troch it PSI (Pressure Stall Information) subsysteem, beskikber te begjinnen mei release 4.20. PSI wurdt al brûkt yn ferskate lege-ûnthâld handlers en kinne jo analysearje ynformaasje oer de wachttiid foar it krijen fan ferskate middels (CPU, ûnthâld, I / O). Mei PSI kinne brûker-romte-processors sekuer beoardielje systeemlastnivo's en patroanen foar fertraging, wêrtroch anomalies betiid kinne wurde identifisearre, foardat se in merkbere ynfloed hawwe op prestaasjes.

Yn brûkersromte wurdt TMO fersoarge troch de Senpai-komponint, dy't troch cgroup2 de ûnthâldlimyt dynamysk oanpast foar applikaasjekonteners basearre op gegevens ûntfongen fan PSI. Senpai analysearret de tekens fan it begjin fan boarnetekoarten fia PSI, beoardielet de gefoelichheid fan applikaasjes foar fertragingen yn ûnthâld tagong en besiket de minimale ûnthâldgrutte te bepalen dy't nedich is troch de kontener, wêrby't de gegevens dy't nedich binne foar operaasje yn RAM bliuwe, en de byhearrende gegevens fêstlein yn de triem cache of wurdt net direkt brûkt yn op it stuit, wurde twongen út nei de swap partition.

Facebook yntrodusearre it TMO-meganisme, wêrtroch jo 20-32% fan ûnthâld op servers kinne bewarje

Sa is de essinsje fan TMO om prosessen op in strikte dieet te hâlden yn termen fan ûnthâldgebrûk, wêrtroch it wikseljen fan net brûkte ûnthâldsiden wêrfan de útsetting gjin merkber ynfloed hat op prestaasjes (bygelyks siden mei koade brûkt allinich by inisjalisaasje, en ienmalige gebrûk gegevens yn 'e skiifcache). Oars as evicting ynformaasje nei de swap partition yn reaksje op ûnthâld druk, yn TMO gegevens wurdt evicted basearre op proaktive foarsizzing.

Ien fan 'e kritearia foar útsetting is it ûntbrekken fan tagong ta de ûnthâldside foar 5 minuten. Sokke siden wurde kâlde ûnthâldsiden neamd en meitsje yn trochsneed sa'n 35% fan it tapassingsûnthâld út (ôfhinklik fan it type tapassing is der in berik fan 19% oant 65%). Preemption hâldt rekken mei aktiviteit ferbûn mei anonime ûnthâld siden (ûnthâld tawiisd troch de applikaasje) en ûnthâld brûkt foar triem caching (tawiisd troch de kernel). Yn guon applikaasjes is de wichtichste konsumpsje anonime ûnthâld, mar yn oaren is de triemcache ek wichtich. Om ûnbalâns te foarkommen fan cache-eviction, brûkt TMO in nij paging-algoritme dat anonime siden en siden dy't ferbûn binne mei de triem-cache proporsjoneel evicts.

It stjoeren fan selden brûkte siden yn stadiger ûnthâld hat gjin signifikante ynfloed op prestaasjes, mar kin hardwarekosten signifikant ferminderje. Gegevens wurde trochspoeld nei SSD-skiven of nei in komprimearre ruilgebiet yn RAM. Wat de kosten fan it opslaan fan in byte oan gegevens oanbelanget, is it brûken fan in NVMe SSD oant 10 kear goedkeaper dan it brûken fan kompresje yn RAM.

Facebook yntrodusearre it TMO-meganisme, wêrtroch jo 20-32% fan ûnthâld op servers kinne bewarje


Boarne: opennet.ru

Add a comment