Google avaldas uue versiooni mĂ€lu jaotussĂŒsteemist TCMalloc

Google'i ettevĂ”te esitles uus variantsĂŒsteemi mĂ€lu jaotamiseks TCMalloc, mida kasutatakse paljudes Googles sisemistes projektides. TCMalloci kood on kirjutatud C++-s ja levitatakse on litsentseeritud Apache'i alusel. Tööks on vajalik C++17-toega kompilaatori olemasolu C++ keeles ja C11 keeles (gcc 9.2+ vĂ”i clang 9.0+). Tööl osalevate opsĂŒsteemide seas toetatud ainult Linux (x86, PPC).

Oluline on, et alates 2005. aastast on olemas veel ĂŒks tcmalloci variant, mis kaasa; kuulub paketti gperftools (Google Performance Tools). Need on kaks erinevas projekti, millel on ĂŒhised juured. Uus TCMalloc on pigem katse avada kood Googles aktuaalsetest sisemistest arengutest, kuid see ei ole veel suunatud stabiilse ABI pakkumisele ega laia valiku operatsioonisĂŒsteemide toetamisele. Vana tcmalloci hooldamine gperftools'is jĂ€tkub, kuid uusi vĂ”imalusi, nagu vahemĂ€lu sidumine CPU-ga, ei kavatseta sinna ĂŒle kanda.

TCMalloc hĂ”lmab C-funktsiooni malloc() ja C++ operaatori „new” teostusi, mis on optimeeritud kĂ”rge jĂ”udluse saavutamiseks ja kasutamiseks mitme lĂ”ime rakendustes. TCMalloc vĂ”imaldab ka introspektsiooni ja profiilimist, mis vĂ”imaldavad rakendusel saada ĂŒksikasjalikku teavet mĂ€lu kasutamise kohta hunnikus. Koodis kasutatakse optimeerimisi, mis pĂ”hinevad C++ keele kaasaegsetel omadustel, nagu
operaator delete koos suuruse nÀitamisega C++14-st ja mÀlu eraldamine jaotamisega C++17-st.

TCMalloc koosneb Koosneb kolmest komponendist: esifront, millel on vahemĂ€lu kiireks mĂ€lu eraldamiseks ja vabastamiseks, vahekiht, mis tĂ€idab esifronti, ja tagaplane, mis tegeleb selliste toimingutega nagu mĂ€lu saamine operatsioonisĂŒsteemilt, suurte kasutamata mĂ€lu tĂŒkkide haldamine ja liigse mĂ€lu tagastamine OS-ile. VahemĂ€lu on blokeerimisest vabastatud ja töötab CPU tuumadega seotud, kuid langeb tagasi lĂ”ime seotuse vahemĂ€lu mudelile, kui operatsioonisĂŒsteemis vajalikke funktsioone pole (vahemĂ€lu sidumine CPU-ga töötab ainult uuemates Linuxi kernelites). Tagaplane toetab nii tavalise mĂ€lu lehekĂŒlgede kui ka suurendatud suurusega lehekĂŒlgede (hugepage) töötamist.

Google avaldas uue versiooni mĂ€lu jaotussĂŒsteemist TCMalloc

TCMalloci peamised omadused:

  • Kiire mĂ€lu eraldamine ja vabastamine kasutades vahemĂ€lu. Enamik mĂ€lu eraldamise toimingutest ei vaja lukustamist, mis tagab hea skaleeritavuse kĂ”rge paralleelsuse jaotavate rakenduste jaoks;
  • Paindlik mĂ€lu kasutamine, mis vĂ”imaldab taasalustada vabastatud mĂ€lu alade kasutamist erineva suurusega objektide jaoks vĂ”i tagastada mĂ€lu opsĂŒsteemile;
  • Madalamad kulud iga objekti kohta, eraldades ĂŒhesuuruseid objektilehti ja tĂ”husalt esindades vĂ€ikeseid objekte. Toetatakse loogilisi lehti suurustes 4KiB, 8KiB, 32KiB ja 256KiB. NĂ€iteks, kui taotletakse 512 baitise mĂ€lu blokke, eraldatakse kogu 4KiB leht 512-baidiste objektide jaoks, kuhu mahub 8 sellist objekti;
  • PeenhÀÀlestamine on vĂ”imalik vahemĂ€lu suuruse ja mĂ€lu tagastamise intensiivsuse parameetrite mÀÀratlemise kaudu;
  • Aruande andmine rakenduse mĂ€lu kasutamise analĂŒĂŒsi jaoks.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster