Cloudflare гузариши шабакаи интиқоли мундариҷаи худро барои истифодаи прокси Pingora, ки бо забони Rust навишта шудааст, эълон кард. Прокси нав конфигуратсияи сервери NGINX-ро бо скриптҳои Lua иваз мекунад ва дар як рӯз беш аз як триллион дархостро коркард мекунад. Қайд карда мешавад, ки гузариш ба прокси махсусгардонидашуда на танҳо имкон дод, ки хусусиятҳои нав ва баланд бардоштани амният аз ҳисоби амалиёти бехатари хотира, балки боиси афзоиши назарраси кор ва сарфаи захираҳо гардид - ҳалли асоси Pingora истифодаи талаб намекунад. аз Lua мебошад ва аз ин рӯ ҳангоми коркарди ҳамон миқдори трафик 70% захираҳои CPU ва 67% хотираи камтар истеъмол мекунад.
Муддати тӯлонӣ, системае барои прокси-трафик байни корбарон ва корбарони ниҳоӣ серверҳо Бар асоси скриптҳои NGINX ва Lua, ҳалли мавҷудаи Cloudflare ба ниёзҳои он ҷавобгӯ буд, аммо бо афзоиши шабака ва афзоиши мураккабии он, ҳалли ҳамаҷониба ҳам аз ҷиҳати иҷроиш ва ҳам аз сабаби маҳдудиятҳо дар миқёспазирӣ ва татбиқи хусусиятҳои нави муштарӣ нокифоя буд. Аз ҷумла, илова кардани функсияҳо берун аз дарвозаи оддӣ ва мувозинаткунандаи бор душвор шуд. Масалан, ниёз ба вокуниши фаврӣ ба миён омад. сервер дархостро ба сервери дигар аз нав фиристед ва онро бо маҷмӯи дигари сарлавҳаҳои HTTP таъмин кунед.
Ба ҷои меъморие, ки дархостҳоро ба равандҳои алоҳидаи коргарӣ ҷудо мекунад, Pingora модели бисёр риштаро истифода мебарад, ки дар ҳолатҳои истифодаи Cloudflare (консентратсияи баланди трафик аз сайтҳои гуногун бо тағирёбии калони оморӣ) тақсимоти самараноки захираҳоро байни ядроҳои CPU нишон дод. Махсусан, nginx-и дархостҳои нобаробар ба равандҳо боиси сарбории номутаносиби ядроҳои CPU гардид, ки дар натиҷа дархостҳои захираҳои пуршиддат ва бастани воридот ва баромади коркарди дархостҳои дигарро суст мекунад. Илова бар ин, пайваст кардани ҳавзи пайвастшавӣ ба равандҳои коркардкунанда имкон намедиҳад, ки пайвастагиҳои аллакай муқарраршуда аз дигар равандҳои коркардкунанда истифода шаванд, ки ин ҳангоми мавҷудияти шумораи зиёди равандҳои коркард самаранокиро коҳиш медиҳад.
NGINX:

Пингора:

Татбиқи Pingora имкон дод, ки шумораи насби пайвастҳои нав 160 маротиба кам карда, ҳиссаи дархостҳои такрорӣ аз 87.1% то 99.92% зиёд карда шавад. Илова ба кам кардани пайвастҳои такрорӣ ва истифодаи самараноки ядроҳои CPU, беҳтар шудани кори прокси нав асосан аз хориҷ кардани коркардкунандагони сусти Lua, ки бо nginx истифода мешаванд, вобаста буд.
Rust барои қобилияти он барои ноил шудан ба самаранокии баланд ва дар айни замон таъмини хусусиятҳои бехатарии хотира интихоб карда шуд. Қайд карда мешавад, ки сарфи назар аз тахассуси баланди муҳандисони Cloudflare ва раванди васеи баррасии код, хатогиҳое, ки боиси мушкилоти хотира мешаванд (масалан, осебпазирӣ дар таҳлилгари HTML), дар коди C пешгирӣ карда намешуданд. Дар мавриди рамзи нав, қайд карда мешавад, ки садамаҳо дар Pingora таҳлил карда шуданд, ки маълум шуд, ки онҳо на аз мушкилоти барнома, балки аз хатои ядро ба вуҷуд омадаанд. Linux ва нокомиҳои сахтафзор.
Илова бар ин, қайд кардан бамаврид аст, ки шарҳи Линус Торвалдс дар конфронси Саммити Аврупои Open-Source, ки айни замон баргузор мешавад, дар бораи дохил кардани дастгирии забони Rust дар ядро гуфтааст. LinuxПатчҳо барои таҳияи драйверҳои дастгоҳ дар Rust дар ядрои 6.0 дохил карда нашудаанд, аммо ба гуфтаи Линус, онҳо эҳтимолан дар ядрои 6.1 дохил карда мешаванд ва ӯ нақша надорад, ки ҳамгироиро ба таъхир андозад. Ғайр аз манфиатҳои амниятӣ, Линус инчунин имконияти афзоиши таваҷҷӯҳ ба таҳияи ядроро дар байни саҳмгузорони нав зикр мекунад, ки бо назардошти пиршавии дастаи асосии он муҳим аст.
Манбаъ: opennet.ru
