Facebook jaunā atmiņas pārvaldības metode

Viens no sociālo tīklu izstrādes komandas dalībniekiem Facebook, Romāns Guščins, izstrādātāja adresātu sarakstā piedāvāts kopums Linux kodola ielāpikuru mērķis ir uzlabot atmiņas pārvaldību, ieviešot jaunu atmiņas pārvaldības kontrolieri, plāksne (plātņu atmiņas kontrolieris).

plātņu sadale ir atmiņas pārvaldības mehānisms, kas paredzēts, lai efektīvāk piešķirtu atmiņu un novērstu ievērojamu sadrumstalotību. Šī algoritma pamatā ir saglabāt piešķirto atmiņu, kurā ir noteikta veida objekts, un atkārtoti izmantot šo atmiņu nākamreiz, kad tā tiek piešķirta tāda paša veida objektam. Šo metodi SunOS sistēmā pirmo reizi ieviesa Džefs Bonviks, un tagad to plaši izmanto daudzu Unix operētājsistēmu kodolos, tostarp FreeBSD un Linux.

Jaunais kontrolleris ir balstīts uz plātņu uzskaites pārvietošanu no atmiņas lapas līmeņa uz kodola objekta līmeni, kas ļauj koplietot vienu plātņu lapu dažādās cgrupās, nevis katrai cgrupai piešķirt atsevišķu kešatmiņu.

Pamatojoties uz testa rezultātiem, izriet, ka piedāvātā atmiņas pārvaldības metode ļauj palielināt efektivitāte izmantojot plāksni līdz 45%, kā arī samazinās kopējo OS kodola atmiņas patēriņu. Tāpat, samazinot plātnei atvēlēto lappušu skaitu, tiek samazināta atmiņas sadrumstalotība kopumā, kas nevar neietekmēt sistēmas veiktspēju.

Jaunais kontrolieris vairākus mēnešus ir testēts uz ražošanas Facebook serveriem, un līdz šim šo testēšanu var saukt par veiksmīgu: bez veiktspējas zudumiem un kļūdu skaita pieauguma ir pamanīts skaidrs atmiņas patēriņa samazinājums - dažos serveri līdz 1 GB. Šis skaitlis ir diezgan subjektīvs, piemēram, iepriekšējie testi uzrādīja nedaudz zemākus rezultātus:

  • 650–700 MB tīmekļa priekšgalā
  • 750-800 MB serverī ar datu bāzes kešatmiņu
  • 700 MB DNS serverī

>>> Autora lapa vietnē GitHub


>>> Agrīnie testa rezultāti

Avots: linux.org.ru

Pievieno komentāru