Фацебоок-ов нови метод управљања меморијом

Један од чланова тима за развој друштвених мрежа фацебоок, Роман Гусхцхин, предложио је на маилинг листи програмера скуп Закрпе за Линук кернелса циљем побољшања управљања меморијом кроз имплементацију новог контролера за управљање меморијом - плоча (контролор меморије плоча).

распоред плоча је механизам за управљање меморијом дизајниран да ефикасније додељује меморију и елиминише значајну фрагментацију. Основа овог алгоритма је да ускладишти додељену меморију која садржи објекат одређеног типа и поново употреби ту меморију следећи пут када буде додељена објекту истог типа. Ову технику је први пут у СунОС увео Џеф Бонвик и сада се широко користи у језгрима многих Уник оперативних система, укључујући ФрееБСД и Линук.

Нови контролер је заснован на премештању обрачуна плоча са нивоа меморијске странице на ниво објекта кернела, што омогућава дељење једне слаб странице у различитим цгрупама, уместо додељивања засебне кеш меморије за сваку цгрупу.

На основу резултата испитивања произилази да предложени метод управљања меморијом омогућава повећање ефикасност користећи плочу да КСНУМКС%, а такође ће смањити укупну потрошњу меморије језгра ОС-а. Такође, смањењем броја страница додељених за плочу, смањује се фрагментација меморије у целини, што не може а да не утиче на перформансе система.

Нови контролер је неколико месеци тестиран на производним Фацебоок серверима и до сада се ово тестирање може назвати успешним: без губитка у перформансама и без повећања броја грешака, примећено је јасно смањење потрошње меморије - на неким сервери до 1ГБ. Овај број је прилично субјективан, на пример, ранији тестови су показали нешто ниже резултате:

  • 650-700 МБ на веб фронтенду
  • 750-800 МБ на серверу са кешом базе података
  • 700 МБ на ДНС серверу

>>> Страница аутора на ГитХуб-у


>>> Рани резултати теста

Извор: линук.орг.ру

Додај коментар