Facebook yakurudzira itsva slab memory management mechanism yeLinux kernel

Roman Gushchin (Roman Gushchin) kubva paFacebook rakabudiswa patsamba yekutumira yeLinux kernel vanogadzira seti yezvigamba nekushandiswa kweiyo nyowani yekugovera ndangariro controller. rakanyorwa (slab memory controller). Mutongi mutsva akakosha pakufambisa slab accounting kubva kumemory page level kusvika kune kernel object level, izvo zvinoita kuti zvikwanise kugovera mapeji eslab mumapoka akasiyana, panzvimbo yekugovera akaparadzana slab cache kune rimwe nerimwe boka.

Iyo yakarongwa nzira inoita kuti iwedzere kugona kwekushandisa slab, kuderedza saizi yendangariro inoshandiswa kune slab ne30-45%, uye zvakanyanya kuderedza kurangarira kwese kudyiwa kwekernel. Nekudzikisa huwandu hweasingafambi-slabs, kune zvakare mhedzisiro yakanaka mukuderedza kupatsanurwa kwendangariro. Iyo nyowani ndangariro controller inorerutsa kodhi yeakaunzi yeslabs uye haidi kushandiswa kweakaomesesa maalgorithms ekugadzira zvine simba uye kudzima slab cache yeboka rega rega. Ese mamemory cgroups mukuita kutsva anoshandisa yakajairwa seti ye slab cache, uye hupenyu hwema slab cache hauchasungirwe kuhupenyu hweavo vakaiswa kuburikidza neboka. zvirambidzo pakushandiswa kwendangariro.

Iyo yakanyanya kurongeka resource accounting inoshandiswa mune nyowani slab controller inofanirwa kurodha iyo CPU zvakanyanya, asi mukuita misiyano yakazove isina kukosha. Kunyanya, iyo nyowani slab controller yakashandiswa kwemwedzi yakati wandei pakugadzira Facebook maseva inobata mhando dzakasiyana dzebasa rebasa, uye hapana zvinocherechedzwa regressions zvave kuzivikanwa. Panguva imwecheteyo, kune kuderedzwa kwakanyanya mukushandiswa kwendangariro - pane mamwe mauto zvaikwanisika kuchengetedza kusvika ku1GB yendangariro, asi chiratidzo ichi chinoenderana nemhando yemutoro, saizi yakazara ye RAM, nhamba yeCPU. uye zvimiro zvekushanda nendangariro. Miedzo yapfuura yakaratidza kudzikiswa kwekushandiswa kwendangariro ne650-700 MB (42% yeslab memory) pawebhu kumberi-kuguma, 750-800 MB (35%) paserver ine DBMS cache uye 700 MB (36%) paDNS server.

Source: opennet.ru

Voeg