Facebook нь TMO механизмыг нэвтрүүлсэн бөгөөд энэ нь серверийн санах ойн 20-32% -ийг хэмнэх боломжийг олгодог

Facebook-ийн инженерүүд (ОХУ-д хориглосон) өнгөрсөн жил TMO (Transparent Memory Offloading) технологийг нэвтрүүлсэн тухай тайлан нийтэлсэн бөгөөд энэ нь NVMe гэх мэт ажилд шаардагдахгүй хоёрдогч өгөгдлийг хямд диск рүү шилжүүлэх замаар серверийн RAM-ыг ихээхэн хэмнэх боломжийг олгодог. SSD - дискүүд. Facebook-ийн тооцоолсноор TMO ашиглах нь сервер бүрийн RAM-ийн 20-32% хэмнэнэ. Энэхүү шийдэл нь програмууд тусгаарлагдсан саванд ажилладаг дэд бүтцэд ашиглахад зориулагдсан. TMO-ийн цөмийн талын бүрэлдэхүүн хэсгүүд нь Линуксийн цөмд аль хэдийн орсон байдаг.

Линуксийн цөмийн тал дээр уг технологийг PSI (Pressure Stall Information) дэд систем дэмждэг бөгөөд 4.20 хувилбараас эхлэн ашиглах боломжтой. PSI нь санах ой багатай янз бүрийн боловсруулагчдад аль хэдийн ашиглагдаж байгаа бөгөөд янз бүрийн нөөцийг (CPU, санах ой, I/O) авахын тулд хүлээх хугацааны талаарх мэдээллийг шинжлэх боломжийг олгодог. PSI-ийн тусламжтайгаар хэрэглэгчийн орон зайн процессорууд системийн ачааллын түвшин болон удаашралын хэв маягийг илүү нарийвчлалтай үнэлж, гүйцэтгэлд мэдэгдэхүйц нөлөө үзүүлэхээс өмнө гажуудлыг эрт илрүүлэх боломжийг олгодог.

Хэрэглэгчийн орон зайд TMO-г Senpai бүрэлдэхүүнээр хангадаг бөгөөд энэ нь cgroup2-ээр дамжуулан PSI-ээс хүлээн авсан өгөгдөл дээр үндэслэн хэрэглээний контейнеруудын санах ойн хязгаарыг динамикаар тохируулдаг. Senpai нь PSI-ээр дамжуулан нөөцийн хомсдол үүсэх шинж тэмдгүүдэд дүн шинжилгээ хийж, санах ойд хандах хандалтыг удаашруулахад програмуудын мэдрэмтгий байдлыг үнэлж, ажиллахад шаардлагатай өгөгдөл нь RAM-д хадгалагдах хамгийн бага санах ойн хэмжээг тодорхойлохыг оролддог. файлын кэшэд хадгалагдсан эсвэл одоогоор шууд ашиглагдаагүй өгөгдлийг своп хуваалт руу шилжүүлнэ.

Facebook нь TMO механизмыг нэвтрүүлсэн бөгөөд энэ нь серверийн санах ойн 20-32% -ийг хэмнэх боломжийг олгодог

Тиймээс TMO-ийн мөн чанар нь санах ойн хэрэглээний хувьд процессыг хатуу хоолны дэглэмд байлгаж, нүүлгэх нь гүйцэтгэлд мэдэгдэхүйц нөлөө үзүүлэхгүй ашиглагдаагүй санах ойн хуудсуудыг солих явдал юм (жишээлбэл, зөвхөн эхлүүлэх үед ашигладаг код бүхий хуудас, нэг удаагийн хэрэглээ). дискний кэш дэх өгөгдөл). Санах ойн дарамтын хариуд мэдээллийг солих хэсэг рүү гаргахаас ялгаатай нь TMO-д өгөгдөл нь идэвхтэй таамаглал дээр тулгуурлан хасагддаг.

Нүүлгэн шилжүүлэх шалгууруудын нэг бол санах ойн хуудас руу 5 минутын турш нэвтрэх боломжгүй байх явдал юм. Ийм хуудсыг хүйтэн санах ойн хуудас гэж нэрлэдэг бөгөөд дунджаар програмын санах ойн 35 орчим хувийг эзэлдэг (програмын төрлөөс хамааран 19% -иас 65% хүртэл байдаг). Урьдчилан сэргийлэх нь нэргүй санах ойн хуудсуудтай холбоотой үйл ажиллагаа (програмаас хуваарилсан санах ой) болон файлын кэш хийхэд ашигладаг санах ой (цөмөөр хуваарилагдсан) зэргийг харгалзан үздэг. Зарим програмуудад үндсэн хэрэглээ нь үл мэдэгдэх санах ой байдаг бол заримд нь файлын кэш чухал байдаг. Кэшийг зайлуулах тэнцвэргүй байдлаас зайлсхийхийн тулд TMO нь нэргүй хуудсууд болон файлын кэштэй холбоотой хуудсуудыг пропорциональ хэмжээгээр устгадаг шинэ пейжерийн алгоритмыг ашигладаг.

Байнга ашиглагддаг хуудсуудыг удаашруулсан санах ой руу түлхэх нь гүйцэтгэлд мэдэгдэхүйц нөлөө үзүүлэхгүй ч техник хангамжийн зардлыг мэдэгдэхүйц бууруулах боломжтой. Өгөгдлийг SSD хөтчүүд эсвэл RAM дахь шахсан солилцооны талбарт шилжүүлдэг. Нэг байт өгөгдөл хадгалах зардлын хувьд NVMe SSD ашиглах нь RAM дахь шахалтыг ашиглахаас 10 дахин хямд байдаг.

Facebook нь TMO механизмыг нэвтрүүлсэн бөгөөд энэ нь серверийн санах ойн 20-32% -ийг хэмнэх боломжийг олгодог


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

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