Metoda e re e menaxhimit të kujtesës në Facebook

Një nga anëtarët e ekipit të zhvillimit të rrjeteve sociale Facebook, Roman Gushchin, propozoi në listën e postimeve të zhvilluesit një grup të Arna të kernelit Linuxqë synon përmirësimin e menaxhimit të kujtesës përmes zbatimit të një kontrolluesi të ri të menaxhimit të kujtesës - pllakë (kontrollues i memories së pllakës).

shpërndarja e pllakave është një mekanizëm i menaxhimit të kujtesës i krijuar për të shpërndarë kujtesën në mënyrë më efikase dhe për të eliminuar fragmentimin e konsiderueshëm. Baza e këtij algoritmi është ruajtja e memories së alokuar që përmban një objekt të një lloji të caktuar dhe ripërdorimi i asaj memorie herën tjetër që ndahet për një objekt të të njëjtit lloj. Kjo teknikë u prezantua për herë të parë në SunOS nga Jeff Bonwick dhe tani përdoret gjerësisht në bërthamat e shumë sistemeve operative Unix, duke përfshirë FreeBSD dhe Linux.

Kontrolluesi i ri bazohet në lëvizjen e kontabilitetit të pllakës nga niveli i faqes së kujtesës në nivelin e objektit të kernelit, gjë që bën të mundur ndarjen e një faqeje pllake në cgrupe të ndryshme, në vend të ndarjes së një cache të veçantë për çdo cgroup.

Bazuar në rezultatet e testit, rezulton se metoda e propozuar e menaxhimit të kujtesës lejon rritjen efikasitet duke përdorur pllakë të 45%, dhe gjithashtu do të zvogëlojë konsumin e përgjithshëm të memories së kernelit OS. Gjithashtu, duke reduktuar numrin e faqeve të alokuara për pllakë, zvogëlohet fragmentimi i memories në tërësi, gjë që nuk mund të mos ndikojë në performancën e sistemit.

Kontrolluesi i ri është testuar në serverët e prodhimit të Facebook për disa muaj, dhe deri më tani ky testim mund të quhet i suksesshëm: pa humbje në performancë dhe pa rritje të numrit të gabimeve, është vërejtur një rënie e qartë e konsumit të memories - në disa serverë deri në 1 GB. Ky numër është mjaft subjektiv, për shembull, testet e mëparshme treguan rezultate pak më të ulëta:

  • 650-700 MB në frontin e internetit
  • 750-800 MB në një server me cache të bazës së të dhënave
  • 700 MB në serverin DNS

>>> Faqja e autorit në GitHub


>>> Rezultatet e hershme të testit

Burimi: linux.org.ru

Shto një koment