Facebook Linux жүйесінде Slab жад контроллерін жақсартатын патчтарды шығарды

Роман Гущин (Facebook бағдарламалық жасақтамасының инженері) тізілім Linux ядросының даму тізімінде, плиталар контроллерінің жадының картографиялық қосымшасына арналған патчтар жиынтығы (жад контроллері).

Жаңа контроллер керемет тақталарды есепке алуды жад бетінің деңгейінен ядро ​​нысаны деңгейіне жылжыту арқылы, әр топ с үшін бөлек тақта кэштерін бөлудің орнына, әр түрлі с топтары бойынша тақта парақтарын бөлісуге мүмкіндік беру.

Роман қолданыстағы тақталардың жады контроллерінде «өте маңызды кемшіліктер» тапты, бұл қазіргі кезде топтармен аз пайдалануға әкеледі.

«Қолданыстағы орналасудың плиталарды аз пайдалануға әкелетінінің нақты себебі қарапайым: тақта парақтары тек жад пулымен қолданылады.

Егер топ жасаған белгілі бір мөлшердегі бірнеше бөлулер болса немесе топ жойылғаннан кейін бірнеше белсенді нысандар қалса немесе топта кез-келген ядро ​​нысандарын әрең бөлетін жалғыз бұрандалы қосымшасы болса, бірақ әр уақытта жаңа CPU-да: осы жағдайлардың барлығында плитаны пайдалану өте төмен.

Егер кмем есебі өшірілсе, ядро ​​басқа орналастыру үшін тақта беттерінде бос орынды пайдалана алады. «

Ұсынылған плита жады контроллері Романо Гущин өткен жылы өте перспективалы болды тиімділікті арттырады плитаны пайдалану, қолданылатын жад көлемін азайту тақта үшін 30-45% -ға және жалпы ядро ​​жадының шығынын едәуір азайтады.

Сонымен қатар, орындалған патчтар көрсетті Facebook қазірдің өзінде өз серверлерінде кодты өндірісте қолданады және болған алдыңғы веб-серверлер үшін ~ 650-700MB + үнемдеу, дерекқорды кэштеу және DNS серверлері, басқа марапаттармен қатар.

Жылжымалы емес тақталардың санын азайту арқылы оң әсер жадының фрагментациясын азайту саласында да байқалады. Жаңа жад контроллері есепке алу тақтасының кодын едәуір жеңілдетеді және әр топ с үшін тақталардың кэштерін динамикалық құру және жою үшін күрделі алгоритмдерді қажет етпейді.

Жаңа іске асырудағы жадқа арналған барлық топтар тақталар кэштерінің жалпы жиынтығын пайдаланады, ал тақталар кэштерінің қызмет ету мерзімі енді топ арқылы орнатылған жадының шектеулерімен байланысты болмайды.

Жаңа плита контроллерінде енгізілген ресурстардың дәл есебі теориялық тұрғыдан CPU-ны көбірек жүктеуі керек, бірақ іс жүзінде айырмашылықтар шамалы болып шықты.

Атап айтқанда жаңа плита драйвері бірнеше ай бойы Facebook серверлерінде қолданылған әртүрлі типтегі жүктемелермен жұмыс істейтін және осы уақытқа дейін айтарлықтай регрессиялар анықталмаған.

Патчта жартылай тәуелсіз бөліктер бар, олар плитаның жад контроллерінен тыс қолданылуын таба алады:

  • Келешекте парақтың өлшеміне сәйкес келмейтін басқа объектілерді санау үшін қолданылатын Subpage Load API, мысалы, перкпу бөлімдері
  • Сілтегіштер memcg-ге есептелетін mem_cgroup_ptr API-ны басқа объектілерді тиімді қайта жөндеу үшін қайта пайдалануға болады, мысалы pagecache.

Сонымен қатар, жадты тұтынудың айтарлықтай төмендеуі байқалады- Кейбір хосттарда 1 ГБ дейінгі жадты үнемдеуге болатын, бірақ бұл көрсеткіш көбінесе жүктің сипатына байланысты, жедел жадының жалпы мөлшері, процессордың көлемі және жадпен жұмыс істеу сипаттамалары.

Әр жад топтары үшін бөлек kmem_cache жиынтығының орнына екі глобалды жиынтық қолданылады: есепке алынбаған түбірлік жиын және топтық топтың топтық тағайындаулары және екінші жиын барлық қалған тапсырмалар үшін. Бұл жеке kmem_cache өмір бойы басқаруды жеңілдетуге мүмкіндік береді.

Сонымен, егер сіз 19 патчтың жаңа жиынтығын білгіңіз келсе, оны тізімнен табуға болады ядро поштасы.


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.