Redis 8.0 మరియు Valkey 8.1 DBMS యొక్క తాజా విడుదలలను పరీక్షించిన ఫలితాలు ప్రదర్శించబడ్డాయి, దీనిలో గణనీయమైన పనితీరు ఆప్టిమైజేషన్లు ప్రకటించబడ్డాయి. నిర్వహించిన అన్ని పరీక్షలలో, కమ్యూనిటీ అభివృద్ధి చేసిన ఫోర్క్ అసలు ప్రాజెక్ట్ను అధిగమించింది, ప్రధానంగా వాల్కీలో అసమకాలిక మోడ్లో మల్టీ-థ్రెడ్ ఇన్పుట్/అవుట్పుట్ ప్రాసెసింగ్ కోసం కొత్త మెకానిజం అమలు కారణంగా, అమెజాన్ ద్వారా ప్రాజెక్ట్కు బదిలీ చేయబడింది.
4 VCPUలతో AWS Graviton8 c2g.8xlarge పరీక్ష వాతావరణంలో, Valkey 8.1.1 సెకనుకు 999.8 వేల SET అభ్యర్థనల త్రూపుట్ను సాధించగా, Redis 8.0 సెకనుకు 729.4 వేల అభ్యర్థనల స్థాయిని సాధించింది. మొత్తంమీద, Valkey యొక్క త్రూపుట్ SET కార్యకలాపాల కోసం Redis కంటే 37% ఎక్కువ మరియు GET కోసం 16% ఎక్కువ. అదే సమయంలో, Redisతో పోలిస్తే, Valkey SETలో 30% తగ్గింపు మరియు GET జాప్యంలో 60% తగ్గింపును ప్రదర్శించింది.

మల్టీ-థ్రెడ్ I/O ప్రాసెసింగ్ మోడ్లోని సమాంతర ప్రాసెసర్ల సంఖ్యను బట్టి నిర్గమాంశ మరియు ఆలస్యాలలో మార్పుపై ప్రత్యేక విశ్లేషణ నిర్వహించబడింది. 3 థ్రెడ్ల వరకు, వాల్కీ మరియు రెడిస్ దాదాపు సమాన ఫలితాలను చూపుతాయి, కానీ తరువాత వాల్కీ ముందంజలో ఉన్నారు. 6 VCPUలు ఉన్న సిస్టమ్లో 8 థ్రెడ్లతో, వాల్కీ పనితీరు సెకనుకు 678 వేల SET అభ్యర్థనలు, మరియు రెడిస్ 563 ఏకకాల కనెక్షన్ల పరిమితితో సెకనుకు 256 వేల అభ్యర్థనలు. కనెక్షన్ల సంఖ్య 400కి పెరిగినప్పుడు, వాల్కీ పనితీరు సెకనుకు 832 వేల SET అభ్యర్థనలకు పెరిగింది.

Valkey లో కాంటెక్స్ట్ స్విచ్ల సంఖ్యను తగ్గించడానికి సిస్టమ్లో ఇంటరప్ట్ హ్యాండ్లింగ్ను ఆప్టిమైజ్ చేసిన తర్వాత, మేము పనితీరును సెకనుకు 999.8 వేల SET అభ్యర్థనలకు పెంచగలిగాము. ఆప్టిమైజేషన్ యొక్క సారాంశం ఇంటరప్ట్ హ్యాండ్లింగ్ కోసం 2 VCPUలను కేటాయించడం మరియు CPUల మధ్య హ్యాండ్లర్ల మైగ్రేషన్ను తొలగించడానికి మిగిలిన 6 VCPUలను Valkey మరియు Redis I/O ప్రాసెసింగ్ థ్రెడ్లకు బైండింగ్ చేయడం. sudo ethtool -L ens34 కలిపి 2 # IRQ హ్యాండ్లర్ల సంఖ్యను 2 grep ens34 /proc/interrupts కు పరిమితం చేయండి # ఏ హ్యాండ్లర్లు పాల్గొంటున్నాయో చూడండి (99 మరియు 100) echo 1 | sudo tee /proc/irq/99/smp_affinity # bind handler 99 to core 1 echo 2 | sudo tee /proc/irq/100/smp_affinity # bind handler 100 to core 2 # CPU కోర్స్ 8.1.1-8.0 కు కంటైనర్ బైండింగ్ తో DBMS (Redis కోసం, valkey/valkey:2 ను redis:7 గా మార్చండి) ను ప్రారంభించండి డాకర్ రన్ —network=»host» —rm \ —cpuset-cpus=»2-7″ valkey/valkey:8.1.1 \ —సేవ్ «» —appendonly no —io-threads 6 \ —protected-mode no —maxmemory 10gb
పనితీరు పరీక్ష కోసం, కింది ఆదేశం ఉపయోగించబడింది: docker run —network=»host» —rm —cpuset-cpus=»2-7″ \ valkey/valkey:8.0.1 valkey-benchmark \ -h 172.31.4.92 -p 6379 -t SET,GET -n 100000000 -c 256 \ -r 3000000 —threads 6 -d 1024
మూలం: opennet.ru
