Cloudflare NGINX සිට Rust වලින් ලියා ඇති තමන්ගේම Pingora proxy වෙත මාරු විය

Cloudflare විසින් රස්ට් භාෂාවෙන් ලියා ඇති Pingora ප්‍රොක්සි භාවිතා කිරීම සඳහා එහි අන්තර්ගත බෙදාහැරීමේ ජාලය සංක්‍රමණය වන බව නිවේදනය කළේය. නව ප්‍රොක්සිය NGINX සේවාදායකය පදනම් කරගත් වින්‍යාසය Lua ස්ක්‍රිප්ට් සමඟ ප්‍රතිස්ථාපනය කරයි, සහ දිනකට ඉල්ලීම් ට්‍රිලියනයකට වඩා ක්‍රියාවට නංවයි. විශේෂිත ප්‍රොක්සියකට මාරුවීම මඟින් මතකයේ ආරක්ෂිත ක්‍රියාකාරිත්වය හේතුවෙන් නව විශේෂාංග ක්‍රියාත්මක කිරීමට සහ ආරක්ෂාව වැඩි කිරීමට පමණක් නොව, කාර්ය සාධනය සහ සම්පත් ඉතිරිකිරීම්වල සැලකිය යුතු වැඩි වීමක් ද ඇති කළ බව සටහන් වේ - පිංගෝරා මත පදනම් වූ විසඳුම භාවිතය අවශ්‍ය නොවේ. Lua හි, සහ එම නිසා එම රථවාහන ප්‍රමාණය සැකසීමේදී 70% අඩු සම්පත් CPU සහ 67% අඩු මතකයක් පරිභෝජනය කරයි.

දිගු කලක් තිස්සේ, NGINX සහ Lua ස්ක්‍රිප්ට් මත පදනම් වූ පරිශීලකයන් සහ අවසාන සේවාදායකයන් අතර ගමනාගමනය ප්‍රොක්සි කිරීමේ පද්ධතියක් Cloudflare හි අවශ්‍යතා තෘප්තිමත් කළ නමුත් ජාලය වර්ධනය වූ විට සහ එහි සංකීර්ණත්වය වැඩි වූ විට, විශ්වීය විසඳුමක් ප්‍රමාණවත් නොවීය. කාර්ය සාධනය සහ සේවාලාභීන් සඳහා නව අවස්ථා පුළුල් කිරීම සහ ක්රියාත්මක කිරීමේ සීමාවන් හේතුවෙන්. විශේෂයෙන්ම, සරල ද්වාරයකින් සහ පැටවුම් සමතුලිතතාවයෙන් ඔබ්බට ක්‍රියාකාරීත්වය එකතු කිරීමේදී අභියෝග ඇති විය. උදාහරණයක් ලෙස, සේවාදායකය ඉල්ලීමක් සැකසීමට අපොහොසත් වුවහොත්, වෙනත් සේවාදායකයකට ඉල්ලීම නැවත යැවීම, එයට වෙනස් HTTP ශීර්ෂ කට්ටලයක් ලබා දීම අවශ්‍ය විය.

ඉල්ලීම් වෙනම සේවක ක්‍රියාවලීන්ට වෙන් කරන ගෘහ නිර්මාණ ශිල්පයක් වෙනුවට, Pingora බහු-නූල් ආකෘතියක් භාවිතා කරයි, එය Cloudflare භාවිතා කරන අවස්ථා වලදී (විශාල සංඛ්‍යානමය මාරුවක් සහිත විවිධ අඩවි වලින් ගමනාගමනයේ ඉහළ සාන්ද්‍රණය) CPU මධ්‍ය අතර සම්පත් වඩාත් කාර්යක්ෂම බෙදා හැරීමක් පෙන්නුම් කරයි. විශේෂයෙන්ම, nginx හි අසමතුලිත ඉල්ලීම් ක්‍රියාවලි වෙත බැඳීම හේතුවෙන් CPU මධ්‍යයන් මත අසමතුලිත බර පැටවීම, සම්පත්-දැඩි ඉල්ලීම් සහ I/O අවහිර කිරීම අනෙකුත් ඉල්ලීම් සැකසීම මන්දගාමී වීම හේතු විය. මීට අමතරව, සම්බන්ධක සංචිතය හසුරුවන්න ක්රියාවලීන් වෙත බැඳීම, වෙනත් හැසිරවීම් ක්රියාවලීන්ගෙන් දැනටමත් ස්ථාපිත සම්බන්ධතා නැවත භාවිතා කිරීමට ඉඩ නොදෙන අතර, විශාල හසුරුවන්න ක්රියාවලීන් ඇති විට කාර්යක්ෂමතාව අඩු කරයි.

NGINX:

Cloudflare NGINX සිට Rust වලින් ලියා ඇති තමන්ගේම Pingora proxy වෙත මාරු විය

පිංගෝරා:

Cloudflare NGINX සිට Rust වලින් ලියා ඇති තමන්ගේම Pingora proxy වෙත මාරු විය

Pingora ක්‍රියාත්මක කිරීම මඟින් නව සම්බන්ධතා ස්ථාපනය කිරීම් සංඛ්‍යාව 160 ගුණයකින් අඩු කිරීමටත්, නැවත භාවිත කරන ලද ඉල්ලීම්වල කොටස 87.1% සිට 99.92% දක්වා වැඩි කිරීමටත් හැකි විය. නැවත සම්බන්ධතා අඩු කිරීමට සහ CPU මධ්‍යයන් වඩාත් කාර්යක්ෂමව භාවිතා කිරීමට අමතරව, නව ප්‍රොක්සියේ ක්‍රියාකාරීත්වය වැඩිදියුණු වීමට ප්‍රධාන වශයෙන් හේතු වූයේ nginx සමඟ භාවිතා කරන මන්දගාමී Lua හසුරුවන්න ඉවත් කිරීමයි.

මතකය සමඟ ආරක්ෂිතව ක්‍රියා කිරීම සහතික කිරීම සඳහා මෙවලම් තිබීම සමඟ ඒකාබද්ධව ඉහළ කාර්ය සාධනයක් ලබා ගැනීම සඳහා රස්ට් භාෂාව තෝරා ගන්නා ලදී. Cloudflare හි ඉහළ සුදුසුකම් ලත් ඉංජිනේරුවන් සිටියද C භාෂාවෙන් ලියා ඇති කේතය සමාලෝචනය කළද, මතක ගැටළු වලට තුඩු දෙන දෝෂ මඟහරවා ගැනීමට නොහැකි වූ බව සඳහන් වේ (උදාහරණයක් ලෙස, HTML parser හි දුර්වලතාවයක්). නව කේතය සම්බන්ධයෙන් ගත් කල, එය පිංගෝරා හි අසමත්වීම් විශ්ලේෂණය කිරීමේ අවස්ථා ගැන කථා කරයි, එය සිදුවන්නේ යෙදුමේ ඇති ගැටළු නිසා නොව, ලිනක්ස් කර්නලයේ දෝෂයක් සහ දෘඩාංග අසමත්වීම් මගිනි.

මීට අමතරව, ලිනක්ස් කර්නලය තුළ රස්ට් භාෂාව සඳහා සහය ඇතුළත් කිරීම සම්බන්ධයෙන් මේ දිනවල පැවැත්වෙන විවෘත මූලාශ්‍ර සමුළුවේ යුරෝපා සමුළුවේදී හඬ නැගූ Linus Torvalds ගේ විවරණ අපට සටහන් කළ හැක. රස්ට් භාෂාවෙන් උපාංග ධාවක සංවර්ධනය කිරීම සඳහා වන පැච් 6.0 කර්නලයට ඇතුළත් කර නැත, නමුත් ලිනස්ට අනුව, ඒවා බොහෝ විට 6.1 කර්නලය තුළට පිළිගනු ඇත; ඔහු ඒකාබද්ධ කිරීම ප්‍රමාද කිරීමට යන්නේ නැත. රස්ට් සඳහා සහය එකතු කිරීම සඳහා පෙළඹවීමක් ලෙස, ආරක්ෂාව කෙරෙහි ධනාත්මක බලපෑමට අමතරව, Linus විසින් නව සහභාගිවන්නන්ගේ හරය මත වැඩ කිරීමට ඇති උනන්දුව වැඩි කිරීමට ඇති අවස්ථාව ද උපුටා දක්වයි, එය වයස්ගත වූ පැරණි-කාලීන සන්දර්භය තුළ වැදගත් වේ.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න