ఇంటెల్ లోగోఇంటెల్ ® ఈథర్నెట్ 700 సిరీస్
Linux పనితీరు ట్యూనింగ్ గైడ్
NEX క్లౌడ్ నెట్‌వర్కింగ్ గ్రూప్ (NCNG)
రెవ. 1.2
డిసెంబర్ 2024

పునర్విమర్శ చరిత్ర

పునర్విమర్శ తేదీ వ్యాఖ్యలు
1.2 డిసెంబర్ 2024 · అదనపు విద్యుత్ నిర్వహణ మార్గదర్శకత్వం జోడించబడింది.
· ఇంటెల్* టర్బో బూస్ట్ జోడించబడింది.
· నెట్‌వర్క్ పరికర బ్యాక్‌లాగ్ జోడించబడింది.
· ప్లాట్‌ఫారమ్-నిర్దిష్ట కాన్ఫిగరేషన్‌లు మరియు ట్యూనింగ్ జోడించబడింది.
· 4వ తరం ఇంటెల్* %eon* స్కేలబుల్ ప్రాసెసర్‌లు జోడించబడ్డాయి.
· AMD EPYC జోడించబడింది.
· నవీకరించబడిన సిస్టమ్ హార్డ్‌వేర్ సామర్థ్యాలను తనిఖీ చేయండి.
· iPerf2 నవీకరించబడింది.
· iPerf3 నవీకరించబడింది.
· నవీకరించబడిన Tx/Rx క్యూలు.
· నవీకరించబడిన అంతరాయ మోడరేషన్.
· నవీకరించబడిన రింగ్ పరిమాణం.
· నవీకరించబడిన ప్లాట్‌ఫామ్ ట్యూనింగ్ (i40e నాన్-స్పెసిఫిక్).
· BIOS సెట్టింగ్‌లు నవీకరించబడ్డాయి.
· నవీకరించబడిన సి-స్టేట్ నియంత్రణ.
· నవీకరించబడిన CPU ఫ్రీక్వెన్సీ స్కేలింగ్.
· అప్లికేషన్ సెట్టింగ్‌లు నవీకరించబడ్డాయి.
· ఆపరేటింగ్ సిస్టమ్/కెర్నల్ సెట్టింగ్‌లు నవీకరించబడ్డాయి.
· నవీకరించబడిన IP ఫార్వార్డింగ్.
· తక్కువ జాప్యం నవీకరించబడింది.
ఆగస్టు 2023 ఈ పత్రానికి చేసిన మార్పులు:
· సంబంధిత సూచనలు జోడించబడ్డాయి.
· DDP ప్యాకేజీ సరిగ్గా లోడ్ అవుతుందని నిర్ధారించుకోండి.
· iPerf2 జోడించబడింది.
· iPerf3 జోడించబడింది.
· నెట్‌పర్ఫ్ జోడించబడింది.
· నవీకరించబడిన IRQ అనుబంధం.
· Tx/Rx క్యూలు జోడించబడ్డాయి.
· నవీకరించబడిన రింగ్ పరిమాణం.
· జంబో ఫ్రేమ్‌లు జోడించబడ్డాయి.
· అడాప్టర్ బాండింగ్ జోడించబడింది.
· ఇంటెల్ svr-సమాచార సాధనం జోడించబడింది.
1.0 మార్చి 2016 ప్రారంభ విడుదల (ఇంటెల్ పబ్లిక్).

పరిచయం

ఈ గైడ్ Linux పరిసరాలలో Intel ® Ethernet 700 సిరీస్ NIC లను ఉపయోగించి సరైన నెట్‌వర్కింగ్ పనితీరు కోసం వాతావరణాలను ట్యూన్ చేయడానికి మార్గదర్శకత్వాన్ని అందించడానికి ఉద్దేశించబడింది. ఇది హార్డ్‌వేర్, డ్రైవర్ మరియు ఆపరేటింగ్ సిస్టమ్ పరిస్థితులు మరియు నెట్‌వర్క్ పనితీరును మెరుగుపరిచే సెట్టింగ్‌లపై దృష్టి పెడుతుంది. నెట్‌వర్కింగ్ పనితీరు ఎన్ని బాహ్య ప్రభావాల ద్వారా అయినా ప్రభావితమవుతుందని గమనించాలి, వీటిలో అత్యంత సాధారణమైనవి మరియు నాటకీయమైనవి మాత్రమే ఈ గైడ్‌లో కవర్ చేయబడ్డాయి.
1.1 సంబంధిత మాన్యువల్లు

ప్రారంభ చెక్‌లిస్ట్

2.1 డ్రైవర్/ ఫర్మ్‌వేర్ వెర్షన్‌లను నవీకరించండి
ethtool -i ethx ఉపయోగించి డ్రైవర్/ఫర్మ్‌వేర్ వెర్షన్‌లను తనిఖీ చేయండి.
అవసరమైన విధంగా కింది వాటిని నవీకరించండి:

2.2 README చదవండి
తెలిసిన సమస్యల కోసం తనిఖీ చేయండి మరియు README నుండి తాజా కాన్ఫిగరేషన్ సూచనలను పొందండి. file i40e సోర్స్ ప్యాకేజీలో చేర్చబడింది.
2.3 మీ PCI ఎక్స్‌ప్రెస్ (PCIe) స్లాట్ x8 అని తనిఖీ చేయండి
కొన్ని PCIe x8 స్లాట్‌లు వాస్తవానికి x4 స్లాట్‌లుగా కాన్ఫిగర్ చేయబడ్డాయి. ఈ స్లాట్‌లు డ్యూయల్ పోర్ట్ మరియు క్వాడ్ పోర్ట్ పరికరాలతో పూర్తి లైన్ రేటుకు తగినంత బ్యాండ్‌విడ్త్‌ను కలిగి ఉండవు. అదనంగా, మీరు PCIe v3.0-సామర్థ్యం గల అడాప్టర్‌ను PCIe v2.x స్లాట్‌లో ఉంచితే, మీరు పూర్తి బ్యాండ్‌విడ్త్‌ను పొందలేరు. సాఫ్ట్‌వేర్ పరికర డ్రైవర్ ఈ పరిస్థితిని గుర్తించి సిస్టమ్ లాగ్‌లో కింది సందేశాన్ని వ్రాస్తుంది:
ఈ కార్డుకు అందుబాటులో ఉన్న PCI-ఎక్స్‌ప్రెస్ బ్యాండ్‌విడ్త్ సరైన పనితీరుకు సరిపోదు. సరైన పనితీరు కోసం x8 PCI-ఎక్స్‌ప్రెస్ స్లాట్ అవసరం.
ఈ ఎర్రర్ సంభవించినట్లయితే, సమస్యను పరిష్కరించడానికి మీ అడాప్టర్‌ను నిజమైన PCIe v3.0 x8 స్లాట్‌కు తరలించండి.
2.4 సిస్టమ్ హార్డ్‌వేర్ సామర్థ్యాలను తనిఖీ చేయండి
10 Gbps, 25 Gbps, మరియు 40 Gbps ఈథర్నెట్ వద్ద, కొన్ని కనీస CPU మరియు సిస్టమ్ అవసరాలు ఉన్నాయి. సాధారణంగా, మీ ప్లాట్‌ఫామ్‌కు ఆధునిక సర్వర్ క్లాస్ ప్రాసెసర్ మరియు సరైన మెమరీ కాన్ఫిగరేషన్ సరిపోతుంది, కానీ అవసరాలు మీ పనిభారాన్ని బట్టి మారుతూ ఉంటాయి. అన్ని మెమరీ ఛానెల్‌లు నిండి ఉండాలి మరియు BIOSలో మెమరీ పనితీరు మోడ్‌ను ప్రారంభించాలి. మీ CPU మరియు మెమరీ కాన్ఫిగరేషన్ మీ పనిభారానికి అవసరమైన నెట్‌వర్క్ పనితీరు స్థాయిని సమర్ధించగలదని ధృవీకరించండి.
గమనిక
XL710 అనేది 40 GbE కంట్రోలర్. ఈ కంట్రోలర్‌ను ఉపయోగించే 2 x 40 GbE అడాప్టర్ 2 x 40 GbEగా ఉద్దేశించబడలేదు, కానీ యాక్టివ్ బ్యాకప్ పోర్ట్‌తో కూడిన 1 x 40 GbE. రెండు పోర్ట్‌లను కలిగి ఉన్న లైన్-రేట్ ట్రాఫిక్‌ను ఉపయోగించడానికి ప్రయత్నించినప్పుడు, అంతర్గత స్విచ్ సంతృప్తమవుతుంది మరియు రెండు పోర్ట్‌ల మధ్య కలిపి బ్యాండ్‌విడ్త్ మొత్తం SO Gbpsకి పరిమితం చేయబడుతుంది.
2.4.1 కెర్నల్ బూట్ పారామితులు
BIOSలో Intel® Virtualization Technology for Directed I/O (Intel® VT-d) ప్రారంభించబడితే, సరైన హోస్ట్ నెట్‌వర్క్ పనితీరు కోసం IOMMU పాస్-త్రూ మోడ్‌లో ఉండాలని Intel సిఫార్సు చేస్తుంది. ఇది హోస్ట్ ట్రాఫిక్‌పై DMA ఓవర్‌హెడ్‌ను తొలగిస్తుంది, అదే సమయంలో వర్చువల్ మెషీన్‌లు (VMలు) Intel® VT-d యొక్క ప్రయోజనాలను కలిగి ఉండటానికి వీలు కల్పిస్తుంది. కెర్నల్ బూట్ పారామితులకు కింది లైన్‌ను జోడించడం ద్వారా ఇది సాధించబడుతుంది: fommu-pt.
2.5 DDP ప్యాకేజీ సరిగ్గా లోడ్ అవుతుందని నిర్ధారించుకోండి
140ea మరియు 140eb బేస్ డ్రైవర్లకు డైనమిక్ డివైస్ పర్సనలైజేషన్ (DDP) కు ప్రత్యక్ష మద్దతు లేదు. 700 సిరీస్ పరికరాలతో DDP ని ఉపయోగించడానికి, DDP ప్రోfile testpmd అప్లికేషన్ తో దరఖాస్తు చేసుకోవచ్చు.
DDP ప్రో గురించి వివరాల కోసంfiles, మరియు DDP ప్రోని ఎలా దరఖాస్తు చేయాలిfile 700 సిరీస్ పరికరాల్లో testpmd తో, Intel® Ethernet 700 సిరీస్ డైనమిక్ డివైస్ పర్సనలైజేషన్ (DDP) టెక్నాలజీ గైడ్‌ని చూడండి.
DDP ప్రో అయితే ధృవీకరించడానికిfile విజయవంతంగా లోడ్ చేయబడింది:
testpmd> ddp జాబితా 0 ప్రో పొందండిfile సంఖ్య: 1
గమనిక
ప్రో అయితేfile సంఖ్య 0 అయితే, DDP ప్యాకేజీ లోడ్ కాలేదు. DDP ప్యాకేజీ లోడ్ లోపం సంభవించినప్పుడు, పరికరం డిఫాల్ట్‌గా సేఫ్ మోడ్‌కి మారుతుంది మరియు అనేక పనితీరు లక్షణాలు అందుబాటులో ఉండవు. DDP ప్యాకేజీని లోడ్ చేయడానికి సంబంధించిన లోపాలు ఉంటే, అది పనితీరు సమస్యలను కలిగిస్తుంది. ట్రబుల్షూటింగ్ దశల కోసం, Inte/* Ethernet 700 సిరీస్ డైనమిక్ డివైస్ పర్సనలైజేషన్ (DDP) టెక్నాలజీ గైడ్‌ని చూడండి.

బేస్‌లైన్ పనితీరు కొలతలు మరియు ట్యూనింగ్ పద్దతి

3.1 నెట్‌వర్క్ పనితీరు ప్రమాణాలు
ట్యూనింగ్ వ్యాయామం ప్రారంభించే ముందు, మీ నెట్‌వర్క్ పనితీరు యొక్క మంచి బేస్‌లైన్ కొలతను కలిగి ఉండటం ముఖ్యం. సాధారణంగా మీ నిర్దిష్ట అప్లికేషన్/పనిభారం పనితీరు యొక్క ప్రారంభ కొలతను పొందడంతో పాటు, మీ నెట్‌వర్క్ పరికరం మంచి స్థితిలో ఉందని ధృవీకరించడానికి ప్రామాణిక నెట్‌వర్క్ పనితీరు బెంచ్‌మార్క్‌ను కూడా ఉపయోగించడం మంచిది.
సింగిల్ సిస్టమ్ ఆప్టిమైజేషన్ కోసం, netperf లేదా iperf మరియు NetPIPE అన్నీ సాలిడ్ ఓపెన్‌సోర్స్ ఫ్రీ టూల్స్, ఇవి కనెక్షన్‌ను నొక్కి చెప్పడానికి మరియు పనితీరు సమస్యలను నిర్ధారించడానికి మిమ్మల్ని అనుమతిస్తాయి.
నెట్‌పెర్ఫ్ అనేది థ్రూపుట్ మరియు లేటెన్సీ పరీక్ష రెండింటికీ బలంగా ఉంది. NetPIPE అనేది లేటెన్సీ-నిర్దిష్ట సాధనం కానీ ఏ రకమైన వాతావరణానికైనా కంపైల్ చేయవచ్చు.
గమనిక
netperf లోని TCP_RR పరీక్ష లావాదేవీలు/సెకను విలువలో జాప్యాన్ని అందిస్తుంది. ఇది రౌండ్-ట్రిప్ సంఖ్య. కింది సమీకరణాన్ని ఉపయోగించి వన్-వే జాప్యాన్ని లెక్కించవచ్చు:
లాటెన్సీ(usec) = (1/2) / [లావాదేవీలు/సెకను] * 1,000,000
3.1.1 ఐపెర్ఫ్2
ఒకే అప్లికేషన్ సందర్భంలో బహుళ థ్రెడ్‌ల వాడకం మరియు మద్దతు సౌలభ్యం కారణంగా చాలా బెంచ్‌మార్కింగ్ పరిస్థితులకు ఇంటెల్ iperf2 కంటే iperf3ని సిఫార్సు చేస్తుంది. 2G కనెక్షన్‌ల కోసం 4-25 థ్రెడ్‌లతో మరియు 4G కనెక్షన్‌ల కోసం 6-40 థ్రెడ్‌లతో -P ఎంపికతో అమలు చేయమని ఇంటెల్ సిఫార్సు చేస్తుంది.

  • క్లయింట్ నుండి సర్వర్‌కు ఏక దిశాత్మక ట్రాఫిక్‌ను అమలు చేయడానికి: సర్వర్ కమాండ్ example: iperf2 -s
    క్లయింట్ కమాండ్ example: iperf2 -c -పి
  • క్లయింట్ నుండి సర్వర్‌కు ద్వి దిశాత్మక ట్రాఫిక్‌ను అమలు చేయడానికి (మరియు దీనికి విరుద్ధంగా): సర్వర్ కమాండ్ example: iperf2 –s –p
    క్లయింట్ కమాండ్ exampలే:
    iperf2 -సి -పి -పి -–పూర్తి-డ్యూప్లెక్స్ OR
    iperf2 -సి -పి -పి –డి

గమనిక
iperf2 లోని –full-duplex మరియు -d ఎంపికలు రెండూ వినియోగదారుని ద్వి దిశాత్మక పరీక్షను నిర్వహించడానికి అనుమతిస్తాయి. అయితే, –full-duplex ఎంపిక ప్రత్యేకంగా పూర్తి డ్యూప్లెక్స్ పరీక్షపై దృష్టి పెడుతుంది.
గమనిక
బహుళ సర్వర్ పోర్ట్‌లలో iperf2ని పరీక్షిస్తున్నప్పుడు, ఒకే టెర్మినల్ విండో నుండి నేపథ్యంలో అన్ని సర్వర్ సెషన్‌లను అమలు చేయడానికి -d ఫ్లాగ్‌ను సర్వర్ కమాండ్‌కు జోడించవచ్చు. స్క్రిప్ట్‌లోని for-loop లోపల సర్వర్ కమాండ్ పొందుపరచబడినప్పుడు కూడా -d ఫ్లాగ్‌ను ఉపయోగించవచ్చు.
గమనిక
ఒకే స్ట్రీమ్/థ్రెడ్‌తో నెట్‌వర్క్ త్రూపుట్ పరీక్షను అమలు చేస్తున్నప్పుడు (ఉదా.ample: P1), AMD ప్రాసెసర్లు ఆశించిన థ్రూపుట్‌ను అందించకపోవచ్చు, ముఖ్యంగా అధిక బ్యాండ్‌విడ్త్ NICలు (వేగం >= 25G బ్యాండ్‌విడ్త్ అయితే). ఫలితంగా, అధిక థ్రూపుట్‌ను సాధించడానికి నిర్దిష్ట కోర్‌లకు అప్లికేషన్ పిన్నింగ్ అవసరం. 22వ పేజీలోని అప్లికేషన్ సెట్టింగ్‌లను చూడండి.
3.1.2 ఐపెర్ఫ్3
iperf3 ఉపయోగించినట్లయితే, అడ్వాన్స్ తీసుకోవడానికి అప్లికేషన్ యొక్క బహుళ సందర్భాలు అవసరంtagమల్టీ-థ్రెడ్‌లు, RSS మరియు హార్డ్‌వేర్ క్యూల యొక్క e. ఇంటెల్ 2G కనెక్షన్‌ల కోసం 4-25 అప్లికేషన్ సెషన్‌లతో మరియు 4G కనెక్షన్‌ల కోసం 6-40 సెషన్‌లతో అమలు చేయాలని సిఫార్సు చేస్తుంది. ప్రతి సెషన్ -p ఎంపికను ఉపయోగించి ప్రత్యేకమైన TCP పోర్ట్ విలువను పేర్కొనాలి.

  • క్లయింట్ నుండి సర్వర్‌కు ఏక దిశాత్మక ట్రాఫిక్‌ను అమలు చేయడానికి:
    సర్వర్ కమాండ్ exampలే:
    iperf3 -s -p ద్వారా
    క్లయింట్ కమాండ్ exampలే:
    iperf3 -సి -పి
  • క్లయింట్ నుండి సర్వర్‌కు ద్వి దిశాత్మక ట్రాఫిక్‌ను అమలు చేయడానికి (మరియు దీనికి విరుద్ధంగా):
    సర్వర్ కమాండ్ exampలే:
    iperf3 –s –p
    క్లయింట్ కమాండ్ example: iperf3 -c -పి -పి –-బిదిర్
  • iperf3 యొక్క బహుళ సందర్భాలను (థ్రెడ్‌లు) ప్రారంభించడానికి, TCP పోర్ట్‌లకు థ్రెడ్‌లను మ్యాప్ చేయడానికి for-loopని ఉపయోగించడం మరియు సమాంతరంగా బహుళ ప్రక్రియలను సృష్టించడానికి & ఉపయోగించి నేపథ్యంలో iperf3ని అమలు చేయడం సిఫార్సు.
    సర్వర్ కమాండ్ example, 4 థ్రెడ్‌లను ప్రారంభించండి: port=””; {0..3}లో i కోసం; do port=520$i; bash -c “iperf3 -s -p $port &”; done; క్లయింట్ కమాండ్ example, 4 థ్రెడ్‌లను ప్రారంభించండి – Transmit test port=””; for i in {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; done; క్లయింట్ కమాండ్ example, 4 థ్రెడ్‌లను ప్రారంభించండి – పరీక్ష పోర్ట్=””ని స్వీకరించండి; {0..3}లో i కోసం; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; పూర్తయింది; 40G కనెక్షన్‌ల కోసం, 6 సందర్భాలు/థ్రెడ్‌లను సృష్టించడానికి ఫర్-లూప్‌ను పెంచండి.

గమనిక
ఒకే స్ట్రీమ్/థ్రెడ్‌తో నెట్‌వర్క్ త్రూపుట్ పరీక్షను అమలు చేస్తున్నప్పుడు (ఉదా.ample: P1), AMD ప్రాసెసర్లు ఆశించిన థ్రూపుట్‌ను అందించకపోవచ్చు, ముఖ్యంగా అధిక బ్యాండ్‌విడ్త్
NICలు (వేగం >= 25G బ్యాండ్‌విడ్త్ అయితే). ఫలితంగా, అధిక థ్రూపుట్ సాధించడానికి నిర్దిష్ట కోర్లకు అప్లికేషన్ పిన్నింగ్ అవసరం. పేజీ 22లో అప్లికేషన్ సెట్టింగ్‌లను మరియు పేజీ 26లో AMD EPYCని చూడండి.
3.1.3 నెట్‌పెర్ఫ్
నెట్‌పెర్ఫ్ సాధనం థ్రూపుట్ మరియు లేటెన్సీ పరీక్ష రెండింటికీ బలమైన ఎంపిక.

  • netperf లోని TCP_STREAM పరీక్ష పరికరం యొక్క థ్రూపుట్ సామర్థ్యాలను కొలుస్తుంది. సర్వర్ కమాండ్ example: netserver క్లయింట్ కమాండ్ exampలె: నెట్‌పెర్ఫ్ -t TCP_STREAM -l 30 -H
  • netperf లో TCP_RR పరీక్ష లావాదేవీలు/సెకను విలువలో జాప్యాన్ని అందిస్తుంది. ఇది రౌండ్-ట్రిప్ సంఖ్య. x అనేది పరికరానికి CPU స్థానికంగా ఉంటే, -T x,x ఎంపికను ఉపయోగించమని సిఫార్సు చేయబడింది. వన్-వే జాప్యాన్ని వీటిని ఉపయోగించి లెక్కించవచ్చు: Latency(usec)=(1⁄2)/ [లావాదేవీలు/సెకను]*1,000,\ సర్వర్ కమాండ్ exampలే: నెట్‌సర్వర్
    క్లయింట్ కమాండ్ exampలె: నెట్‌పెర్ఫ్ -t TCP_RR -l 30 -H -టి x,x
  • నెట్‌పెర్ఫ్ యొక్క బహుళ సందర్భాలను (థ్రెడ్‌లు) ప్రారంభించడానికి, థ్రెడ్‌లను TCP పోర్ట్‌లకు మ్యాప్ చేయడానికి మరియు సమాంతరంగా బహుళ ప్రక్రియలను సృష్టించడానికి & ఉపయోగించి నేపథ్యంలో నెట్‌పెర్ఫ్‌ను అమలు చేయడానికి ఫర్-లూప్‌ను ఉపయోగించాలని సిఫార్సు చేయబడింది.
    సర్వర్ కమాండ్ exampలే, 8 థ్రెడ్‌లను ప్రారంభించండి:
    port=””; {0..7} లో i కోసం; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; పూర్తయింది;
    క్లయింట్ కమాండ్ example, 8 థ్రెడ్‌లను ప్రారంభించండి: port=””; for i in {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; done;

3.2 ట్యూనింగ్ మెథడాలజీ
ప్రతి మార్పు మీ పరీక్షపై ఎలాంటి ప్రభావాన్ని చూపుతుందో మీకు తెలుసుకోవడానికి ఒకేసారి ఒక ట్యూనింగ్ మార్పుపై దృష్టి పెట్టండి. మీరు ట్యూనింగ్ ప్రక్రియలో ఎంత పద్దతిగా ఉంటే, పనితీరు అడ్డంకుల కారణాలను గుర్తించడం మరియు పరిష్కరించడం అంత సులభం అవుతుంది.

i40e డ్రైవర్ సెట్టింగ్‌లను ట్యూన్ చేస్తోంది

4.1 IRQ అనుబంధం
వేర్వేరు నెట్‌వర్క్ క్యూలకు అంతరాయాలు వేర్వేరు CPU కోర్లకు అనుబంధించబడేలా IRQ అనుబంధాన్ని కాన్ఫిగర్ చేయడం వలన పనితీరుపై, ముఖ్యంగా మల్టీథ్రెడ్ థ్రూపుట్ పరీక్షలపై భారీ ప్రభావం ఉంటుంది.
IRQ అఫినిటీని కాన్ఫిగర్ చేయడానికి, irqbalance ని ఆపివేసి, i40e సోర్స్ ప్యాకేజీ నుండి set_irq_affinity స్క్రిప్ట్‌ని ఉపయోగించండి లేదా క్యూలను మాన్యువల్‌గా పిన్ చేయండి. క్యూ పిన్నింగ్‌ను ప్రారంభించడానికి యూజర్-స్పేస్ IRQ బ్యాలెన్సర్‌ను నిలిపివేయండి:

  • systemctl డిసేబుల్ ఇర్క్ బ్యాలెన్స్
  • సిస్టమ్‌టిఎల్ స్టాప్ ఇర్క్‌బ్యాలెన్స్
    i40e సోర్స్ ప్యాకేజీ నుండి set_irq_affinity స్క్రిప్ట్‌ను ఉపయోగించడం (సిఫార్సు చేయబడింది):
  • అన్ని కోర్లను ఉపయోగించడానికి:
    [పాత్-టు-i40epackage]/scripts/set_irq_affinity -X అన్నీ ethX
  • స్థానిక NUMA సాకెట్‌లో కోర్‌లను మాత్రమే ఉపయోగించడానికి: [path-to-i40epackage]/scripts/set_irq_affinity -X స్థానిక ethX
  • మీరు కోర్ల శ్రేణిని కూడా ఎంచుకోవచ్చు. cpu0 టైమర్ పనులను అమలు చేస్తుంది కాబట్టి దాన్ని ఉపయోగించడం మానుకోండి. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

గమనిక
-x ఎంపికను పేర్కొన్నప్పుడు పిన్నింగ్ ప్రక్రియలో భాగంగా అఫినిటీ స్క్రిప్ట్ ట్రాన్స్‌మిట్ ప్యాకెట్ స్టీరింగ్ (XPS)ను ప్రారంభిస్తుంది. XPS ప్రారంభించబడినప్పుడు, XPSతో కెర్నల్ బ్యాలెన్సర్ అనూహ్య పనితీరును కలిగిస్తుంది కాబట్టి, మీరు irqbalanceను నిలిపివేయాలని ఇంటెల్ సిఫార్సు చేస్తుంది. -X ఎంపికను పేర్కొన్నప్పుడు అఫినిటీ స్క్రిప్ట్ XPSను నిలిపివేస్తుంది. Tx మరియు Rx ట్రాఫిక్ ఒకే క్యూ జత(ల)పై సర్వీస్ చేయబడినప్పుడు ఉత్తమ పనితీరు సాధించబడే పనిభారాలకు XPSను నిలిపివేయడం మరియు సిమెట్రిక్ క్యూలను ప్రారంభించడం ప్రయోజనకరంగా ఉంటుంది.
Linuxలో సిమెట్రిక్ క్యూలను కాన్ఫిగర్ చేయడం అంటే మద్దతు ఉన్న నెట్‌వర్క్ అడాప్టర్‌ల కోసం సిమెట్రిక్ రిసీవ్ క్యూలు (Rx) మరియు సిమెట్రిక్ ట్రాన్స్‌మిట్ క్యూలు (Tx) ప్రారంభించడానికి నెట్‌వర్క్ ఇంటర్‌ఫేస్ డ్రైవర్ పారామితులను ట్యూన్ చేయడం.
గమనిక

  • సిమెట్రిక్ క్యూలు ఒక అధునాతన నెట్‌వర్కింగ్ ఫీచర్, మరియు అన్ని 700 సిరీస్ నెట్‌వర్క్ ఎడాప్టర్‌లు లేదా డ్రైవర్‌లు వాటికి మద్దతు ఇవ్వవు.
  • సిమెట్రిక్ క్యూలను కాన్ఫిగర్ చేయడానికి ప్రయత్నించే ముందు మీకు అవసరమైన డ్రైవర్ మరియు హార్డ్‌వేర్ మద్దతు ఉందని నిర్ధారించుకోండి.

సిమెట్రిక్ క్యూలను కాన్ఫిగర్ చేయడానికి, ఈ సాధారణ దశలను అనుసరించండి:

  1. నెట్‌వర్క్ ఇంటర్‌ఫేస్ కాన్ఫిగరేషన్‌ను సవరించండి File: టెక్స్ట్ ఎడిటర్‌ని ఉపయోగించండి (ఉదాహరణకుampనెట్‌వర్క్ ఇంటర్‌ఫేస్ కాన్ఫిగరేషన్‌ను సవరించడానికి le, vi, nano, లేదా gedit) file. ది file సాధారణంగా /etc/sysconfig/network-scripts/ డైరెక్టరీ కింద ఉంటుంది మరియు ifcfg-ethX వంటి పేరును కలిగి ఉంటుంది, ఇక్కడ ethX అనేది మీ నెట్‌వర్క్ ఇంటర్‌ఫేస్ పేరు.
  2. సిమెట్రిక్ క్యూ పారామితులను జోడించండి. నెట్‌వర్క్ ఇంటర్‌ఫేస్ కాన్ఫిగరేషన్‌కు కింది పంక్తులను జోడించండి. file: ETHTOOL_OPTS=”rx-క్యూలు 8 tx-క్యూలు 8″
  3. నెట్‌వర్క్ సేవను పునఃప్రారంభించండి.
    మార్పులు చేసిన తర్వాత, కొత్త కాన్ఫిగరేషన్‌ను వర్తింపజేయడానికి నెట్‌వర్క్ సేవను పునఃప్రారంభించండి. sudo systemctl నెట్‌వర్క్‌ను పునఃప్రారంభించండి

మానవీయంగా:

  • ప్రతి నోడ్ కు జతచేయబడిన ప్రాసెసర్లను కనుగొనడానికి numactl –హార్డ్వేర్ lscpu ని ఉపయోగించండి.
  • ప్రతి ప్రాసెసర్‌కు బిట్ మాస్క్‌లను కనుగొనండి:
  • నోడ్ 0 కి కోర్లు 11-0 అని ఊహిస్తే: [1,2,4,8,10,20,40,80,100,200,400,800]
  • కేటాయించబడుతున్న పోర్ట్‌కు కేటాయించబడిన IRQ లను కనుగొనండి: grep ethX /proc/interrupts మరియు IRQ విలువలను గమనించండి ex కోసంampలోడ్ చేయబడిన 181 వెక్టర్లకు le, 192-12.
  • సంబంధిత IRQ ఎంట్రీలో SMP అఫినిటీ విలువను ఎకో చేయండి. ప్రతి IRQ ఎంట్రీకి ఇది చేయాల్సి ఉంటుందని గమనించండి: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity IRQ అఫినిటీని చూపించు:
  • అన్ని కోర్లకు IRQ అనుబంధాన్ని చూపించడానికి: /scripts/set_irq_affinity -s ethX
  • స్థానిక NUMA సాకెట్‌లో కోర్‌లను మాత్రమే చూపించడానికి: /scripts/set_irq_affinity -s స్థానిక ethX
  • మీరు కోర్ల శ్రేణిని కూడా ఎంచుకోవచ్చు: /scripts/set_irq_affinity -s 40-0-8,16 ethX

గమనిక
set_irq_affinity స్క్రిప్ట్ i40e డ్రైవర్ వెర్షన్ 2.16.11 మరియు తరువాతి వాటిలో -s ఫ్లాగ్‌కు మద్దతు ఇస్తుంది.
4.2 Tx/Rx క్యూలు
ప్రతి ఈథర్నెట్ పోర్ట్ కోసం డ్రైవర్ ప్రారంభించినప్పుడు ఎనేబుల్ చేసిన డిఫాల్ట్ క్యూల సంఖ్య ప్లాట్‌ఫామ్‌లో అందుబాటులో ఉన్న మొత్తం CPUల సంఖ్యకు సమానం. ఇది చాలా ప్లాట్‌ఫామ్‌లు మరియు వర్క్‌లోడ్ కాన్ఫిగరేషన్‌లకు బాగా పనిచేస్తుంది. అయితే, అధిక కోర్ కౌంట్‌లు మరియు/లేదా అధిక ఈథర్నెట్ పోర్ట్ సాంద్రత కలిగిన ప్లాట్‌ఫామ్‌లలో, ఈ కాన్ఫిగరేషన్ వనరుల వివాదానికి కారణమవుతుంది. అందువల్ల, సిస్టమ్‌లోని ప్రతి పోర్ట్‌కు డిఫాల్ట్‌ను సవరించడం కొన్ని సందర్భాల్లో అవసరం కావచ్చు.
నిర్దిష్ట మోడల్ మరియు డ్రైవర్ వెర్షన్ ఆధారంగా Tx/Rx క్యూల డిఫాల్ట్ సంఖ్య మారవచ్చు. క్రింద జాబితా చేయబడిన ethtool -L కమాండ్ ఉపయోగించి క్యూల సంఖ్యను సర్దుబాటు చేయవచ్చు.
గమనిక
ఈ సందర్భాలలో, ప్రతి పోర్ట్‌కు డిఫాల్ట్ క్యూ కౌంట్‌ను అడాప్టర్ పోర్ట్‌కు స్థానికంగా ఉన్న NUMA నోడ్‌లో అందుబాటులో ఉన్న CPUల సంఖ్య కంటే ఎక్కువగా తగ్గించవద్దని ఇంటెల్ సిఫార్సు చేస్తుంది. కొన్ని సందర్భాల్లో, అధిక పోర్ట్ కౌంట్ అమలులపై వనరులను సమతుల్యం చేయడానికి ప్రయత్నించినప్పుడు, ఈ సంఖ్యను మరింత తగ్గించడం అవసరం కావచ్చు.
క్యూ కాన్ఫిగరేషన్‌ను సవరించడానికి:
కింది మాజీample పోర్ట్‌ను 32 Tx/Rx క్యూలకు సెట్ చేస్తుంది: ethtool -L ethX కలిపి 32
Example అవుట్‌పుట్:
ethtool -l ethX
ethX కోసం ఛానెల్ పారామితులు: ముందే సెట్ చేయబడిన గరిష్టాలు:
RX: 96
TX: 96
ఇతర: 1
కలిపి: 96
ప్రస్తుత హార్డ్‌వేర్ సెట్టింగ్‌లు:
RX: 0
TX: 0
ఇతర: 1
కలిపి: 32
4.3 అంతరాయ మోడరేషన్
అడాప్టివ్ ఇంటరప్ట్ మోడరేషన్ డిఫాల్ట్‌గా ఆన్‌లో ఉంటుంది మరియు తక్కువ CPU వినియోగం మరియు అధిక పనితీరు మధ్య సమతుల్య విధానాన్ని అందించడానికి రూపొందించబడింది. అయితే, మీరు మీ వినియోగ సందర్భానికి సరిపోయేలా ఇంటరప్ట్ సెట్టింగ్‌లను మాన్యువల్‌గా ట్యూన్ చేయడానికి ప్రయత్నించవచ్చు.
0-235 మైక్రోసెకన్ల పరిధి సెకనుకు 4,310 నుండి 250,000 అంతరాయాల ప్రభావవంతమైన పరిధిని అందిస్తుంది. rx-μsecs-high విలువను అదే ethtool కమాండ్‌లో rx-μsecs మరియు tx-μsecs నుండి స్వతంత్రంగా సెట్ చేయవచ్చు మరియు అడాప్టివ్ ఇంటరప్ట్ మోడరేషన్ అల్గోరిథం నుండి కూడా స్వతంత్రంగా ఉంటుంది. అంతర్లీన హార్డ్‌వేర్ 2 మైక్రోసెకన్ల విరామాలలో గ్రాన్యులారిటీకి మద్దతు ఇస్తుంది, కాబట్టి ప్రక్కనే ఉన్న విలువలు అదే అంతరాయ రేటుకు దారితీయవచ్చు.

  • అడాప్టివ్ ఇంటరప్ట్ మోడరేషన్‌ను ఆఫ్ చేయడానికి: ethtool -C ethX అడాప్టివ్-rx ఆఫ్ అడాప్టివ్-tx ఆఫ్
  • అడాప్టివ్ ఇంటరప్ట్ మోడరేషన్‌ను ఆన్ చేయడానికి: ethtool -C ethX adaptive-rx on adaptive-tx on

సాధారణ ట్యూనింగ్ కోసం ప్రారంభించడానికి మంచి ప్రదేశం 84 μs లేదా ~12000 అంతరాయాలు/సె. ట్రాఫిక్ సమయంలో (ethtool -S ethX ఉపయోగించి) rx_dropped కౌంటర్లు నడుస్తున్నట్లు మీరు చూస్తే, మీరు బహుశా CPU చాలా నెమ్మదిగా ఉండవచ్చు, అడాప్టర్ యొక్క రింగ్ సైజు (ethtool -G) నుండి 84 μs లేదా తక్కువ అంతరాయ రేటు వరకు ప్యాకెట్లను పట్టుకోవడానికి తగినంత బఫర్‌లు లేకపోవచ్చు.

  • అంతరాయాల మధ్య 84 μs స్థిర అంతరాయ రేటుకు అంతరాయ మోడరేషన్‌ను సెట్ చేయడానికి (12000 అంతరాయాలు/సె): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 మీరు CPU వినియోగంలో గరిష్టంగా లేకుంటే, ప్రయత్నించవలసిన తదుపరి విలువ 62 μs. ఇది ఎక్కువ CPUని ఉపయోగిస్తుంది, కానీ ఇది బఫర్‌లను వేగంగా అందిస్తుంది మరియు తక్కువ డిస్క్రిప్టర్‌లు అవసరం (రింగ్ పరిమాణం, ethtool -G).
  • అంతరాయాల మధ్య 62 యూజ్‌సెక్స్ స్థిర అంతరాయ రేటుకు అంతరాయ మోడరేషన్‌ను సెట్ చేయడానికి (16000 అంతరాయాలు/సె). ethtool -C ethX adaptive-rx ఆఫ్ adaptive-tx ఆఫ్ rx-usecs 62 tx-usecs 62
    ట్రాఫిక్ సమయంలో rx_dropped కౌంటర్లు పెరిగితే (ethtool -S ethX ఉపయోగించి), మీ CPU చాలా నెమ్మదిగా ఉండవచ్చు, అడాప్టర్ రింగ్ సైజు (ethtool -G) నుండి తగినంత బఫర్‌లు లేకపోవచ్చు లేదా అంతరాయ రేటు చాలా తక్కువగా ఉండవచ్చు. మీరు CPU వినియోగాన్ని గరిష్టంగా ఉపయోగించకపోతే, ITR విలువను తగ్గించడం ద్వారా మీరు అంతరాయ రేటును పెంచవచ్చు. ఇది ఎక్కువ CPUని ఉపయోగిస్తుంది, కానీ సేవలు వేగంగా బఫర్ అవుతాయి మరియు తక్కువ డిస్క్రిప్టర్‌లు అవసరం (రింగ్ సైజు, ethtool -G).
    If your CPU is at 100%, then increasing the interrupt rate is not advised. In certain circumstances such as a CPU bound workload, you might want to increase the μs value to enable more CPU time for other applications.
    మీకు తక్కువ జాప్యం పనితీరు అవసరమైతే మరియు/లేదా నెట్‌వర్క్ ప్రాసెసింగ్‌కు కేటాయించడానికి తగినంత CPU ఉంటే, మీరు ఇంటరప్ట్ మోడరేషన్‌ను పూర్తిగా నిలిపివేయవచ్చు, ఇది అంతరాయాలను వీలైనంత వేగంగా ప్రారంభించడానికి వీలు కల్పిస్తుంది.
  • ఇంటరప్ట్ మోడరేషన్‌ను నిలిపివేయడానికి ethtool -C ethX adaptive-rx ఆఫ్ adaptive-tx ఆఫ్ rx-usecs 0 tx-usecs 0

గమనిక
ఇంటరప్ట్ మోడరేషన్ డిసేబుల్ చేసి నడుస్తున్నప్పుడు, ప్రతి క్యూలో ఇంటరప్ట్ రేట్ చాలా ఎక్కువగా ఉంటుంది. ఇంటరప్ట్ రేట్ పై గరిష్ట పరిమితిని సెట్ చేయడానికి rx-usec-high పరామితిని చేర్చడాన్ని పరిగణించండి. కింది ఆదేశం అడాప్టివ్ ఇంటరప్ట్ మోడరేషన్‌ను నిలిపివేస్తుంది మరియు రిసీవ్ లేదా ట్రాన్స్‌మిట్ పూర్తయిందని సూచించే ముందు గరిష్టంగా 5 మైక్రోసెకన్‌లను అనుమతిస్తుంది. సెకనుకు 200,000 అంతరాయాలకు దారితీసే బదులు, ఇది rx-usec-high పరామితి ద్వారా సెకనుకు మొత్తం అంతరాయాలను 50,000కి పరిమితం చేస్తుంది. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 వర్క్‌లోడ్ కోసం సరైన విలువను కనుగొనడానికి ట్రాన్స్‌మిట్/రిసీవ్/హై-ప్రైయారిటీ కోలెసింగ్ టైమర్‌ను ఎక్కువ (80/100/150/200) లేదా తక్కువ (25/20/10/5) సర్దుబాటు చేయడానికి ప్రయత్నించండి.
4.4 రింగ్ సైజు
మీరు ethtool -S ethX (rx_dropped, rx_dropped.nic) లో rx_dropped కౌంటర్లను చూస్తున్నట్లయితే, లేదా బహుళ క్యూలు యాక్టివ్‌గా ఉన్న కాష్ ఒత్తిడిని అనుమానిస్తే, మీరు రింగ్ సైజును డిఫాల్ట్ విలువ నుండి సర్దుబాటు చేయడానికి ప్రయత్నించవచ్చు. డిఫాల్ట్ విలువ 512, గరిష్టం 4096.

  • ప్రస్తుత విలువలను తనిఖీ చేయడానికి: ethtool -g ethX
    బఫరింగ్ లేకపోవడం వల్ల ప్రస్తుత అంతరాయ రేటు తగ్గుతుందని అనుమానించినట్లయితే, మీరు ముందుగా గరిష్టంగా, తర్వాత కనిష్టంగా ప్రయత్నించవచ్చు, ఆపై మీరు సరైన పనితీరును చూసే వరకు బైనరీ శోధనలో కొనసాగించవచ్చు.
    కాష్ ప్రెజర్ అనుమానం ఉంటే (చాలా క్యూలు యాక్టివ్‌గా ఉన్నాయి) డిఫాల్ట్ నుండి బఫర్‌లను తగ్గించడం వల్ల ఇంటెల్ ® డేటా డైరెక్ట్ I/O (ఇంటెల్ ® DDIO) మెరుగ్గా సమర్థవంతంగా పనిచేయడానికి సహాయపడుతుంది. rx_dropped పెరుగుదలను నివారించడానికి ethtool -C ద్వారా అంతరాయ రేటు పెరుగుదల అవసరమని తెలుసుకుని, ఇంటెల్ క్యూకు 128 లేదా 256 ప్రయత్నించమని సిఫార్సు చేస్తుంది.
  • రింగ్ సైజును స్థిర విలువకు సెట్ చేయడానికి: ethtool -G eth12 rx 256 tx 256

గమనిక
To fix Rx packet drops found with ethtool -S ethX|grep drop, consider increasing the ring size to 4096. Experiment to find the best setting for the workload but watch out for excessive memory usage with higher values.
4.5 ప్రవాహ నియంత్రణ
లేయర్ 2 ప్రవాహ నియంత్రణ TCP పనితీరును గణనీయంగా ప్రభావితం చేస్తుంది మరియు చాలా పనిభారాలకు దీనిని నిలిపివేయమని సిఫార్సు చేయబడింది. బరస్ట్ ట్రాఫిక్ అనేది ఒక సంభావ్య మినహాయింపు, ఇక్కడ బరస్ట్‌లు ఎక్కువ కాలం ఉండవు.
ప్రవాహ నియంత్రణ అప్రమేయంగా నిలిపివేయబడింది.

  • ప్రవాహ నియంత్రణను ప్రారంభించడానికి: ethtool -A ethX rx on tx on
  • ప్రవాహ నియంత్రణను నిలిపివేయడానికి: ethtool -A ethX rx ఆఫ్ tx ఆఫ్

గమనిక
ప్రవాహ నియంత్రణను విజయవంతంగా ప్రారంభించడానికి మీకు ప్రవాహ నియంత్రణ సామర్థ్యం గల లింక్ భాగస్వామి ఉండాలి.
4.6 జంబో ఫ్రేమ్‌లు
అంచనా వేసిన ట్రాఫిక్ వాతావరణంలో పెద్ద మొత్తంలో డేటా బదిలీ చేయబడినప్పుడు, జంబో ఫ్రేమ్ ఫీచర్‌ను ప్రారంభించడం ప్రయోజనకరంగా ఉండవచ్చు. జంబో ఫ్రేమ్స్ మద్దతు గరిష్ట ట్రాన్స్‌మిషన్ యూనిట్ (MTU)ని డిఫాల్ట్ విలువ 1500 కంటే పెద్ద విలువకు మార్చడం ద్వారా ప్రారంభించబడుతుంది. ఇది నెట్‌వర్క్ వాతావరణంలో పెద్ద ప్యాకెట్‌లలో డేటాను బదిలీ చేయడానికి పరికరాన్ని అనుమతిస్తుంది. ఈ సెట్టింగ్ థ్రూపుట్‌ను మెరుగుపరచవచ్చు మరియు పెద్ద I/O వర్క్‌లోడ్‌ల కోసం CPU వినియోగాన్ని తగ్గించవచ్చు. అయితే, ఇది చిన్న ప్యాకెట్ లేదా జాప్యం-సెన్సిటివ్ వర్క్‌లోడ్‌లపై ప్రభావం చూపవచ్చు.
గమనిక
జంబో ఫ్రేమ్‌లు లేదా అంతకంటే పెద్ద MTU సెట్టింగ్ మీ నెట్‌వర్క్ వాతావరణంలో సరిగ్గా కాన్ఫిగర్ చేయబడాలి.
MTU పరిమాణాన్ని పెంచడానికి ifconfig ఆదేశాన్ని ఉపయోగించండి. ఉదా.ample, కింది వాటిని నమోదు చేయండి, ఇక్కడ ఇంటర్ఫేస్ సంఖ్య: ifconfig mtu 9000 పైకి
ప్రత్యామ్నాయంగా, మీరు ip కమాండ్‌ను ఈ క్రింది విధంగా ఉపయోగించవచ్చు: ip లింక్ సెట్ mtu 9000 dev ip లింక్ సెటప్ dev

ప్లాట్‌ఫామ్ ట్యూనింగ్ (i40e నాన్-స్పెసిఫిక్)

5.1 BIOS సెట్టింగులు

  • వర్చువలైజేషన్ వర్క్‌లోడ్‌ల కోసం Intel® VT-d ని ప్రారంభించండి.
  • హైపర్-థ్రెడింగ్ (లాజికల్ ప్రాసెసర్లు) పనితీరును ప్రభావితం చేయవచ్చు. మీ పనిభారం కోసం దీన్ని ఆన్ లేదా ఆఫ్‌తో ప్రయోగం చేయండి.
  • Intel® Turbo Boost CPU కోర్‌లను CPU యొక్క బేస్ ఫ్రీక్వెన్సీ కంటే ఎక్కువ ఫ్రీక్వెన్సీలో పనిచేయడానికి అనుమతిస్తుంది. Intel® Turbo Boostను ప్రారంభించడం వలన అనేక వర్క్‌లోడ్‌లకు పనితీరు మెరుగుపడుతుంది కానీ కోర్‌లను అధిక ఫ్రీక్వెన్సీలో ఉంచడానికి ఎక్కువ శక్తి ఖర్చవుతుంది. మీ వర్క్‌లోడ్ కోసం టర్బో బూస్ట్‌ను ఆఫ్/ఆన్‌లో ప్రయోగం చేయండి.

గమనిక
ప్లాట్‌ఫామ్ అధిక మొత్తం CPU వినియోగాన్ని అనుభవిస్తుంటే టర్బో ఫ్రీక్వెన్సీలకు హామీ లేదు. మొత్తం CPU వినియోగం పెరిగేకొద్దీ అధిక కోర్ టర్బో ఫ్రీక్వెన్సీలు తగ్గుతాయి.
5.2 పవర్ మేనేజ్‌మెంట్
విద్యుత్ నిర్వహణ పనితీరును ప్రభావితం చేస్తుంది, ముఖ్యంగా తక్కువ జాప్యం పనిభారాలలో. విద్యుత్ వినియోగాన్ని తగ్గించడం కంటే పనితీరుకు అధిక ప్రాధాన్యత ఉంటే, విద్యుత్ నిర్వహణ ప్రభావాలను పరిమితం చేయడంతో మీరు ప్రయోగాలు చేయాలని ఇంటెల్ సిఫార్సు చేస్తుంది. ఆపరేటింగ్ సిస్టమ్ సాధనాలు, BIOS సెట్టింగ్‌లు మరియు కెర్నల్ బూట్ పారామితుల ద్వారా విద్యుత్ నిర్వహణను పరిమితం చేయడానికి అనేక విభిన్న మార్గాలు ఉన్నాయి. మీ వాతావరణానికి అనుగుణంగా ఉత్తమ పద్ధతి మరియు స్థాయిని ఎంచుకోండి.
5.2.1 సి-స్టేట్ కంట్రోల్
C-స్టేట్ ఎంట్రీని CO లేదా C1 కి పరిమితం చేయడం వల్ల పనితీరు మెరుగుపడుతుంది మరియు విద్యుత్ వినియోగాన్ని పెంచుతుంది.
CPU ప్యాకేజీ C6 స్థితి ఎంట్రీని నిలిపివేయడం వలన నెట్‌వర్క్ పనితీరు మెరుగుపడుతుంది. అయితే, ఇది విద్యుత్ వినియోగాన్ని పెంచుతుంది.
కింది ఎంపికలు అందుబాటులో ఉన్నాయి:

  • C-స్టేట్ ఎంట్రీని డైనమిక్‌గా నియంత్రించండి:
    తెరవండి
    /dev/cpu_dma_latency ని నమోదు చేసి, దానికి అనుమతించదగిన గరిష్ట జాప్యాన్ని వ్రాయండి.

గమనిక
cpudmalatancy.c అనే చిన్న ప్రోగ్రామ్ ఉంది, దీనిని ఓపెన్ సోర్స్ కమ్యూనిటీ నుండి డౌన్‌లోడ్ చేసుకోవచ్చు, కంపైల్ చేయవచ్చు మరియు కమాండ్ లైన్ నుండి అమలు చేయవచ్చు.
కింది మాజీample ఐదు μs మేల్కొనే సమయాన్ని అనుమతిస్తుంది, అందువలన C1 ప్రవేశాన్ని అనుమతిస్తుంది: cpudmalatency 5 &

  • కెర్నల్ బూట్ సెట్టింగులలో గరిష్ట C-స్థితిని పరిమితం చేయండి:
    ఇంటెల్ CPUల కోసం: intel_idle.max_cstates=1
    ఇంటెల్ కాని CPUల కోసం: processor.max_cstates=1
  • CPU C6 స్థితిని తనిఖీ చేయడానికి మరియు నిలిపివేయడానికి cpupower ఆదేశాన్ని ఉపయోగించండి: తనిఖీ చేయండి: cpupower మానిటర్ లేదా cpupower idle-info
    C6 ని నిలిపివేయండి: cpupower idle-set -d3 లేదా
    సి-స్టేట్‌లను నిలిపివేయండి: cpupower idle-set -D0

గమనికలు:

  1. సర్వర్‌లో Intel® 4వ తరం Intel® Xeon® స్కేలబుల్ ప్రాసెసర్(లు) ఉంటే CPUలో C-స్టేట్‌లను నిలిపివేయండి. హైపర్ థ్రెడింగ్ ప్రారంభించబడినప్పుడు లేదా నిలిపివేయబడినప్పుడు, ఐడిల్ స్టేట్‌లను (-D0) నిలిపివేయడం వలన ఐడిల్ పీరియడ్‌లలో కోర్‌లు తక్కువ-పవర్ స్టేట్‌లలోకి ప్రవేశించకుండా నిరోధించబడుతుంది మరియు ఐడిల్ మరియు యాక్టివ్ స్టేట్‌ల మధ్య CPU పరివర్తనకు జాప్యాన్ని తగ్గిస్తుంది.
  2. Intel® 4వ తరం Intel® Xeon® స్కేలబుల్ ప్రాసెసర్ యొక్క పవర్ మేనేజ్‌మెంట్ చాలా దూకుడుగా ఉంటుంది. కోర్లు తక్కువ-పవర్ స్టేట్‌లలోకి ప్రవేశించకుండా ఉండటానికి, వాటిని ఎక్కువసేపు మేల్కొని ఉంచడానికి ఉపయోగంలో ఉన్న కోర్ల సంఖ్యను తగ్గించడానికి ప్రయత్నించండి (ethtool -L కలిపి ). అలాగే, సెట్ irq అఫినిటీ (చాలా తరచుగా -x లోకల్ లేదా CPU కోర్ల జాబితాతో) ఉపయోగించి నిర్దిష్ట కోర్లకు అంతరాయాలను బైండ్ చేయండి మరియు టాస్క్‌సెట్ లేదా numactlతో అదే కోర్లపై పనిభారం నడుస్తుందని నిర్ధారించుకోండి. ఇది కోర్లను యాక్టివ్‌గా ఉంచడం ద్వారా మరియు అంతరాయ నిర్వహణను ఆప్టిమైజ్ చేయడం ద్వారా పనితీరును మెరుగుపరుస్తుంది.

C6 ని ప్రారంభించండి:
cpupower ఐడిల్-సెట్ -d3
సి-స్టేట్స్‌ను ప్రారంభించండి:
cpupower ఐడిల్-సెట్ -E

  • మరొక పద్ధతి ఏమిటంటే, పనితీరు ప్రోను సెట్ చేయడానికి ట్యూన్ చేయబడిన సాధనాన్ని (అనేక Linux పంపిణీలతో సహా) ఉపయోగించడం.file. ఈ ప్రోfileఅనేక అప్లికేషన్లలో పనితీరును ప్రభావితం చేసే అనేక OS సెట్టింగ్‌లను s సవరిస్తుంది. నెట్‌వర్క్-త్రూపుట్ ప్రో అని కనుగొనబడిందిfile చాలా పనిభారాలకు మెరుగుదలను అందిస్తుంది.
    తనిఖీ:
    ట్యూన్డ్-అడ్మిన్ యాక్టివ్
    సెట్:
    ట్యూన్డ్-అడ్మిన్ ప్రోfile నెట్‌వర్క్-త్రూపుట్
    గమనిక
    పైన పేర్కొన్న ఆదేశాల కోసం ట్యూన్డ్ సర్వీస్ తప్పనిసరిగా నడుస్తూ ఉండాలి. తనిఖీ చేయడానికి/పునఃప్రారంభించడానికి, ట్యూన్ చేయబడింది: systemctl స్థితి ట్యూన్ చేయబడింది systemctl పునఃప్రారంభించబడింది ట్యూన్ చేయబడింది
    కెర్నల్ బూట్ లైన్‌కు కింది వాటిని జోడించడం ద్వారా మీరు ఏదైనా సి-స్టేట్ ఎంట్రీని అనుమతించకపోవచ్చు:
    ఐడిల్=పోల్
  • సిస్టమ్ యొక్క BIOS పవర్ మేనేజ్‌మెంట్ సెట్టింగ్‌ల ద్వారా C-స్టేట్‌ను పరిమితం చేయండి, దీనికి పనితీరు ప్రో ఉండవచ్చుfile అందుబాటులో.
    పవర్ మేనేజ్‌మెంట్ సెట్టింగ్‌లను తనిఖీ చేయడానికి లేదా సెట్ చేయడానికి టర్బోస్టాట్ లేదా x86_energy_perf_policy వంటి సాధనాలను ఉపయోగించవచ్చు.

5.2.2 PCIe పవర్ మేనేజ్‌మెంట్
యాక్టివ్-స్టేట్ పవర్ మేనేజ్‌మెంట్ (ASPM) PCIe లింక్‌లు యాక్టివ్ ఉపయోగంలో లేనప్పుడు తక్కువ పవర్ స్టేట్‌ను అనుమతిస్తుంది. ఇది PCIe నెట్‌వర్క్ పరికరాల్లో అధిక జాప్యాన్ని కలిగిస్తుంది, కాబట్టి ఇంటెల్ మీరు జాప్యం-సెన్సిటివ్ వర్క్‌లోడ్‌ల కోసం ASPMను నిలిపివేయాలని సిఫార్సు చేస్తుంది. కెర్నల్ బూట్ లైన్‌కు కింది వాటిని జోడించడం ద్వారా ASPMను నిలిపివేయండి: pcie_aspm=off
5.2.3 CPU ఫ్రీక్వెన్సీ స్కేలింగ్
CPU ఫ్రీక్వెన్సీ స్కేలింగ్ (లేదా CPU స్పీడ్ స్కేలింగ్) అనేది Linux పవర్ మేనేజ్‌మెంట్ టెక్నిక్, దీనిలో పవర్ మరియు వేడిని ఆదా చేయడానికి సిస్టమ్ క్లాక్ వేగాన్ని తక్షణమే సర్దుబాటు చేస్తారు. C-స్టేట్‌ల మాదిరిగానే, ఇది నెట్‌వర్క్ కనెక్షన్‌లలో అవాంఛిత జాప్యాన్ని కలిగిస్తుంది.
CPU పనితీరు డిఫాల్ట్‌లు మరియు పరిమితులను తనిఖీ చేయడానికి మరియు సవరించడానికి cpupower సాధనాన్ని కూడా ఉపయోగించవచ్చు:

  • తనిఖీ చేయండి: cpupower మానిటర్ లేదా
  • CPU లను పనితీరు మోడ్‌కు సెట్ చేయండి: cpupower ఫ్రీక్వెన్సీ-సెట్ -g పనితీరు

గమనిక
CPU ఫ్రీక్వెన్సీ పరిమితులకు మార్పులు అనేక పనిభారాలపై ప్రభావం చూపుతాయి మరియు CPU టర్బో మోడ్ వంటి ఇతర లక్షణాలను నిలిపివేయవచ్చు.
CPU ఫ్రీక్వెన్సీ స్కేలింగ్‌ను నిలిపివేయడానికి, కింది ఆదేశాల ద్వారా CPU పవర్ సర్వీస్‌ను నిలిపివేయండి:
systemctl స్టాప్ cpupower.service
systemctl cpupower.service ని డిసేబుల్ చేయండి
5.2.4 అదనపు విద్యుత్ నిర్వహణ మార్గదర్శకత్వం
ఈ ఉన్నత స్థాయి ఓవర్‌లో అదనపు వివరాలు అందించబడ్డాయిview 3వ తరం ఇంటెల్® జియాన్® స్కేలబుల్ ప్రాసెసర్‌లలోని అనేక పవర్ మేనేజ్‌మెంట్ లక్షణాల గురించి, అలాగే ఈ లక్షణాలను ప్లాట్‌ఫామ్ స్థాయిలో ఎలా సమగ్రపరచవచ్చనే దానిపై మార్గదర్శకత్వం: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 ఇంటెల్® టర్బో బూస్ట్
Intel® Turbo Boost అవసరమైనప్పుడు ప్రాసెసర్‌ను వేగవంతం చేస్తుంది కానీ అదనపు శక్తిని వినియోగించగలదు. Turbo Boostను ఆఫ్ చేయడం వలన ప్రాసెసర్ స్థిరమైన వేగంతో ఉంచుతుంది, నిర్దిష్ట పనిభారాలకు స్థిరమైన పనితీరు స్థాయిని మీకు అందిస్తుంది.
5.4 ఫైర్‌వాల్‌లు
ఫైర్‌వాల్‌లు పనితీరును ప్రభావితం చేస్తాయి, ముఖ్యంగా జాప్యం పనితీరును ప్రభావితం చేస్తాయి.
అవసరం లేకపోతే iptables/firewalld ని నిలిపివేయండి.
5.5 అప్లికేషన్ సెట్టింగ్‌లు
గరిష్ట బ్యాండ్‌విడ్త్ సాధించడానికి తరచుగా ఒకే థ్రెడ్ (ఒకే నెట్‌వర్క్ క్యూకు అనుగుణంగా ఉంటుంది) సరిపోదు. AMD వంటి కొన్ని ప్లాట్‌ఫామ్ ఆర్కిటెక్చర్‌లు, ఇంటెల్-ఆధారిత ప్రాసెసర్‌లతో ఉన్న ప్లాట్‌ఫామ్‌లతో పోలిస్తే ఒకే థ్రెడ్‌తో ఎక్కువ Rx ప్యాకెట్‌లను వదులుతాయి.
NUMA నోడ్ లేదా CPU కోర్లను నెట్‌వర్క్ పరికరానికి స్థానికంగా పిన్ చేయడానికి టాస్క్‌సెట్ లేదా numactl వంటి సాధనాలను ఉపయోగించడాన్ని పరిగణించండి. నిల్వ I/O వంటి కొన్ని పనిభారాల కోసం, అప్లికేషన్‌ను స్థానికేతర నోడ్‌కి తరలించడం వల్ల ప్రయోజనం లభిస్తుంది.
Experiment with increasing the number of threads used by your application if possible.
5.6 కెర్నల్ వెర్షన్
చాలా ఆధునిక ఇన్-బాక్స్ కెర్నల్‌లు పనితీరు కోసం బాగా ఆప్టిమైజ్ చేయబడ్డాయి కానీ, మీ వినియోగ సందర్భాన్ని బట్టి, కెర్నల్‌ను నవీకరించడం వలన మెరుగైన పనితీరు అందించవచ్చు. సోర్స్‌ను డౌన్‌లోడ్ చేయడం వలన కెర్నల్‌ను నిర్మించే ముందు కొన్ని లక్షణాలను ప్రారంభించవచ్చు/నిలిపివేయవచ్చు.
5.7 ఆపరేటింగ్ సిస్టమ్/కెర్నల్ సెట్టింగ్‌లు
సాధారణ ఆపరేటింగ్ సిస్టమ్ ట్యూనింగ్ గురించి మరింత సమాచారం కోసం Red Hat Enterprise Linux నెట్‌వర్క్ పెర్ఫార్మెన్స్ ట్యూనింగ్ గైడ్ వంటి ఆపరేటింగ్ సిస్టమ్ ట్యూనింగ్ గైడ్‌లను సంప్రదించండి.
Some common parameters to tune are listed in the following table. Note that these are only suggested starting points, and changing them from the defaults might increase the resources used on the system. Though increasing the values can help improve performance, it is necessary to experiment with different values to determine what works best for a given system, workload and traffic type.
క్రింద సూచించిన విధంగా Linux లోని sysctl యుటిలిటీని ఉపయోగించి కెర్నల్ పారామితులను కాన్ఫిగర్ చేయవచ్చు.
కు view సిస్టమ్‌లో rmem మరియు wmem లకు డిఫాల్ట్ విలువలు:
sysctl net.core.rmem_default ద్వారా
sysctl నెట్.కోర్.wmem_డిఫాల్ట్
విలువలను గరిష్టంగా (16 MB) సెట్ చేయండి:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
సాకెట్ బఫర్ పరిమాణాలు, రిసీవ్ బఫర్ (rmem) మరియు ట్రాన్స్మిట్ బఫర్ (wmem) అని కూడా పిలుస్తారు, ఇవి ఇన్‌కమింగ్ మరియు అవుట్‌గోయింగ్ నెట్‌వర్క్ ట్రాఫిక్ కోసం రిజర్వు చేయబడిన మెమరీ మొత్తాన్ని పేర్కొనే సిస్టమ్ పారామితులు.
-w ఆర్గ్యుమెంట్ లేకుండా sysctl ను అమలు చేయడం వలన పారామీటర్ దాని ప్రస్తుత సెట్టింగ్‌తో జాబితా చేయబడుతుంది.

స్టాక్ సెట్టింగ్ వివరణ
నెట్.కోర్.ఆర్ఎంఎమ్_డిఫాల్ట్ డిఫాల్ట్ రిసీవ్ విండో పరిమాణం
నెట్.కోర్.డబ్ల్యూఎంఈఎం_డిఫాల్ట్ డిఫాల్ట్ ట్రాన్స్మిట్ విండో పరిమాణం
నెట్.కోర్.ఆర్ఎంఎమ్_మాక్స్ గరిష్ట రిసీవ్ విండో పరిమాణం
నెట్.కోర్.డబ్ల్యూమెమ్_మాక్స్ గరిష్ట ట్రాన్స్మిట్ విండో పరిమాణం
నెట్.కోర్.ఆప్ట్మెమ్_మాక్స్ గరిష్ట ఎంపిక మెమరీ బఫర్‌లు
net.core.netdev_max_backlog ద్వారా కెర్నల్ పడిపోవడానికి ముందు ప్రాసెస్ చేయని ప్యాకెట్ల బ్యాక్‌లాగ్
net.ipv4.tcp_rmem ద్వారా TCP రీడ్ బఫర్‌ల కోసం మెమరీ రిజర్వర్
నెట్.ఐపివి4.టిసిపి_డబ్ల్యుఎంఇఎమ్ TCP పంపే బఫర్‌ల కోసం మెమరీ రిజర్వర్

కెర్నల్, నెట్‌వర్క్ స్టాక్, మెమరీ హ్యాండ్లర్, CPU వేగం మరియు పవర్ మేనేజ్‌మెంట్ పారామితులు నెట్‌వర్క్ పనితీరుపై పెద్ద ప్రభావాన్ని చూపుతాయి. నెట్‌వర్క్ త్రూపుట్ ప్రోకు వర్తింపజేయడం ఒక సాధారణ సిఫార్సు.file ట్యూన్డ్ కమాండ్ ఉపయోగించి. ఇది నెట్‌వర్కింగ్ అప్లికేషన్‌లకు ప్రాధాన్యత ఇవ్వడానికి కొన్ని OS సెట్టింగ్‌లను సవరిస్తుంది.
తనిఖీ:
ట్యూన్డ్-అడ్మిన్ యాక్టివ్
సెట్:
ట్యూన్డ్-అడ్మిన్ ప్రోfile నెట్‌వర్క్-త్రూపుట్
5.8 నెట్‌వర్క్ పరికర బ్యాక్‌లాగ్
ఈ ఫీచర్ ఇన్‌కమింగ్ ట్రాఫిక్‌ను సమర్థవంతంగా నిర్వహించడం, ప్యాకెట్ నష్టాన్ని తగ్గించడం, జాప్యాన్ని తగ్గించడం మరియు నిర్గమాంశను పెంచడం ద్వారా నెట్‌వర్క్ పనితీరును మెరుగుపరచడంలో సహాయపడుతుంది. ఇది మెరుగైన వినియోగదారు అనుభవానికి మరియు వేగవంతమైన సిస్టమ్ ప్రతిస్పందనకు దారితీస్తుంది.
డిఫాల్ట్‌గా, ఇది చాలా Linux ఆపరేటింగ్ సిస్టమ్‌లలో ప్రారంభించబడి ఉంటుంది. డిఫాల్ట్ విలువను తనిఖీ చేయడానికి:
sysctl net.core.netdev_max_backlog ద్వారా
కెర్నల్ వెర్షన్, హార్డ్‌వేర్, మెమరీ మరియు పనిభారం వంటి అంశాలపై ఆధారపడి netdev_max_backlog కోసం గరిష్ట విలువ మారవచ్చు. చాలా సందర్భాలలో, 8192 మంచి విలువగా పరిగణించబడుతుంది. sysctl -w net.core.netdev_max_backlog=8192
5.9 ప్లాట్‌ఫామ్-నిర్దిష్ట కాన్ఫిగరేషన్‌లు మరియు ట్యూనింగ్
5.9.1 4వ తరం Intel® Xeon® స్కేలబుల్ ప్రాసెసర్లు

4వ తరం ఇంటెల్® జియాన్® స్కేలబుల్ ప్రాసెసర్‌లతో పోలిస్తే ఇంటెల్® 3వ తరం ఇంటెల్® జియాన్® స్కేలబుల్ ప్రాసెసర్ యొక్క పవర్ మేనేజ్‌మెంట్ చాలా దూకుడుగా ఉంటుంది. తక్కువ-పవర్ స్టేట్‌లలోకి కోర్‌లు ప్రవేశించకుండా ఉండటానికి, వాటిని ఎక్కువసేపు మేల్కొని ఉంచడానికి ఉపయోగంలో ఉన్న కోర్ల సంఖ్యను తగ్గించడానికి ప్రయత్నించండి.
అత్యధిక పనితీరు కోసం సిఫార్సు చేయబడిన బయోస్ సెట్టింగ్‌లు

  1. CPU పై హైపర్-థ్రెడింగ్ ఎనేబుల్/డిజేబుల్ (వర్క్లోడ్ అవసరం మరియు పనితీరు లక్ష్యాల ఆధారంగా).
  2. సిస్టమ్ ప్రోని సెట్ చేయండిfile గరిష్ట పనితీరు కోసం పనితీరుకు.
    గమనిక
    దీని వలన అధిక విద్యుత్ వినియోగం జరుగుతుంది
  3. పవర్ సామర్థ్యం కంటే గరిష్ట CPU పనితీరుకు ప్రాధాన్యత ఇవ్వడానికి CPU పవర్ నిర్వహణను గరిష్ట పనితీరుకు సెట్ చేయండి.
  4. Enable Turbo Boost. Disabling Turbo Boost in the system BIOS settings typically prevents the CPU from dynamically increasing its clock speed beyond its base frequency.
  5. గమనిక
    గరిష్ట పనితీరు కంటే స్థిరమైన పనితీరు, విద్యుత్ సామర్థ్యం లేదా ఉష్ణ నిర్వహణకు ప్రాధాన్యత ఇవ్వబడిన కొన్ని వినియోగ సందర్భాలలో టర్బో బూస్ట్‌ను నిలిపివేయడం అనుకూలంగా ఉండవచ్చు.
  6. సిస్టమ్ వర్చువలైజేషన్ టెక్నాలజీలను ఉపయోగించకపోతే, సింగిల్ రూట్ I/O వర్చువలైజేషన్ (SR-IOV) ఫీచర్‌ను ఆఫ్ చేయండి.
  7. CPU యాక్టివ్‌గా ఉండమని మరియు లోతైన ఐడిల్ స్టేట్‌లలోకి ప్రవేశించకుండా నిరోధించమని సూచించడానికి C-స్టేట్‌లను నిలిపివేయండి.
  8. CPU యాక్టివ్‌గా ఉండి, C1E ఐడిల్ స్టేట్‌లోకి వెళ్లకుండా చూసుకోవడానికి C1Eని డిసేబుల్ చేయండి.
  9. సిస్టమ్ అందుబాటులో ఉన్న అత్యధిక ఫ్రీక్వెన్సీలో పనిచేయడానికి సూచించడానికి అన్‌కోర్ ఫ్రీక్వెన్సీని గరిష్టంగా సెట్ చేయండి.
  10. డెల్ ప్లాట్‌ఫామ్‌లలో, CPU కోర్ల యొక్క స్పష్టమైన మరియు ఊహించదగిన మ్యాపింగ్‌ను అందించడానికి బహుళ APIC డిస్క్రిప్షన్ టేబుల్ (MADT) కోర్ ఎమ్యులేషన్‌ను లీనియర్ (లేదా BIOS ఆధారంగా రౌండ్-రాబిన్) కు సెట్ చేయండి.

ఆప్టిమైజ్ చేసిన పనితీరు కోసం సిఫార్సు చేయబడిన OS స్థాయి ట్యూనింగ్‌లు

  1. CPU ఫ్రీక్వెన్సీ స్కేలింగ్ గవర్నర్‌ను పనితీరుకు సెట్ చేయండి. cpupower ఫ్రీక్వెన్సీ-సెట్ -g పనితీరు cpupower ఫ్రీక్వెన్సీ-ఇన్ఫో
  2. సి-స్టేట్స్‌ను నిలిపివేయండి. cpupower idle-set -D0
  3. కోర్ Rx (rmem) మరియు Tx (wmem) బఫర్‌లను గరిష్ట విలువకు సెట్ చేయండి. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. నెట్‌వర్క్ పరికర బ్యాక్‌లాగ్‌ను సెట్ చేయండి. sysctl -w net.core.netdev_max_backlog=8192
  5. ట్యూన్ చేయబడిన ప్రోని సెట్ చేయండిfile (త్రూపుట్/జాప్యం కోసం పనిభారం ఆధారపడి ఉంటుంది).
    ట్యూన్డ్-అడ్మిన్ ప్రోfile నెట్‌వర్క్-త్రూపుట్

ఆప్టిమైజ్డ్ పనితీరు కోసం సిఫార్సు చేయబడిన అడాప్టర్ స్థాయి ట్యూనింగ్‌లు

  1. అప్లికేషన్ ట్రాఫిక్ కోసం ఉపయోగించాల్సిన క్యూల సంఖ్యను పరిమితం చేయండి. అనుబంధ CPU కోర్లు లోతైన నిష్క్రియ స్థితులలోకి ప్రవేశించకుండా నిరోధించడానికి అవసరమైన కనీస క్యూల సంఖ్యను ఉపయోగించండి (పనిభారానికి సర్దుబాటు చేయండి): ethtool -L కలిపి 32
  2. అంతరాయ మోడరేషన్ రేట్లను సెట్ చేయండి. ethtool -C అడాప్టివ్-ఆర్ఎక్స్ ఆఫ్ అడాప్టివ్-టిఎక్స్ ఆఫ్ ఆర్ఎక్స్-యూసెక్స్-హై 50 ఆర్ఎక్స్-యూసెక్స్ 50 టిఎక్స్-యూసెక్స్ 50
    పనిభారానికి సరైన విలువను కనుగొనడానికి ట్రాన్స్మిట్/రిసీవ్/హై-ప్రియారిటీ కోలెన్సింగ్ టైమర్‌ను ఎక్కువ (80/100/150/200) లేదా తక్కువ (25/20/10/5) సర్దుబాటు చేయడానికి ప్రయత్నించండి.
  3. Rx/Tx రింగ్ పరిమాణాలను సెట్ చేయండి. ethtool -G ఆర్ఎక్స్ 4096 టిఎక్స్ 4096
    గమనిక
    మీరు ethtool -S| grep డ్రాప్‌తో Rx ప్యాకెట్ డ్రాప్‌లను చూసినట్లయితే, రింగ్ సైజును <4096కి తగ్గించడానికి ప్రయత్నించండి. ప్యాకెట్‌లు డ్రాప్ చేయబడని పనిభారానికి సరైన విలువను కనుగొనడానికి ప్రయత్నించండి.
  4. IRQ అనుబంధాన్ని సెట్ చేయండి. NICకి లోకల్ కోర్‌లను లేదా నిర్దిష్ట కోర్ మ్యాపింగ్‌ను ఉపయోగించండి (ఇక్కడ # కోర్‌లు పేజీ 1లోని 26లో సెట్ చేయబడిన క్యూల సంఖ్యకు సమానం. systemctl స్టాప్ irqbalance set_irq_affinity -X లోకల్ లేదా set_irq_affinity -X

5.9.2 AMD EPYC
AMD EPYC ప్రాసెసర్లు అనేవి సర్వర్లు మరియు డేటా సెంటర్ల కోసం తయారు చేయబడిన శక్తివంతమైన CPUలు, ఇవి AMD యొక్క జెన్ ఆర్కిటెక్చర్‌పై నిర్మించబడ్డాయి. కింది సెట్టింగ్‌లు AMD యొక్క 4వ తరం EPYC సిరీస్ నుండి వచ్చాయి.
అత్యధిక పనితీరు కోసం సిఫార్సు చేయబడిన BIOS సెట్టింగ్‌లు

  1. వినియోగదారులు CPU పనితీరు, విద్యుత్ వినియోగం మరియు ఇతర సెట్టింగ్‌లను సర్దుబాటు చేయడానికి కస్టమ్ మోడ్‌ను ప్రారంభించండి. ఇది పనితీరు మరియు శక్తి సామర్థ్యం మధ్య ఉత్తమ సమతుల్యత కోసం సిస్టమ్‌ను చక్కగా ట్యూన్ చేయడంలో సహాయపడుతుంది.
  2. కోర్ పనితీరు బూస్ట్‌ను ప్రారంభించడం ద్వారా CPU మరింత ఇంటెన్సివ్ పనులను నిర్వహించడానికి దాని వేగాన్ని స్వయంచాలకంగా పెంచుతుంది, మొత్తం పనితీరును మెరుగుపరుస్తుంది.
  3. ప్రతిస్పందనను కొనసాగించగల C-స్టేట్స్ అని పిలువబడే లోతైన విద్యుత్ పొదుపు స్థితులలోకి CPU ప్రవేశించకుండా నిరోధించడానికి, గ్లోబల్ C-స్టేట్ నియంత్రణను నిలిపివేయండి.
    గమనిక
    C-స్టేట్‌లను నిలిపివేయడం వలన అదనపు విద్యుత్ వినియోగం మరియు ఉష్ణ ఉష్ణోగ్రతలు పెరుగుతాయి. పనిభారం కోసం రెండింటినీ పర్యవేక్షించండి.
  4. పనిభారం అవసరం మరియు పనితీరు లక్ష్యాల ఆధారంగా CPUలో సైమల్టేనియస్ మల్టీథ్రెడింగ్ (SMT)ని ప్రారంభించండి/నిలిపివేయండి. SMT అనేది ఇంటెల్ CPUలలో హైపర్ థ్రెడింగ్‌కు సమానం.
    గమనిక
    ఆప్టిమైజ్ చేయబడిన పనితీరు కోసం, సిఫార్సు చేయబడిన OS మరియు అడాప్టర్ స్థాయి ట్యూనింగ్ కోసం పేజీ 40లోని ట్యూనింగ్ i13e డ్రైవర్ సెట్టింగ్‌లను మరియు పేజీ 40లోని ప్లాట్‌ఫామ్ ట్యూనింగ్ (i19e నాన్-స్పెసిఫిక్)ను చూడండి.

అడాప్టర్ బాండింగ్

Linux బాండింగ్ అనేది సర్వర్ పరిసరాలలో నెట్‌వర్క్ పనితీరు, రిడెండెన్సీ మరియు ఫాల్ట్ టాలరెన్స్‌ను గణనీయంగా మెరుగుపరచగల శక్తివంతమైన లక్షణం. అయితే, సర్వర్ మరియు స్విచ్ రెండింటిలోనూ సరిగ్గా పనిచేయడానికి దీనికి అనుకూలమైన నెట్‌వర్క్ హార్డ్‌వేర్ మరియు సరైన కాన్ఫిగరేషన్ అవసరమని గమనించడం ముఖ్యం.
Linux లోని బాండింగ్ డ్రైవర్ బహుళ భౌతిక నెట్‌వర్క్ ఇంటర్‌ఫేస్‌లను బాండెడ్ ఇంటర్‌ఫేస్‌లోకి సమగ్రపరచడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ బాండెడ్ ఇంటర్‌ఫేస్ ఆపరేటింగ్ సిస్టమ్ మరియు అప్లికేషన్‌లకు ఒకే వర్చువల్ నెట్‌వర్క్ ఇంటర్‌ఫేస్‌గా కనిపిస్తుంది.
గమనిక
బాండ్ ఒక లాజికల్ ఇంటర్‌ఫేస్, కాబట్టి CPU అఫినిటీని నేరుగా బాండ్ ఇంటర్‌ఫేస్‌పై సెట్ చేయడం సాధ్యం కాదు (ఉదాహరణకుample, bond0). అంటే, దీనికి అంతరాయ నిర్వహణ లేదా CPU అనుబంధంపై ప్రత్యక్ష నియంత్రణ ఉండదు. బంధంలో భాగమైన అంతర్లీన ఇంటర్‌ఫేస్‌ల కోసం CPU అనుబంధాన్ని కాన్ఫిగర్ చేయాలి.
బంధం అనేక రకాల కార్యకలాపాలను అందిస్తుంది, ప్రతి దాని స్వంత లక్షణాలను కలిగి ఉంటుంది.

మోడ్  టైప్ చేయండి
0 రౌండ్ రాబిన్
1 క్రియాశీల బ్యాకప్
2 XOR
3 ప్రసారం
4 LACP
5 ట్రాన్స్మిట్ లోడ్ బ్యాలెన్స్
6 అనుకూల లోడ్ బ్యాలెన్స్

Linux లో బాండింగ్ సృష్టించడానికి వివిధ పద్ధతులు ఉన్నాయి. నెట్‌వర్క్ కాన్ఫిగరేషన్‌ను ఉపయోగించడం అత్యంత సాధారణ పద్ధతుల్లో ఒకటి. files (ఉదాample, /etc/network/ ఇంటర్‌ఫేస్‌లు లేదా /etc/sysconfig/network-scripts/ifcfg-bondX).
నెట్‌వర్క్ కాన్ఫిగరేషన్ ఉపయోగించి కాన్ఫిగరేషన్ Files
కింది దశలు నెట్‌వర్క్ కాన్ఫిగరేషన్ ద్వారా బంధాన్ని సృష్టిస్తాయి. files.

  1. బంధం కోసం రెండు లేదా అంతకంటే ఎక్కువ NIC పోర్టులను ఎంచుకోండి (ఉదాహరణకుample, ethX మరియు ethY)
  2. NIC కాన్ఫిగరేషన్ తెరవండి Fileఅవసరమైన NIC ఇంటర్‌ఫేస్ కోసం /etc/sysconfig/network-scripts/ కింద s (ఉదాహరణకుample, vi ifcfg-ethX మరియు vi ifcfg-ethY) ను జత చేసి, కింది వచనాన్ని జత చేయండి:
    MASTER=bondN [గమనిక: బాండ్ సంఖ్యను పేర్కొనడానికి N అనేది ఒక పూర్ణాంకం.] SLAVE=yes
  3. బాండ్ నెట్‌వర్క్ స్క్రిప్ట్‌ను సృష్టించండి file vi /etc/sysconfig/networkscripts/ifcfg-bondN ఉపయోగించి కింది వచనాన్ని నమోదు చేయండి:
    DEVICE=bondN [గమనిక: బాండ్ సంఖ్యను పేర్కొనడానికి N అనేది ఒక పూర్ణాంకం] ONBOOT=అవును USERCTL=లేదు BOOTPROTO=dhcp (లేదా) ఏదీ కాదు
    IPADDR=200.20.2.4 [BOOTPROTO=none అయితే అవసరం] NETMASK=255.255.255.0 [BOOTPROTO=none అయితే అవసరం] NETWORK=200.20.2.0 [BOOTPROTO=none అయితే అవసరం] BROADCAST=200.20.2.255 [BOOTPROTO=none అయితే అవసరం] BONDING_OPTS=”mode=1 miimon=100″
    గమనిక
    ఆవశ్యకతను బట్టి మోడ్ 0 నుండి 6 వరకు ఏదైనా పూర్ణాంకం కావచ్చు.
  4. సర్వీస్ నెట్‌వర్క్ రీస్టార్ట్ లేదా సిస్టమ్‌క్ట్ఎల్ రీస్టార్ట్ NetworkManager.service ఉపయోగించి నెట్‌వర్క్ సేవలను రీస్టార్ట్ చేయండి.

పనితీరు ట్రబుల్షూటింగ్

7.1 CPU వినియోగం
పనిభారం నడుస్తున్నప్పుడు కోర్‌కు CPU వినియోగాన్ని తనిఖీ చేయండి.
మొత్తం CPU వినియోగం కంటే పనితీరుకు కోర్ వినియోగం ఎక్కువ సందర్భోచితంగా ఉంటుందని గమనించండి ఎందుకంటే ఇది నెట్‌వర్క్ క్యూకు CPU వినియోగం గురించి ఒక ఆలోచనను అందిస్తుంది. మీకు నెట్‌వర్క్ ట్రాఫిక్ నడుస్తున్న కొన్ని థ్రెడ్‌లు మాత్రమే ఉంటే, మీరు కొన్ని కోర్‌లను మాత్రమే ఉపయోగిస్తూ ఉండవచ్చు. అయితే, ఆ కోర్లు 100% వద్ద ఉంటే, మీ నెట్‌వర్క్ నిర్గమాంశ CPU వినియోగం ద్వారా పరిమితం చేయబడి ఉండవచ్చు మరియు ఈ క్రింది వాటిని చేయాల్సిన సమయం ఆసన్నమైంది:

  1. ఇంటరప్ట్ మోడరేషన్‌లో వివరించిన విధంగా IRQ మోడరేషన్/రింగ్ సైజును ట్యూన్ చేయండి.
  2. CPU లోడ్‌ను మరిన్ని కోర్లపై విస్తరించడానికి అప్లికేషన్ థ్రెడ్‌ల సంఖ్యను పెంచండి. అన్ని కోర్లు 100% వద్ద నడుస్తుంటే మీ అప్లికేషన్ నెట్‌వర్క్ బౌండ్ కాకుండా CPU బౌండ్ అయి ఉండవచ్చు.

సాధారణంగా లభించే సాధనాలు:

  • టాప్
    — CPUల జాబితాను విస్తరించడానికి మరియు ఏవి ఉపయోగించబడుతున్నాయో తనిఖీ చేయడానికి 1 నొక్కండి.
    — వినియోగ స్థాయిని గమనించండి.
    — ఏ ప్రక్రియలు అత్యంత క్రియాశీలకంగా జాబితా చేయబడ్డాయో గమనించండి (జాబితాలో పైన).
  • mpstat
    కింది మాజీample కమాండ్ లైన్ Red Hat Enterprise Linux 7.x లో పరీక్షించబడింది.
    ఇది కోర్‌కు CPU వినియోగాన్ని ప్రదర్శిస్తుంది (మొత్తం శాతం ఐడిల్‌ను కనుగొని 100 నుండి తీసివేయడం ద్వారా) మరియు 80% కంటే ఎక్కువ విలువలను ఎరుపు రంగులో హైలైట్ చేస్తుంది. mpstat -P ALL 1 1 | grep -v సగటు | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | column
  • perf top సైకిల్స్ ఎక్కడ గడుపుతున్నాయో చూడండి.

7.2 i40e కౌంటర్లు
i40e డ్రైవర్ ఇంటర్‌ఫేస్ డీబగ్ మరియు పర్యవేక్షణ కోసం ethtool -S ethX కమాండ్ ద్వారా కౌంటర్ల యొక్క పొడవైన జాబితాను అందిస్తుంది. వర్క్‌లోడ్ నడుస్తున్నప్పుడు అవుట్‌పుట్‌ను చూడటం మరియు/లేదా వర్క్‌లోడ్ రన్‌కు ముందు మరియు తర్వాత కౌంటర్ విలువలను పోల్చడం సహాయపడుతుంది.

  • i40e కౌంటర్ల పూర్తి డంప్ పొందడానికి: ethtool -S ethX
  • సున్నా కాని కౌంటర్లను చూడటానికి: watch -d (ethtool -S ethX) | egrep -v :\ 0 | column
    చూడవలసిన కొన్ని విషయాలు:
  • rx_dropped అంటే CPU బఫర్‌లను తగినంత వేగంగా సర్వీసింగ్ చేయడం లేదు.
  • port.rx_dropped అంటే స్లాట్/మెమరీ/సిస్టమ్‌లో ఏదో వేగంగా లేదు.

7.3 నెట్‌వర్క్ కౌంటర్లు
వర్క్‌లోడ్ రన్ ముందు/తర్వాత netstat -s ని తనిఖీ చేయండి.
Netstat సిస్టమ్‌లోని అన్ని నెట్‌వర్క్ పరికరాల నుండి నెట్‌వర్క్ సమాచారాన్ని సేకరిస్తుంది. అందువల్ల, పరీక్షలో ఉన్న నెట్‌వర్క్ కాకుండా ఇతర నెట్‌వర్క్‌ల నుండి ఫలితాలు ప్రభావితమవుతాయి. netstat -s నుండి వచ్చే అవుట్‌పుట్ Linux ఆపరేటింగ్ సిస్టమ్ లేదా కెర్నల్‌లో పనితీరు సమస్యలకు మంచి సూచిక కావచ్చు. సాధారణ ఆపరేటింగ్ సిస్టమ్ ట్యూనింగ్ గురించి మరింత అంతర్దృష్టి కోసం Red Hat Enterprise Linux నెట్‌వర్క్ పెర్ఫార్మెన్స్ ట్యూనింగ్ గైడ్ వంటి ఆపరేటింగ్ సిస్టమ్ ట్యూనింగ్ గైడ్‌లను సంప్రదించండి.
7.4 సిస్టమ్ లాగ్‌లు
లోపాలు మరియు హెచ్చరికల కోసం సిస్టమ్ లాగ్‌లను తనిఖీ చేయండి (/var/log/messages, dmesg).
7.5 ఇంటెల్ svr-సమాచార సాధనం
ఇంటెల్ ఒక svr-సమాచార సాధనాన్ని అందిస్తుంది (చూడండి https://github.com/intel/svr-info) సర్వర్ నుండి సంబంధిత హార్డ్‌వేర్ మరియు సాఫ్ట్‌వేర్ వివరాలను సంగ్రహించే Linux కోసం. svr-info అవుట్‌పుట్ సిస్టమ్ అడ్డంకులు లేదా పనిభారానికి ఆప్టిమైజ్ చేయని సెట్టింగ్‌లు/ట్యూనింగ్‌లను గుర్తించడానికి చాలా సహాయపడుతుంది. ఈథర్నెట్-సంబంధిత పనితీరు సమస్యల కోసం ఇంటెల్‌తో సపోర్ట్ కేసును తెరిచేటప్పుడు, svr-info అవుట్‌పుట్‌ను చేర్చాలని నిర్ధారించుకోండి (టెక్స్ట్ file) పరీక్ష కాన్ఫిగరేషన్‌లోని ప్రతి Linux సర్వర్‌కు.

  1. svr-info ని డౌన్‌లోడ్ చేసి ఇన్‌స్టాల్ చేయండి:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| టార్ xvz CD svr-సమాచారం
    ./svr-సమాచారం
    > హోస్ట్ పేరు.txt
  2. అవుట్‌పుట్‌ను సేకరించండి:
    ./svr-info > హోస్ట్ నేమ్.txt
  3. ఒక టెక్స్ట్ (.txt) ను అటాచ్ చేయండి file విశ్లేషణ కోసం మీ ఇంటెల్ సపోర్ట్ కేసుకు ప్రతి సర్వర్ కోసం.

సాధారణ పనితీరు దృశ్యాలకు సిఫార్సులు

8.1 IP ఫార్వార్డింగ్

  • కెర్నల్‌ను నవీకరించండి.
    భద్రత కారణంగా రూటింగ్ కాష్ తొలగింపుతో ప్రారంభమయ్యే రూటింగ్ కోడ్‌లోని కెర్నల్ మార్పుల కారణంగా కొన్ని ఇటీవలి ఇన్-డిస్ట్రో కెర్నల్స్ రౌటింగ్ పనితీరును దిగజార్చాయి. ఇటీవలి అవుట్-డిస్ట్రో కెర్నల్స్ ఈ మార్పుల పనితీరు ప్రభావాన్ని తగ్గించే ప్యాచ్‌లను కలిగి ఉండాలి మరియు మెరుగైన పనితీరును అందించవచ్చు.
  • హైపర్-థ్రెడింగ్ (లాజికల్ కోర్స్) ని నిలిపివేయండి.
  • కెర్నల్ బూట్ పారామితులను సవరించండి.
    — వర్చువలైజేషన్ కోసం అవసరమైతే తప్ప, కెర్నల్ బూట్ లైన్ నుండి iommu ని బలవంతంగా ఆఫ్ చేయండి (intel_iommu=off లేదా iommu=off).
    — పవర్ నిర్వహణను ఆపివేయండి: processor.max_cstates=1 idle=poll pcie_aspm=off
  • స్థానిక సాకెట్‌లోని కోర్ల సంఖ్యకు సమానంగా క్యూల సంఖ్యను పరిమితం చేయండి (ఈ ఉదాహరణలో 12ample). ethtool -L ethX కలిపి 12
  • పిన్ అంతరాయాలను స్థానిక సాకెట్‌కు మాత్రమే పంపుతుంది. set_irq_affinity -X స్థానిక ethX లేదా set_irq_affinity -X స్థానిక ethX
    గమనిక
    పనిభారాన్ని బట్టి -X లేదా -x ఉపయోగించవచ్చు.
  • అవసరమైన విధంగా Tx మరియు Rx రింగ్ సైజులను మార్చండి. పెద్ద విలువకు ఎక్కువ వనరులు అవసరం కానీ మెరుగైన ఫార్వార్డింగ్ రేట్లను అందించగలదు. ethtool -G ethX rx 4096 tx 4096
  • రూటింగ్ చేసేటప్పుడు GRO ని నిలిపివేయండి.
    తెలిసిన కెర్నల్ సమస్య కారణంగా, రూటింగ్/ఫార్వర్డింగ్ చేసేటప్పుడు GRO ని ఆఫ్ చేయాలి. ethtool -K ethX gro ఆఫ్, ఇక్కడ ethX అనేది సవరించాల్సిన ఈథర్నెట్ ఇంటర్ఫేస్.
  • అడాప్టివ్ ఇంటరప్ట్ మోడరేషన్‌ను నిలిపివేసి, స్టాటిక్ విలువను సెట్ చేయండి. ethtool -C ethX adaptive-rx ఆఫ్ అడాప్టివ్-tx ఆఫ్ ethtool -C ethX rx-usecs 64 tx-usecs 64

గమనిక
ప్రాసెసర్ రకం మరియు పనిభారాన్ని బట్టి, మెరుగైన పనితీరు (లేదా తక్కువ ఫ్రేమ్ నష్టం) కోసం RX మరియు TX కోసం కోలెన్సింగ్ పారామితులను సర్దుబాటు చేయవచ్చు.

  • ఫైర్‌వాల్‌ను నిలిపివేయండి. sudo systemctl డిసేబుల్ ఫైర్‌వాల్డ్ sudo systemctl స్టాప్ ఫైర్‌వాల్డ్
  • IP ఫార్వార్డింగ్‌ను ప్రారంభించండి. sysctl -w net.ipv4.ip_forward=1
  • స్వీకరించే మరియు పంపే సాకెట్ బఫర్ పరిమాణాల కోసం గరిష్ట విలువలను కాన్ఫిగర్ చేయండి. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

గమనిక
పనిభారం లేదా అవసరాన్ని బట్టి, ఈ విలువలను డిఫాల్ట్ నుండి మార్చవచ్చు.
8.2 తక్కువ జాప్యం

  • హైపర్-థ్రెడింగ్ (లాజికల్ కోర్స్) ఆఫ్ చేయండి.
  • నెట్‌వర్క్ పరికరం నుమా కోర్ 0 కి లోకల్‌గా ఉందని నిర్ధారించుకోండి.
  • టాస్క్‌సెట్ -c 0 ఉపయోగించి బెంచ్‌మార్క్‌ను కోర్ 0 కి పిన్ చేయండి.
  • systemctl stop irqbalance లేదా systemctl disable irqbalance ఉపయోగించి irqbalance ని ఆఫ్ చేయండి.
  • కోర్లలో విస్తరించడానికి అఫినిటీ స్క్రిప్ట్‌ను అమలు చేయండి. లోకల్ లేదా అన్నీ ప్రయత్నించండి.
  • అంతరాయ మోడరేషన్‌ను ఆఫ్ చేయండి. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • స్థానిక సాకెట్‌లోని కోర్ల సంఖ్యకు సమానంగా క్యూల సంఖ్యను పరిమితం చేయండి (ఈ ఉదాహరణలో 32ample). ethtool -L ethX కలిపి 32
  • పిన్ అంతరాయాలను స్థానిక సాకెట్‌కు మాత్రమే అందిస్తుంది (స్క్రిప్ట్ i40e డ్రైవర్ సోర్స్‌తో ప్యాక్ చేయబడింది). set_irq_affinity -X స్థానిక ethX
  • netperf -t TCP_RR, netperf -t UDP_RR, లేదా NetPipe వంటి స్థిరపడిన బెంచ్‌మార్క్‌ను ఉపయోగించండి. netperf -t TCP_RR లేదా netperf -t UDP_RR
  • స్థానిక NUMA నోడ్‌లోని ఒకే కోర్‌కు బెంచ్‌మార్క్‌ను పిన్ చేయండి. టాస్క్‌సెట్ -c

ఇంటెల్ ® ఈథర్నెట్ 700 సిరీస్
Linux పనితీరు ట్యూనింగ్ గైడ్
డిసెంబర్ 2024
డాక్యుమెంట్ నం.: 334019, రెవ.: 1.2

పత్రాలు / వనరులు

ఇంటెల్ ఈథర్నెట్ 700 సిరీస్ లైనక్స్ పెర్ఫార్మెన్స్ ట్యూనింగ్ [pdf] యూజర్ గైడ్
334019, ఈథర్నెట్ 700 సిరీస్ లైనక్స్ పెర్ఫార్మెన్స్ ట్యూనింగ్, ఈథర్నెట్ 700 సిరీస్, లైనక్స్ పెర్ఫార్మెన్స్ ట్యూనింగ్, పెర్ఫార్మెన్స్ ట్యూనింగ్, ట్యూనింగ్

సూచనలు

వ్యాఖ్యానించండి

మీ ఇమెయిల్ చిరునామా ప్రచురించబడదు. అవసరమైన ఫీల్డ్‌లు గుర్తించబడ్డాయి *