Cloudflare ááẠRust áá¬áá¬á áá¬ážááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ Pingora proxy ááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáááºážá á¡ááŒá±á¬ááºážá¡áá¬áá±ážááá¯á·ááŒááºážááœááºáááºá á¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯ááᯠááŒá±áá¬áá²á·áááºá proxy á¡áá áºááẠNGINX server-based configuration ááᯠLua scripts áá»á¬ážááŒáá·áº á¡á á¬ážááá¯ážááŒá®áž áá áºáá±á·áá»áŸáẠáá±á¬ááºážááá¯áá»ááºáá±á«ááºáž ááá®áá®áá¶áá»á±á¬áºááᯠáá¯ááºáá±á¬ááºáá«áááºá á¡áá°ážááŒá¯ááá±á¬ááºá á®ááá¯á· áá°ážááŒá±á¬ááºážááŒááºážááẠá¡ááºá¹áá«áááºá¡áá áºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºááŸáá·áº áá¯á¶ááŒá¯á¶á áááºáá»ááá±á¬ ááŸááºáá¬ááºáááºáááºááŸá¯ááŒá±á¬áá·áº áá¯á¶ááŒá¯á¶áá±ážááᯠááá¯ážááŒáŸáá·áºá á±áá¯á¶áá¬áá á áœááºážáá±á¬ááºáááºááŸáá·áº áááºážááŒá áºáá»áœá±áá¬ááŸá¯ááœáẠáááá¬áááºááŸá¬ážá áœá¬ ááá¯ážáá¬ááŒá±á¬ááºáž ááŸááºáá¬ážáá¬ážáá«ááẠ- Pingora-based ááŒá±ááŸááºážáá»ááºááẠá¡áá¯á¶ážááŒá¯áááºáááá¯á¡ááºáá«á Lua á ááá¯á·ááŒá±á¬áá·áº á¡áááºážá¡ááŒá Ạáá% áá»á±á¬á·áááºážáá±á¬ CPU ááŸáá·áº áá°áá®áá±á¬ traffic ááá¬áááᯠáá¯ááºáá±á¬ááºáá±á ááºááœáẠmemory 70% áá»á±á¬á·áááºážáááºá
NGINX ááŸáá·áº Lua script áá»á¬ážááá¯á¡ááŒá±áá¶á áá¯á¶ážá áœá²áá°áá»á¬ážááŸáá·áº end servers áá»á¬ážááŒá¬ážááœáẠproxy áááºážááŒá±á¬ááºážáá±ážááá·áºá áá áºááẠCloudflare áááá¯á¡ááºáá»ááºáá»á¬ážááᯠááŒáá·áºáááºážáá±ážááá·áºá áá áºááẠá¡áá»áááºá¡áá±á¬áºááŒá¬áá±á¬áºáááºáž ááœááºáááºááŒá®ážááœá¬ážáá¬ááŒá®áž áááºážáááŸá¯ááºááœá±ážááŸá¯áá»á¬áž ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ universal solution ááẠááá¯á¶áá±á¬ááºáá±á¬á·ááŒá±á¬ááºážá á áœááºážáá±á¬ááºáááºááŸáá·áº áá»á²á·ááœááºááá¯ááºááŸá¯ááŸáá·áº áá±á¬ááºáááºáá»á¬ážá¡ááœáẠá¡ááœáá·áºá¡áááºážáá áºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠááá·áºáááºáá»ááºáá»á¬ážááŒá±á¬áá·áº ááŒá áºáááºá á¡áá°ážáááŒáá·áºá ááá¯ážááŸááºážáá±á¬áá¶áá«ážáá±á«ááºááŸáá·áº load balancer ááá¯áá»á±á¬áºááœááºáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááá¯ááá·áºááœááºážáá¬ááœááºá áááºáá±á«áºááŸá¯áá»á¬ážááŸááá²á·áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá¬áá¬ááẠáá±á¬ááºážááá¯áá»ááºáá áºáá¯ááᯠáá¯ááºáá±á¬ááºááẠáá»ááºááœááºáá«áá áááºážá¡á¬áž á¡ááŒá¬ážáá¬áá¬áá áºáá¯áá¶ááá¯á· áá±á¬ááºážááá¯áá»ááºááᯠááŒááºáááºáá±ážááá¯á·áááºá áááºážá¡á¬áž HTTP áá±á«ááºážá á®ážáá»á¬áž á¡á á¯á¶ááá¯ááºááŒáá·áº áá±ážáá±á¬ááºááẠááá¯á¡ááºáá¬áááºá
áá®ážááŒá¬ážá¡áá¯ááºááá¬ážáá¯ááºáááºážá ááºáá»á¬ážááœáẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááœá²ááŒá¬ážáá±ážááá·áº áááá¯áá¬áá áºáá¯á¡á á¬ážá Pingora ááẠCloudflare á¡áá¯á¶ážááŒá¯ááŸá¯ááá á¹á áá»á¬ážááœáẠ(ááááºážááááºážááá¬ááá»á¬ážááŒá¬ážáá±á¬ ááá¯ááºáá»á¬ážá áœá¬á០áá±áá¬ááá¬ááá»á¬ážááŒá¬ážáá±á¬ ááá¬ááá»á¬ážááŒá¬ážáá±á¬) CPU cores áá»á¬ážá¡ááŒá¬áž á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá¯ááá¯áááá±á¬ááºá áœá¬ ááœá²áá±áá±ážááŒá±á¬ááºáž ááŒáááá·áº multi-threaded áá±á¬áºáááºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá á¡áá°ážáááŒáá·áºá nginx á áá¯ááºáááºážá ááºáá»á¬ážááœáẠáááºáá»ááºááá®áá±á¬ áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá±á«ááºážá ááºááŒááºážááẠCPU cores ááœáẠáááºáá»ááºááá®áá±á¬ áááºááᯠááŒá áºáá±á«áºá á±ááŒá®áž á¡áááºážá¡ááŒá áº-á¡áá±ážáá±ážáá±á¬ áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááŒá áºáá±á«áºá á±ááŒá®áž á¡ááŒá¬ážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá áá¯ááºáá±á¬ááºááŸá¯ááᯠááŸá±ážááœá±ážá á±áááºá ááá¯á·á¡ááŒááºá ááá¯ááºááœááºáá° áá¯ááºáááºážá ááºáá»á¬ážááŸáá·áº áá»áááºáááºááŸá¯áá°ážááœá²á¡á¬áž áá»áááºáááºááŸá¯ááẠá¡ááŒá¬ážááá¯ááºááœááºáá° áá¯ááºáááºážá ááºáá»á¬ážá០ááŒá®ážáá¬ážáá»áááºáááºááŸá¯áá»á¬ážááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážááᯠááœáá·áºáááŒá¯áá²á ááá¯ááºááœááºáá° áá¯ááºáááºážá ááºá¡áá»á¬ážá¡ááŒá¬ážááŸáááá·áºá¡áá« áááá±á¬ááºááŸá¯ááᯠáá»á±á¬á·áááºážá á±áá«áááºá
NGINX-
Pingora-
Pingora á á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠáá»áááºáááºááŸá¯á¡áá áºáá»á¬ážá áááºáááºááŸá¯á¡áá±á¡ááœááºááᯠá¡ááŒááẠ160 áá»áŸá±á¬á·áá»ááá¯ááºááŒá®áž ááŒááºáááºá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááá±á á¯ááᯠ87.1% á០99.92% á¡áá ááá¯ážááŒáŸáá·áºááá¯ááºá á±áá²á·áááºá ááŒááºáááºáá»áááºáááºááŸá¯áá»á¬ážááᯠáá»áŸá±á¬á·áá»ááŒááºážááŸáá·áº CPU cores áá»á¬ážááᯠááá¯ááá¯áááá±á¬ááºá áœá¬á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááŒááºá proxy á¡áá áºáá áœááºážáá±á¬ááºáááºááá¯ážáááºááŸá¯ááẠá¡áááá¡á¬ážááŒáá·áº nginx ááŒáá·áºá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ ááŸá±ážááœá±ážáá±á¬ Lua handlers áá»á¬ážááá¯áááºááŸá¬ážááŒááºážááŒá±á¬áá·áºááŒá áºáááºá
Memory ááŒáá·áº áá¯á¶ááŒá¯á¶á áœá¬áá¯ááºáá±á¬ááºááá¯ááºá á±áááºá¡ááœáẠáááááá¬áá»á¬ážáááŸáááá¯ááºááŸá¯ááŸáá·áºá¡áá° ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºáááŸáááẠRust áá¬áá¬á áá¬ážááᯠááœá±ážáá»ááºáá²á·áááºá Cloudflare á á¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬ á¡ááºáá»ááºáá®áá¬áá»á¬ážááŸáá·áº C áá¬áá¬á áá¬ážááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ áá¯ááºááᯠááŒááºáááºáá¯á¶ážáááºáá±áá±á¬áºáááºáž ááŸááºáá¬ááºááŒá¿áá¬áá»á¬ážááŒá áºá á±áá±á¬ á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááẠáááŒá áºááá¯ááºááŒá±á¬ááºáž áá±á¬áºááŒáá²á·ááẠ(á¥ááá¬á HTML parser ááœáẠá¡á¬ážáááºážáá»ááºáá áºáá¯)á áá¯ááºá¡áá áºá¡ááœááºá áááºážááẠá¡ááá®áá±ážááŸááºážááœáẠááŒá¿áá¬áá»á¬ážááŒá±á¬áá·áºááá¯ááºáá² Linux kernel ááŸáá·áº áá¬á·ááºáá² áá»áá¯á·ááœááºážááŸá¯áá»á¬ážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ Pingora ááœáẠáá»ááºááœááºááŸá¯áá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááá·áºááá á¹á áá»á¬ážá¡ááŒá±á¬ááºáž ááŒá±á¬ááá¯áá¬ážáááºá
ááá¯á·á¡ááŒááºá Linux kernel ááœáẠRust áá¬áá¬á
áá¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯áá«áááºááŸá¯ááŸáá·áºáááºáááºá ááá±á·áá»ááºážáááá·áº Open-Source Summit Europe ááœááºáááá·áºááœáẠááŒá±á¬ááŒá¬ážáá²á·ááá·áº Linus Torvalds á ááŸááºáá»ááºááᯠáá»áœááºá¯ááºááá¯á· ááŸááºáá¬ážááá¯ááºáá«áááºá Rust áá¬áá¬á
áá¬ážááŸá á
ááºáá
á¹á
ááºážáááá¯ááºáá¬áá»á¬ážááᯠáá®ááœááºáá¯ááºáá¯ááºáááºá¡ááœáẠPatches áá»á¬ážááẠ6.0 kernel ááœááºááá«áááºáá±á¬áºáááºáž Linus á¡á áááºážááá¯á·ááᯠ6.1 kernel ááœáẠáááºáá¶ááá¯ááºááœááºááŸáááŒá®áž áá±á«ááºážá
ááºážááŸá¯ááᯠááŸá±á¬áá·áºááŸá±ážáááºááá¯ááºáá«á Rust á¡ááœáẠáá¶á·ááá¯ážáá°áá®ááŸá¯áá±á«ááºážááá·áºááŒááºážá¡ááœáẠááŸá¯á¶á·áá±á¬áºááŸá¯áá
áºáá¯á¡áá±ááŒáá·áºá áá¯á¶ááŒá¯á¶áá±ážá¡áá±á«áº á¡ááŒá¯ááá±á¬áá±á¬ááºáá±á¬ á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááŒáẠLinus ááẠáááºááŒá®ážááœááºá¡áá¯áá»á¬ážá á¡ááŒá±á¡áá±ááœáẠá¡áá±ážááŒá®ážááá·áº áá«áááºáá°á¡áá
áºáá»á¬ážá áááºááá¯ááºáááºážá¡áá±á«áº á
áááºáááºá
á¬ážááŸá¯ááá¯ážáá¬á
á±ááẠá¡ááœáá·áºá¡áááºážááᯠááá¯ážáá¬ážáá±á¬áºááŒáá«áááºá
source: opennet.ru