Facebook tau tawm tswv yim tshiab slab nco tswj mechanism rau Linux kernel

Roman Gushchin (Roman Gushchin) los ntawm Facebook luam tawm ntawm daim ntawv xa ntawv ntawm Linux kernel developers ib txheej ntawm thaj ua rau thaj nrog kev siv lub cim xeeb tshiab faib tswj qaug zog (slab memory controller). Tus maub los tshiab yog qhov tseem ceeb rau kev txav slab accounting los ntawm lub cim xeeb nplooj ntawv qib mus rau qib cov khoom kernel, uas ua rau nws muaj peev xwm faib cov nplooj ntawv slab nyob rau hauv txawv cgroups, es tsis txhob faib cais slab caches rau txhua cgroup.

Txoj kev npaj ua kom nws ua tau kom ua tau zoo ntawm kev siv slab, txo qhov luaj li cas ntawm lub cim xeeb siv rau slab los ntawm 30-45%, thiab txo qhov kev nco tag nrho ntawm cov kernel. Los ntawm kev txo tus naj npawb ntawm cov slabs uas tsis yog txav tau, kuj tseem muaj txiaj ntsig zoo hauv kev txo cov cim xeeb tawg. Tus tswj hwm lub cim xeeb tshiab ua kom yooj yim rau txoj cai rau kev sau nyiaj rau slabs thiab tsis tas yuav tsum siv cov txheej txheem nyuaj rau kev tsim thiab tshem tawm slab caches rau txhua pawg. Tag nrho cov cim xeeb cgroups hauv qhov kev siv tshiab siv cov txheej txheem ntau ntawm slab caches, thiab lub neej ntawm slab caches tsis raug khi rau lub neej ntawm cov neeg teeb tsa los ntawm cgroup. txwv ntawm kev siv nco.

Qhov kev siv nyiaj ntau dua raug siv nyob rau hauv tus tshiab slab maub los yuav tsum theoretically load lub CPU ntau, tab sis nyob rau hauv kev xyaum, qhov sib txawv yog tsis tseem ceeb. Tshwj xeeb, tus tshiab slab maub los tau siv rau ntau lub hlis ntawm kev tsim khoom Facebook servers tuav ntau hom kev ua haujlwm, thiab tseem tsis tau pom muaj qhov cuam tshuam loj heev. Nyob rau tib lub sijhawm, muaj qhov txo qis hauv kev siv lub cim xeeb - ntawm qee tus tswv nws tuaj yeem txuag tau txog 1GB ntawm lub cim xeeb, tab sis qhov ntsuas no yog nyob ntawm qhov xwm txheej, tag nrho qhov loj me ntawm RAM, tus lej ntawm CPUs. thiab cov yam ntxwv ntawm kev ua haujlwm nrog kev nco. Cov kev xeem dhau los qhia txo kev nco noj los ntawm 650-700 MB (42% ntawm slab nco) ntawm lub vev xaib pem hauv ntej-kawg, 750-800 MB (35%) ntawm lub server nrog DBMS cache thiab 700 MB (36%) ntawm DNS server.

Tau qhov twg los: opennet.ru

Ntxiv ib saib