క్లౌడ్‌ఫ్లేర్ NGINX నుండి రస్ట్‌లో వ్రాసిన దాని స్వంత పింగోరా ప్రాక్సీకి మారింది

క్లౌడ్‌ఫ్లేర్ రస్ట్ భాషలో వ్రాసిన పింగోరా ప్రాక్సీని ఉపయోగించడానికి దాని కంటెంట్ డెలివరీ నెట్‌వర్క్‌ను మార్చినట్లు ప్రకటించింది. కొత్త ప్రాక్సీ NGINX సర్వర్-ఆధారిత కాన్ఫిగరేషన్‌ను Lua స్క్రిప్ట్‌లతో భర్తీ చేస్తుంది మరియు రోజుకు ట్రిలియన్ అభ్యర్థనలను ప్రాసెస్ చేస్తుంది. ప్రత్యేకమైన ప్రాక్సీకి పరివర్తన కొత్త లక్షణాలను అమలు చేయడానికి మరియు మెమరీ యొక్క సురక్షిత ఆపరేషన్ కారణంగా భద్రతను పెంచడానికి మాత్రమే అనుమతించబడుతుందని గుర్తించబడింది, కానీ పనితీరు మరియు వనరుల పొదుపులో గణనీయమైన పెరుగుదలకు దారితీసింది - Pingora-ఆధారిత పరిష్కారం ఉపయోగం అవసరం లేదు. Lua యొక్క, అందువలన ట్రాఫిక్‌ను ప్రాసెస్ చేస్తున్నప్పుడు 70% తక్కువ వనరులు CPU మరియు 67% తక్కువ మెమరీని వినియోగిస్తుంది.

చాలా కాలంగా, NGINX మరియు Lua స్క్రిప్ట్‌ల ఆధారంగా వినియోగదారులు మరియు ఎండ్ సర్వర్‌ల మధ్య ట్రాఫిక్‌ను ప్రాక్సీ చేసే వ్యవస్థ క్లౌడ్‌ఫ్లేర్ అవసరాలను సంతృప్తిపరిచింది, అయితే నెట్‌వర్క్ పెరగడం మరియు దాని సంక్లిష్టత పెరగడంతో, సార్వత్రిక పరిష్కారం సరిపోదని తేలింది. పనితీరు మరియు క్లయింట్ల కోసం కొత్త అవకాశాల విస్తరణ మరియు అమలులో పరిమితుల కారణంగా. ప్రత్యేకించి, సాధారణ గేట్‌వే మరియు లోడ్ బ్యాలెన్సర్‌కు మించి కార్యాచరణను జోడించడంలో సవాళ్లు ఉన్నాయి. ఉదాహరణకు, సర్వర్ అభ్యర్థనను ప్రాసెస్ చేయడంలో విఫలమైతే, అభ్యర్థనను మరొక సర్వర్‌కు మళ్లీ పంపడం, దానికి వేరే HTTP హెడర్‌లను అందించడం అవసరం.

రిక్వెస్ట్‌లను ప్రత్యేక వర్కర్ ప్రాసెస్‌లుగా విభజించే ఆర్కిటెక్చర్‌కు బదులుగా, పింగోరా బహుళ-థ్రెడ్ మోడల్‌ను ఉపయోగిస్తుంది, క్లౌడ్‌ఫ్లేర్ వినియోగ సందర్భాలలో (పెద్ద గణాంక మార్పుతో వివిధ సైట్‌ల నుండి ట్రాఫిక్ యొక్క అధిక సాంద్రత) CPU కోర్ల మధ్య వనరుల యొక్క మరింత సమర్థవంతమైన పంపిణీని చూపుతుంది. ప్రత్యేకించి, ప్రాసెస్‌లకు nginx యొక్క అసమతుల్య అభ్యర్థనల బైండింగ్ ఫలితంగా CPU కోర్లపై అసమతుల్య లోడ్ ఏర్పడింది, ఫలితంగా రిసోర్స్-ఇంటెన్సివ్ అభ్యర్థనలు మరియు I/O నిరోధించడం వలన ఇతర అభ్యర్థనల ప్రాసెసింగ్ మందగిస్తుంది. అదనంగా, హ్యాండ్లర్ ప్రక్రియలకు కనెక్షన్ పూల్‌ను బైండింగ్ చేయడం వలన ఇతర హ్యాండ్లర్ ప్రక్రియల నుండి ఇప్పటికే ఏర్పాటు చేయబడిన కనెక్షన్‌ల పునర్వినియోగాన్ని అనుమతించలేదు, ఇది పెద్ద సంఖ్యలో హ్యాండ్లర్ ప్రక్రియలు ఉన్నప్పుడు సామర్థ్యాన్ని తగ్గిస్తుంది.

NGINX:

క్లౌడ్‌ఫ్లేర్ NGINX నుండి రస్ట్‌లో వ్రాసిన దాని స్వంత పింగోరా ప్రాక్సీకి మారింది

పింగోరా:

క్లౌడ్‌ఫ్లేర్ NGINX నుండి రస్ట్‌లో వ్రాసిన దాని స్వంత పింగోరా ప్రాక్సీకి మారింది

Pingora అమలు కొత్త కనెక్షన్ల యొక్క సంస్థాపనల సంఖ్యను 160 రెట్లు తగ్గించడం మరియు పునర్వినియోగ అభ్యర్థనల వాటాను 87.1% నుండి 99.92% వరకు పెంచడం సాధ్యపడింది. రీకనెక్షన్‌లను తగ్గించడం మరియు CPU కోర్‌లను మరింత సమర్థవంతంగా ఉపయోగించడంతో పాటు, కొత్త ప్రాక్సీ పనితీరు మెరుగుదల ప్రధానంగా nginxతో ఉపయోగించిన స్లో లువా హ్యాండ్లర్‌లను తొలగించడం వల్ల జరిగింది.

మెమరీతో సురక్షితమైన ఆపరేషన్‌ను నిర్ధారించడానికి సాధనాల లభ్యతతో కలిపి అధిక పనితీరును సాధించడానికి రస్ట్ భాష ఎంపిక చేయబడింది. క్లౌడ్‌ఫ్లేర్ యొక్క అత్యంత అర్హత కలిగిన ఇంజనీర్లు ఉన్నప్పటికీ మరియు C భాషలో వ్రాసిన కోడ్‌ను సమీక్షించినప్పటికీ, మెమరీ సమస్యలకు దారితీసే లోపాలను నివారించడం సాధ్యం కాదని పేర్కొనబడింది (ఉదాహరణకు, HTML పార్సర్‌లో ఒక దుర్బలత్వం). కొత్త కోడ్ విషయానికొస్తే, ఇది పింగోరాలో వైఫల్యాలను విశ్లేషించే కేసుల గురించి మాట్లాడుతుంది, ఇది అప్లికేషన్‌లోని సమస్యల వల్ల కాదు, లైనక్స్ కెర్నల్‌లో లోపం మరియు హార్డ్‌వేర్ వైఫల్యాల వల్ల సంభవించింది.

అదనంగా, ఈ రోజుల్లో జరుగుతున్న ఓపెన్ సోర్స్ సమ్మిట్ యూరప్ కాన్ఫరెన్స్‌లో లైనక్స్ కెర్నల్‌లో రస్ట్ లాంగ్వేజ్‌కు మద్దతును చేర్చడం గురించి లైనస్ టోర్వాల్డ్స్ యొక్క వ్యాఖ్యానాన్ని మేము గమనించవచ్చు. రస్ట్ లాంగ్వేజ్‌లో డివైజ్ డ్రైవర్‌లను డెవలప్ చేయడం కోసం ప్యాచ్‌లు 6.0 కెర్నల్‌లో చేర్చబడలేదు, అయితే లైనస్ ప్రకారం, అవి 6.1 కెర్నల్‌లో ఎక్కువగా ఆమోదించబడతాయి; అతను ఏకీకరణను ఆలస్యం చేయడు. రస్ట్‌కు మద్దతుని జోడించడానికి ప్రేరణగా, భద్రతపై సానుకూల ప్రభావంతో పాటు, లైనస్ కొత్త పార్టిసిపెంట్‌ల కోర్‌పై పని చేయడానికి ఆసక్తిని పెంచే అవకాశాన్ని కూడా ఉదహరించింది, ఇది వృద్ధాప్య పాత-టైమర్‌ల సందర్భంలో ముఖ్యమైనది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి