Gisugyot sa Facebook ang usa ka bag-ong mekanismo sa pagdumala sa panumduman sa slab alang sa Linux kernel

Roman Gushchin (Roman Gushchin) gikan sa Facebook nga gipatik sa mailing list sa Linux kernel developers usa ka set sa mga patch nga adunay pagpatuman sa bag-ong memory allocation controller putak (slab memory controller). Ang bag-ong controller kay bantogan sa pagbalhin sa slab accounting gikan sa memory page level ngadto sa kernel object level, nga nagpaposible sa pagpaambit sa mga panid sa slab sa lain-laing mga cgroup, imbes nga mag-alokar og separado nga mga slab cache para sa matag cgroup.

Ang gisugyot nga pamaagi nagpaposible nga madugangan ang kaepektibo sa paggamit sa slab, makunhuran ang gidak-on sa memorya nga gigamit alang sa slab sa 30-45%, ug makunhuran ang kinatibuk-ang konsumo sa memorya sa kernel. Pinaagi sa pagkunhod sa gidaghanon sa mga non-movable slabs, adunay usab usa ka positibo nga epekto sa pagkunhod sa memory fragmentation. Ang bag-ong memory controller mahinungdanon kaayo nga gipasimple ang code alang sa accounting sa mga slab ug wala magkinahanglan sa paggamit sa mga komplikadong algorithm alang sa dinamikong paghimo ug pagtangtang sa mga slab caches alang sa matag cgroup. Ang tanang memory cgroup sa bag-ong implementasyon naggamit ug komon nga set sa mga slab cache, ug ang tibuok kinabuhi sa mga slab cache wala na gihigot sa tibuok kinabuhi niadtong na-install pinaagi sa cgroup mga pagdili sa paggamit sa memorya.

Ang mas tukma nga resource accounting nga gipatuman sa bag-ong slab controller kinahanglan nga theoretically load sa CPU labaw pa, apan sa praktis ang mga kalainan nahimo nga walay hinungdan. Sa partikular, ang bag-ong slab controller gigamit sulod sa pipila ka mga bulan sa produksyon sa mga server sa Facebook nga nagdumala sa lain-laing mga matang sa workload, ug wala pa mailhi nga mga regression. Sa parehas nga oras, adunay usa ka hinungdanon nga pagkunhod sa pagkonsumo sa panumduman - sa pipila nga mga host posible nga makatipig hangtod sa 1GB nga panumduman, apan kini nga timailhan nagdepende kaayo sa kinaiya sa pagkarga, ang kinatibuk-ang gidak-on sa RAM, ang gidaghanon sa mga CPU. ug ang mga bahin sa pagtrabaho uban sa memorya. Mga miaging pagsulay nagpakita pagkunhod sa konsumo sa memorya sa 650-700 MB (42% sa panumduman sa slab) sa web front-end, 750-800 MB (35%) sa server nga adunay DBMS cache ug 700 MB (36%) sa DNS server.

Source: opennet.ru

Idugang sa usa ka comment