Facebook enkondukis la TMO-mekanismon, permesante al vi ŝpari 20-32% de memoro sur serviloj

Inĝenieroj de Facebook (malpermesita en la Rusa Federacio) publikigis raporton pri la efektivigo pasintjare de la teknologio TMO (Transparent Memory Offloading), kiu ebligas signifajn ŝparojn en RAM en serviloj per delokado de malĉefaj datumoj ne necesaj por laboro al pli malmultekostaj diskoj, kiel NVMe. SSD-diskoj. Facebook taksas, ke uzi TMO povas ŝpari 20 ĝis 32% de RAM sur ĉiu servilo. La solvo estas dizajnita por uzo en infrastrukturoj kie aplikoj funkcias en izolitaj ujoj. Kernel-flankaj komponantoj de TMO jam estas inkluditaj en la Linukso-kerno.

Sur la flanko de Linukso-kerno, la teknologio estas subtenata de la subsistemo PSI (Pressure Stall Information), disponebla ekde la eldono 4.20. PSI jam estas uzata en diversaj malmultmemoraj pritraktiloj kaj permesas analizi informojn pri la atendotempo por akiri diversajn rimedojn (CPU, memoro, I/O). Kun PSI, uzant-spacaj procesoroj povas pli precize taksi sistemajn ŝarĝnivelojn kaj malrapidiĝajn ŝablonojn, permesante al anomalioj esti identigitaj frue, antaŭ ol ili havas rimarkindan efikon al efikeco.

En uzantspaco, TMO estas disponigita per la Senpai-komponento, kiu, tra cgroup2, dinamike ĝustigas la memorlimon por aplikaj ujoj bazitaj sur datumoj ricevitaj de PSI. Senpai analizas la signojn de la komenco de mankoj de rimedoj per PSI, taksas la sentemon de aplikoj al malrapidiĝoj en memoraliro kaj provas determini la minimuman memorgrandecon postulatan de la ujo, ĉe kiu la datumoj necesaj por funkciado restas en RAM, kaj la akompana. datumoj aranĝitaj en la dosierkaŝmemoro aŭ ne rekte uzataj nuntempe, estas devigitaj eksteren al la interŝanĝa sekcio.

Facebook enkondukis la TMO-mekanismon, permesante al vi ŝpari 20-32% de memoro sur serviloj

Tiel, la esenco de TMO estas konservi procezojn en strikta dieto laŭ konsumo de memoro, devigante la interŝanĝon de neuzataj memorpaĝoj, kies eldomigo ne signife influas rendimenton (ekzemple, paĝoj kun kodo uzata nur dum inicialigo, kaj unu-uzo). datumoj en la disko-kaŝmemoro). Male al elpelado de informoj al la interŝanĝsekcio en respondo al memorpremo, en TMO-datenoj estas forpelitaj surbaze de iniciatema prognozo.

Unu el la kriterioj por eldomigo estas la foresto de aliro al la memorpaĝo dum 5 minutoj. Tiaj paĝoj estas nomitaj malvarmaj memorpaĝoj kaj averaĝe konsistigas ĉirkaŭ 35% de aplika memoro (depende de la speco de aplikaĵo, ekzistas intervalo de 19% ĝis 65%). Antaŭzorgo enkalkulas agadon asociitan kun anonimaj memorpaĝoj (memoro asignita de la aplikaĵo) kaj memoro uzita por dosierkaŝmemoro (asignita de la kerno). En iuj aplikoj la ĉefa konsumo estas anonima memoro, sed en aliaj la dosierkaŝmemoro ankaŭ gravas. Por eviti kaŝmemorajn eldomigojn, TMO uzas novan paĝigan algoritmon kiu forigas anonimajn paĝojn kaj paĝojn asociitajn kun la dosierkaŝmemoro proporcie.

Puŝi malofte uzatajn paĝojn en pli malrapidan memoron ne havas signifan efikon al efikeco, sed povas signife redukti aparatarkostojn. Datumoj estas fluitaj al SSD-diskoj aŭ al kunpremita interŝanĝa areo en RAM. Koncerne la koston de stokado de bajto da datumoj, uzi NVMe SSD estas ĝis 10 fojojn pli malmultekosta ol uzi kunpremadon en RAM.

Facebook enkondukis la TMO-mekanismon, permesante al vi ŝpari 20-32% de memoro sur serviloj


fonto: opennet.ru

Aldoni komenton