Cloudflare hloov los ntawm NGINX mus rau nws tus kheej Pingora npe, sau hauv Rust

Cloudflare tshaj tawm txoj kev hloov pauv ntawm nws cov ntsiab lus xa khoom siv los siv Pingora npe, sau ua lus Rust. Lub npe tshiab hloov pauv NGINX server-based configuration nrog Lua scripts, thiab ua ntau tshaj li ib trillion thov ib hnub twg. Nws tau raug sau tseg tias kev hloov pauv mus rau lub npe tshwj xeeb tso cai tsis yog tsuas yog siv cov yam ntxwv tshiab thiab nce kev ruaj ntseg vim muaj kev nyab xeeb ntawm lub cim xeeb, tab sis kuj ua rau muaj kev nce qib hauv kev ua tau zoo thiab kev txuag nyiaj txiag - Pingora-raws li kev daws teeb meem tsis tas yuav siv. ntawm Lua, thiab yog li ntawd siv 70% tsawg dua cov peev txheej CPU thiab 67% tsawg lub cim xeeb thaum ua haujlwm tib lub tsheb.

Rau lub sijhawm ntev, lub kaw lus rau kev tso npe nkag ntawm cov neeg siv thiab cov neeg siv kawg raws li NGINX thiab Lua cov ntawv txaus siab rau cov kev xav tau ntawm Cloudflare, tab sis raws li lub network loj hlob thiab nws cov complexity tau nce, cov kev daws teeb meem thoob ntiaj teb tau dhau los ua tsis txaus, ob qho tib si hais txog kev ua tau zoo thiab vim muaj kev txwv hauv extensibility thiab kev siv cov cib fim tshiab rau cov neeg siv khoom. Tshwj xeeb, muaj kev sib tw hauv kev ntxiv kev ua haujlwm dhau ntawm lub qhov rooj yooj yim thiab cov khoom sib npaug. Piv txwv li, nws tau dhau los ua qhov tsim nyog, yog tias tus neeg rau zaub mov tsis ua tiav qhov kev thov, rov xa qhov kev thov mus rau lwm tus neeg rau zaub mov, muab nws nrog cov txheej txheem sib txawv ntawm HTTP headers.

Hloov chaw ntawm cov qauv tsim uas cais cov kev thov rau hauv cov txheej txheem neeg ua haujlwm sib cais, Pingora siv cov qauv sib txuas, uas nyob rau hauv Cloudflare siv cov ntaub ntawv (siab ntau ntawm cov tsheb khiav los ntawm cov chaw sib txawv nrog kev hloov pauv loj) tau pom tias muaj kev faib tawm ntau dua ntawm cov peev txheej ntawm CPU cores. Tshwj xeeb, nginx cov txheej txheem-binding ntawm cov kev thov tsis sib npaug ua rau tsis muaj qhov sib npaug ntawm cov CPU cores, uas ua rau muaj kev thov siv ntau thiab thaiv I / O ua rau kev ua haujlwm ntawm lwm qhov kev thov. Tsis tas li ntawd, kev khi lub pas dej sib txuas rau cov txheej txheem handler tsis tso cai rov qab siv cov kev sib txuas uas twb tau tsim los ntawm lwm cov txheej txheem handler, uas txo cov kev ua tau zoo thaum muaj ntau tus txheej txheem handler.

NGINX:

Cloudflare hloov los ntawm NGINX mus rau nws tus kheej Pingora npe, sau hauv Rust

Pingora:

Cloudflare hloov los ntawm NGINX mus rau nws tus kheej Pingora npe, sau hauv Rust

Qhov kev siv ntawm Pingora ua rau nws muaj peev xwm txo tus naj npawb ntawm kev sib txuas ntawm cov kev sib txuas tshiab los ntawm 160 lub sij hawm thiab nce qhov feem ntawm kev thov rov qab los ntawm 87.1% mus rau 99.92%. Ntxiv nrog rau kev txo qis kev sib txuas thiab kev siv ntau dua ntawm CPU cores, tus neeg sawv cev tshiab kev txhim kho kev ua tau zoo yog vim qhov kev tshem tawm qeeb Lua handlers siv nrog nginx.

Cov lus Rust tau raug xaiv kom ua tiav kev ua haujlwm siab ua ke nrog kev muaj cov cuab yeej los xyuas kom muaj kev nyab xeeb nrog kev nco. Nws tau hais tias txawm tias cov kws tshaj lij tsim nyog ntawm Cloudflare thiab tshuaj xyuas cov cai sau ua lus C, nws tsis tuaj yeem zam qhov tsis raug ua rau muaj teeb meem nco (piv txwv li, qhov tsis zoo hauv HTML parser). Raws li txoj cai tshiab, nws hais txog cov xwm txheej ntawm kev txheeb xyuas qhov ua tsis tiav hauv Pingora, uas tau tshwm sim tsis yog los ntawm cov teeb meem hauv daim ntawv thov, tab sis los ntawm qhov yuam kev hauv Linux ntsiav thiab kho vajtse tsis ua haujlwm.

Tsis tas li ntawd, peb tuaj yeem nco ntsoov cov lus tawm tswv yim ntawm Linus Torvalds, tau hais tawm ntawm Open-Source Summit Europe lub rooj sib tham uas muaj hnub no, hais txog kev suav nrog kev txhawb nqa rau cov lus Rust hauv Linux kernel. Patches rau kev tsim cov cuab yeej tsav tsheb hauv cov lus Rust tsis suav nrog 6.0 kernel, tab sis raws li Linus, lawv feem ntau yuav raug lees txais rau hauv 6.1 kernel; nws yuav tsis ncua kev koom ua ke. Raws li kev txhawb nqa ntxiv rau kev txhawb nqa Rust, ntxiv rau qhov muaj txiaj ntsig zoo ntawm kev ruaj ntseg, Linus kuj tseem hais txog lub sijhawm los ua kom muaj kev txaus siab rau kev ua haujlwm ntawm lub hauv paus ntawm cov neeg tuaj koom tshiab, uas yog qhov tseem ceeb hauv cov ntsiab lus ntawm cov neeg laus laus.

Tau qhov twg los: opennet.ru

Ntxiv ib saib