Facebook нь Линукс цөмд зориулсан хавтангийн санах ойн удирдлагын шинэ механизмыг санал болгов

Роман Гущин (Роман Гущин) Facebook-ээс Нийтлэгдсэн Линукс цөмийн хөгжүүлэгчдийн захидлын жагсаалтад санах ойн хуваарилалтын шинэ хянагчийг хэрэгжүүлсэн олон нөхөөсийг оруулсан болно. хавтангийн (хавтан санах ойн хянагч). Шинэ хянагч нь хавтангийн нягтлан бодох бүртгэлийг санах ойн хуудасны түвшингээс цөмийн объектын түвшин рүү шилжүүлснээрээ онцлог бөгөөд энэ нь бүлэг бүрт тусдаа хавтангийн кэш хуваарилахын оронд хавтангийн хуудсыг өөр өөр бүлгүүдэд хуваалцах боломжтой болгодог.

Санал болгож буй арга нь хавтанг ашиглах үр ашгийг нэмэгдүүлэх, хавтангийн санах ойн хэмжээг 30-45% бууруулах, цөмийн санах ойн нийт хэрэглээг мэдэгдэхүйц бууруулах боломжийг олгодог. Хөдөлгөөнгүй хавтангийн тоог бууруулснаар санах ойн хуваагдлыг багасгахад эерэг нөлөө үзүүлдэг. Шинэ санах ойн хянагч нь хавтангийн нягтлан бодох бүртгэлийн кодыг ихээхэн хялбаршуулж, бүлэг бүрийн хувьд хавтангийн кэшийг динамикаар үүсгэх, устгахад төвөгтэй алгоритмуудыг ашиглах шаардлагагүй болно. Шинэ хэрэглүүлэлтийн бүх санах ойн бүлгүүд нь хавтангийн кэшийн нийтлэг багцыг ашигладаг бөгөөд хавтангийн кэшийн ашиглалтын хугацаа нь бүлэгт суулгагдсан хүмүүсийн ашиглалтын хугацаатай ямар ч хамааралгүй болсон. хязгаарлалт санах ойн ашиглалтын талаар.

Шинэ хавтангийн хянагч дээр хэрэгжүүлсэн нөөцийн нягтлан бодох бүртгэлийг илүү нарийвчлалтай хийх нь CPU-г онолын хувьд илүү их ачаалах ёстой боловч практик дээр ялгаа нь ач холбогдолгүй болсон. Ялангуяа шинэ хавтангийн хянагчийг өөр өөр төрлийн ачааллыг зохицуулдаг Facebook-ийн үйлдвэрлэлийн серверүүдэд хэдэн сарын турш ашиглаж байгаа бөгөөд мэдэгдэхүйц регресс хараахан илрээгүй байна. Үүний зэрэгцээ санах ойн хэрэглээ мэдэгдэхүйц буурч байна - зарим хостууд дээр 1 ГБ хүртэлх санах ойг хадгалах боломжтой байсан боловч энэ үзүүлэлт нь ачааллын шинж чанар, RAM-ийн нийт хэмжээ, CPU-ийн тоо зэргээс ихээхэн хамаардаг. санах ойтой ажиллах онцлог. Өмнөх туршилтууд үзүүлэв санах ойн хэрэглээг вэбийн урд талд 650-700 МБ (хавтан санах ойн 42%), DBMS кэштэй сервер дээр 750-800 MB (35%), DNS сервер дээр 700 МБ (36%)-аар бууруулах.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх