ઇન્ટેલ લોગોઇન્ટેલ ® ઇથરનેટ 700 શ્રેણી
Linux પર્ફોર્મન્સ ટ્યુનિંગ માર્ગદર્શિકા
નેક્સ ક્લાઉડ નેટવર્કિંગ ગ્રુપ (NCNG)
રેવ. 1.2
ડિસેમ્બર 2024

પુનરાવર્તન ઇતિહાસ

પુનરાવર્તન તારીખ ટિપ્પણીઓ
1.2 ડિસેમ્બર 2024 · વધારાનું પાવર મેનેજમેન્ટ માર્ગદર્શન ઉમેર્યું.
· ઇન્ટેલ* ટર્બો બૂસ્ટ ઉમેર્યું.
· નેટવર્ક ડિવાઇસ બેકલોગ ઉમેર્યો.
· પ્લેટફોર્મ-વિશિષ્ટ રૂપરેખાંકનો અને ટ્યુનિંગ ઉમેર્યા.
· ચોથી પેઢીના ઇન્ટેલ* %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 Series NICs નો ઉપયોગ કરીને શ્રેષ્ઠ નેટવર્કિંગ પ્રદર્શન માટે વાતાવરણને ટ્યુન કરવા માટે માર્ગદર્શન પૂરું પાડવાનો છે. તે હાર્ડવેર, ડ્રાઇવર અને ઓપરેટિંગ સિસ્ટમની સ્થિતિઓ અને સેટિંગ્સ પર ધ્યાન કેન્દ્રિત કરે છે જે નેટવર્ક પ્રદર્શનને સુધારી શકે છે. એ નોંધવું જોઈએ કે નેટવર્કિંગ પ્રદર્શન કોઈપણ બાહ્ય પ્રભાવોથી પ્રભાવિત થઈ શકે છે, આ માર્ગદર્શિકામાં ફક્ત સૌથી સામાન્ય અને નાટકીય બાબતોને આવરી લેવામાં આવી છે.
૧.૧ સંબંધિત માર્ગદર્શિકા/સંસાધનો

પ્રારંભિક ચેકલિસ્ટ

૨.૧ ડ્રાઇવર/ફર્મવેર વર્ઝન અપડેટ કરો
ethtool -i ethx નો ઉપયોગ કરીને ડ્રાઇવર/ફર્મવેર વર્ઝન તપાસો.
જરૂર મુજબ નીચેના અપડેટ કરો:

૨.૨ README વાંચો
જાણીતા મુદ્દાઓ માટે તપાસો અને README માંથી નવીનતમ ગોઠવણી સૂચનાઓ મેળવો. file i40e સોર્સ પેકેજમાં સમાવિષ્ટ.
૨.૩ તપાસો કે તમારો PCI એક્સપ્રેસ (PCIe) સ્લોટ x2.3 છે.
કેટલાક PCIe x8 સ્લોટ વાસ્તવમાં x4 સ્લોટ તરીકે ગોઠવેલા હોય છે. આ સ્લોટમાં ડ્યુઅલ પોર્ટ અને ક્વોડ પોર્ટ ડિવાઇસ સાથે ફુલ લાઇન રેટ માટે અપૂરતી બેન્ડવિડ્થ છે. વધુમાં, જો તમે PCIe v3.0-સક્ષમ એડેપ્ટરને PCIe v2.x સ્લોટમાં મૂકો છો, તો તમને સંપૂર્ણ બેન્ડવિડ્થ મળી શકશે નહીં. સોફ્ટવેર ડિવાઇસ ડ્રાઇવર આ પરિસ્થિતિ શોધી કાઢે છે અને સિસ્ટમ લોગમાં નીચેનો સંદેશ લખે છે:
આ કાર્ડ માટે ઉપલબ્ધ PCI-Express બેન્ડવિડ્થ શ્રેષ્ઠ કામગીરી માટે પૂરતી નથી. શ્રેષ્ઠ કામગીરી માટે x8 PCI-Express સ્લોટ જરૂરી છે.
જો આ ભૂલ થાય, તો સમસ્યા ઉકેલવા માટે તમારા એડેપ્ટરને સાચા PCIe v3.0 x8 સ્લોટમાં ખસેડો.
૨.૪ સિસ્ટમ હાર્ડવેર ક્ષમતાઓ તપાસો
૧૦ Gbps, ૨૫ Gbps, અને ૪૦ Gbps ઇથરનેટ પર, કેટલીક ન્યૂનતમ CPU અને સિસ્ટમ આવશ્યકતાઓ છે. સામાન્ય રીતે, તમારા પ્લેટફોર્મ માટે આધુનિક સર્વર ક્લાસ પ્રોસેસર અને શ્રેષ્ઠ મેમરી ગોઠવણી પૂરતી હોવી જોઈએ, પરંતુ જરૂરિયાતો તમારા વર્કલોડના આધારે બદલાય છે. બધી મેમરી ચેનલો ભરેલી હોવી જોઈએ અને BIOS માં મેમરી પ્રદર્શન મોડ સક્ષમ હોવો જોઈએ. ચકાસો કે તમારું CPU અને મેમરી ગોઠવણી તમારા વર્કલોડ માટે જરૂરી નેટવર્ક પ્રદર્શનના સ્તરને ટેકો આપવા સક્ષમ છે.
નોંધ
XL710 એ 40 GbE કંટ્રોલર છે. આ કંટ્રોલરનો ઉપયોગ કરતું 2 x 40 GbE એડેપ્ટર 2 x 40 GbE નહીં પરંતુ સક્રિય બેક-અપ પોર્ટ સાથે 1 x 40 GbE હોવાનો હેતુ ધરાવે છે. બંને પોર્ટને સંડોવતા લાઇન-રેટ ટ્રાફિકનો ઉપયોગ કરવાનો પ્રયાસ કરતી વખતે, આંતરિક સ્વીચ સંતૃપ્ત થાય છે અને બે પોર્ટ વચ્ચેની સંયુક્ત બેન્ડવિડ્થ કુલ SO Gbps સુધી મર્યાદિત હોય છે.
૨.૪.૧ કર્નલ બુટ પરિમાણો
જો BIOS માં Intel® વર્ચ્યુઅલાઈઝેશન ટેકનોલોજી ફોર ડાયરેક્ટેડ I/O (Intel® VT-d) સક્ષમ હોય, તો Intel ભલામણ કરે છે કે શ્રેષ્ઠ હોસ્ટ નેટવર્ક પ્રદર્શન માટે IOMMU પાસ-થ્રુ મોડમાં હોય. આ હોસ્ટ ટ્રાફિક પર DMA ઓવરહેડને દૂર કરે છે જ્યારે વર્ચ્યુઅલ મશીનો (VMs) ને હજુ પણ Intel® VT-d ના ફાયદાઓ રાખવા સક્ષમ બનાવે છે. આ કર્નલ બૂટ પરિમાણોમાં નીચેની લાઇન ઉમેરીને પૂર્ણ થાય છે: fommu-pt.
૨.૫ ખાતરી કરો કે DDP પેકેજ યોગ્ય રીતે લોડ થઈ રહ્યું છે
140ea અને 140eb બેઝ ડ્રાઇવરો ડાયનેમિક ડિવાઇસ પર્સનલાઇઝેશન (DDP) માટે સીધો સપોર્ટ ધરાવતા નથી. 700 સિરીઝ ડિવાઇસ સાથે DDP નો ઉપયોગ કરવા માટે, DDP પ્રોfile testpmd એપ્લિકેશન સાથે અરજી કરી શકાય છે.
ડીડીપી પ્રો વિશે વિગતો માટેfiles, અને DDP પ્રો કેવી રીતે લાગુ કરવુંfile 700 સિરીઝ ડિવાઇસ પર testpmd સાથે, Intel® Ethernet 700 સિરીઝ ડાયનેમિક ડિવાઇસ પર્સનલાઇઝેશન (DDP) ટેકનોલોજી ગાઇડનો સંદર્ભ લો.
DDP પ્રો છે કે નહીં તે ચકાસવા માટેfile સફળતાપૂર્વક લોડ થયું:
testpmd> ddp ગેટ લિસ્ટ 0 પ્રોfile સંખ્યા છે: ૧
નોંધ
જો પ્રોfile નંબર 0 છે, કોઈ DDP પેકેજ લોડ થયેલ નથી. DDP પેકેજ લોડ ભૂલની સ્થિતિમાં, ઉપકરણ ડિફોલ્ટ રૂપે સલામત મોડ પર જાય છે અને ઘણી કામગીરી સુવિધાઓ ઉપલબ્ધ નથી. જો DDP પેકેજ લોડ કરવાથી સંબંધિત ભૂલો હોય, તો તે કામગીરી સમસ્યાઓનું કારણ બનશે. મુશ્કેલીનિવારણ પગલાં માટે, Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) ટેકનોલોજી માર્ગદર્શિકાનો સંદર્ભ લો.

બેઝલાઇન પર્ફોર્મન્સ માપન અને ટ્યુનિંગ પદ્ધતિ

૩.૧ નેટવર્ક પર્ફોર્મન્સ બેન્ચમાર્ક્સ
ટ્યુનિંગ કસરત શરૂ કરતા પહેલા, તમારા નેટવર્ક પ્રદર્શનનું સારું બેઝલાઇન માપન કરવું મહત્વપૂર્ણ છે. સામાન્ય રીતે તમારા ચોક્કસ એપ્લિકેશન/વર્કલોડના પ્રદર્શનનું પ્રારંભિક માપન મેળવવા ઉપરાંત, તમારા નેટવર્ક ઉપકરણ સારી સ્થિતિમાં છે તે ચકાસવા માટે પ્રમાણભૂત નેટવર્ક પ્રદર્શન બેન્ચમાર્કનો ઉપયોગ કરવો પણ એક સારો વિચાર છે.
સિંગલ સિસ્ટમ ઑપ્ટિમાઇઝેશન માટે, netperf અથવા iperf અને NetPIPE એ બધા સોલિડ ઓપનસોર્સ ફ્રી ટૂલ્સ છે જે તમને કનેક્શન પર ભાર મૂકવા અને પ્રદર્શન સમસ્યાઓનું નિદાન કરવા સક્ષમ બનાવે છે.
નેટપર્ફ થ્રુપુટ અને લેટન્સી ટેસ્ટિંગ બંને માટે મજબૂત છે. નેટપાઇપ એક લેટન્સી-વિશિષ્ટ સાધન છે પરંતુ તેને કોઈપણ પ્રકારના વાતાવરણ માટે કમ્પાઇલ કરી શકાય છે.
નોંધ
netperf માં TCP_RR પરીક્ષણ વ્યવહારો/સેકંડના મૂલ્યમાં લેટન્સી પરત કરે છે. આ એક રાઉન્ડ-ટ્રીપ નંબર છે. એક-માર્ગી લેટન્સીની ગણતરી નીચેના સમીકરણનો ઉપયોગ કરીને કરી શકાય છે:
લેટન્સી(usec) = (1⁄2) / [વ્યવહારો/સેકન્ડ] * 1,000,000
૩.૧.૧ iPerf3.1.1
એક જ એપ્લિકેશન ઇન્સ્ટન્સમાં બહુવિધ થ્રેડોના ઉપયોગ અને સપોર્ટને કારણે, મોટાભાગની બેન્ચમાર્કિંગ પરિસ્થિતિઓમાં ઇન્ટેલ iperf2 કરતાં iperf3 ની ભલામણ કરે છે. ઇન્ટેલ 2G કનેક્શન માટે 4-25 થ્રેડો અને 4G કનેક્શન માટે લગભગ 6-40 થ્રેડો સાથે -P વિકલ્પ સાથે ચલાવવાની ભલામણ કરે છે.

  • ક્લાયંટથી સર્વર સુધી એક-દિશાત્મક ટ્રાફિક ચલાવવા માટે: સર્વર આદેશ exampલે: iperf2 -s
    ક્લાયંટ આદેશ ભૂતપૂર્વampલે: iperf2 -c -પી
  • ક્લાયંટથી સર્વર સુધી દ્વિ-દિશાત્મક ટ્રાફિક ચલાવવા માટે (અને ઊલટું): સર્વર આદેશ exampલે: iperf2 –s –p
    ક્લાયંટ આદેશ ભૂતપૂર્વampલે:
    iperf2 -c -પી -પી --ફુલ-ડુપ્લેક્સ OR
    iperf2 -c -પી -પી -ડી

નોંધ
iperf2 માં -full-d અને -d બંને વિકલ્પો વપરાશકર્તાને દ્વિદિશ પરીક્ષણ કરવાની મંજૂરી આપે છે. જો કે, -full-d વિકલ્પ ખાસ કરીને પૂર્ણ ડુપ્લેક્સ પરીક્ષણ પર ધ્યાન કેન્દ્રિત કરે છે.
નોંધ
બહુવિધ સર્વર પોર્ટ પર iperf2 નું પરીક્ષણ કરતી વખતે, -d ફ્લેગને સર્વર કમાન્ડમાં ઉમેરી શકાય છે જેથી તે જ ટર્મિનલ વિન્ડોમાંથી પૃષ્ઠભૂમિમાં બધા સર્વર સત્રો ચલાવી શકાય. જ્યારે સર્વર કમાન્ડ સ્ક્રિપ્ટમાં ફોર-લૂપની અંદર એમ્બેડ કરવામાં આવે ત્યારે પણ -d ફ્લેગનો ઉપયોગ કરી શકાય છે.
નોંધ
જ્યારે એક જ સ્ટ્રીમ/થ્રેડ સાથે નેટવર્ક થ્રુપુટ ટેસ્ટ ચલાવી રહ્યા હોવ (દા.ત.ample: P1), AMD પ્રોસેસર્સ અપેક્ષિત થ્રુપુટ પ્રદાન કરી શકશે નહીં, ખાસ કરીને ઉચ્ચ બેન્ડવિડ્થ NICs (જો ઝડપ >= 25G બેન્ડવિડ્થ હોય). પરિણામે, ઉચ્ચ થ્રુપુટ પ્રાપ્ત કરવા માટે ચોક્કસ કોરો પર એપ્લિકેશન પિનિંગ જરૂરી છે. પૃષ્ઠ 22 પર એપ્લિકેશન સેટિંગ્સ જુઓ.
૩.૧.૧ iPerf3.1.2
જો iperf3 નો ઉપયોગ કરવામાં આવે છે, તો એડવાન્સ લેવા માટે એપ્લિકેશનના બહુવિધ ઉદાહરણો જરૂરી છેtagમલ્ટી-થ્રેડ્સ, RSS અને હાર્ડવેર કતારોમાં e. ઇન્ટેલ 2G કનેક્શન માટે 4-25 એપ્લિકેશન સત્રો અને 4G કનેક્શન માટે લગભગ 6-40 સત્રો ચલાવવાની ભલામણ કરે છે. દરેક સત્રમાં -p વિકલ્પનો ઉપયોગ કરીને એક અનન્ય TCP પોર્ટ મૂલ્યનો ઉલ્લેખ કરવો જોઈએ.

  • ક્લાયન્ટથી સર્વર સુધી યુનિ-ડાયરેક્શનલ ટ્રાફિક ચલાવવા માટે:
    સર્વર આદેશ ભૂતપૂર્વampલે:
    iperf3 -s -p
    ક્લાયંટ આદેશ ભૂતપૂર્વampલે:
    iperf3 -c -પી
  • ક્લાયન્ટથી સર્વર સુધી દ્વિ-દિશાત્મક ટ્રાફિક ચલાવવા માટે (અને ઊલટું):
    સર્વર આદેશ ભૂતપૂર્વampલે:
    iperf3 –s –p
    ક્લાયંટ આદેશ ભૂતપૂર્વampલે: iperf3 -c -પી -પી –-બિદિર
  • iperf3 ના બહુવિધ ઉદાહરણો (થ્રેડો) શરૂ કરવા માટે, TCP પોર્ટ્સ પર થ્રેડો મેપ કરવા માટે ફોર-લૂપનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે અને સમાંતર રીતે બહુવિધ પ્રક્રિયાઓ બનાવવા માટે & નો ઉપયોગ કરીને પૃષ્ઠભૂમિમાં iperf3 ચલાવો.
    સર્વર આદેશ ભૂતપૂર્વample, 4 થ્રેડો શરૂ કરો: port=””; {0..3} માં i માટે; do port=520$i; bash -c “iperf3 -s -p $port &”; done; Client command example, 4 થ્રેડો શરૂ કરો - ટ્રાન્સમિટ ટેસ્ટ પોર્ટ=””; {0..3} માં i માટે; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; થઈ ગયું; ક્લાયંટ કમાન્ડ example, 4 થ્રેડ શરૂ કરો – ટેસ્ટ પોર્ટ મેળવો=””; {0..3} માં i માટે; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; થઈ ગયું; 40G કનેક્શન માટે, 6 ઇન્સ્ટન્સ/થ્રેડ્સ બનાવવા માટે ફોર-લૂપ વધારો.

નોંધ
જ્યારે એક જ સ્ટ્રીમ/થ્રેડ સાથે નેટવર્ક થ્રુપુટ ટેસ્ટ ચલાવી રહ્યા હોવ (દા.ત.ample: P1), AMD પ્રોસેસર્સ અપેક્ષિત થ્રુપુટ પ્રદાન કરી શકશે નહીં, ખાસ કરીને ઉચ્ચ બેન્ડવિડ્થ
NICs (જો ઝડપ >= 25G બેન્ડવિડ્થ હોય તો). પરિણામે, ઉચ્ચ થ્રુપુટ પ્રાપ્ત કરવા માટે ચોક્કસ કોરો પર એપ્લિકેશન પિનિંગ જરૂરી છે. પૃષ્ઠ 22 પર એપ્લિકેશન સેટિંગ્સ અને પૃષ્ઠ 26 પર AMD EPYC જુઓ.
૩.૧.૩ નેટપરફ
નેટપરફ ટૂલ થ્રુપુટ અને લેટન્સી ટેસ્ટિંગ બંને માટે મજબૂત પસંદગી છે.

  • netperf માં TCP_STREAM પરીક્ષણ ઉપકરણની થ્રુપુટ ક્ષમતાઓને માપે છે. સર્વર આદેશ example: નેટસર્વર ક્લાયન્ટ આદેશ exampલે: નેટપરફ -ટી TCP_STREAM -l 30 -H
  • netperf માં TCP_RR પરીક્ષણ વ્યવહારો/સેકન્ડના મૂલ્યમાં લેટન્સી પરત કરે છે. આ એક રાઉન્ડ-ટ્રીપ નંબર છે. જો ઉપકરણમાં x સ્થાનિક CPU હોય તો -T x,x વિકલ્પનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે. એક-માર્ગી લેટન્સીની ગણતરી આનો ઉપયોગ કરીને કરી શકાય છે: Latency(usec)=(1⁄2)/ [વ્યવહારો/સેકન્ડ]*1,000,\ સર્વર આદેશ exampલે: નેટસર્વર
    ક્લાયંટ આદેશ ભૂતપૂર્વampલે: નેટપરફ -ટી TCP_RR -l 30 -H -ટી એક્સ, એક્સ
  • netperf ના બહુવિધ ઉદાહરણો (થ્રેડો) શરૂ કરવા માટે, TCP પોર્ટ્સ પર થ્રેડો મેપ કરવા માટે ફોર-લૂપનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે અને સમાંતર રીતે બહુવિધ પ્રક્રિયાઓ બનાવવા માટે & નો ઉપયોગ કરીને પૃષ્ઠભૂમિમાં netperf ચલાવો.
    સર્વર આદેશ ભૂતપૂર્વampલે, 8 થ્રેડ શરૂ કરો:
    port=””; {0..7} માં i માટે; port=520$i કરો; bash -c “netserver -L $serverIP -p $port &”; થઈ ગયું;
    ક્લાયંટ આદેશ ભૂતપૂર્વample, 8 થ્રેડ શરૂ કરો: port=””; {0..7} માં i માટે; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; થઈ ગયું;

૩.૨ ટ્યુનિંગ પદ્ધતિ
એક સમયે એક ટ્યુનિંગ ફેરફાર પર ધ્યાન કેન્દ્રિત કરો જેથી તમને ખબર પડે કે દરેક ફેરફાર તમારા પરીક્ષણ પર શું અસર કરે છે. ટ્યુનિંગ પ્રક્રિયામાં તમે જેટલા વધુ પદ્ધતિસરના હશો, પ્રદર્શન અવરોધોના કારણોને ઓળખવા અને સંબોધવા તેટલું સરળ બનશે.

i40e ડ્રાઇવર સેટિંગ્સ ટ્યુન કરી રહ્યા છીએ

૪.૧ IRQ એફિનીટી
IRQ એફિનિટીને એવી રીતે ગોઠવવી કે જેથી વિવિધ નેટવર્ક કતાર માટેના વિક્ષેપો વિવિધ CPU કોરો સાથે જોડાયેલા હોય, તે કામગીરી પર ભારે અસર કરી શકે છે, ખાસ કરીને મલ્ટીથ્રેડ થ્રુપુટ પરીક્ષણો.
IRQ એફિનિટી ગોઠવવા માટે, irqbalance બંધ કરો અને પછી i40e સોર્સ પેકેજમાંથી set_irq_affinity સ્ક્રિપ્ટનો ઉપયોગ કરો અથવા કતારોને મેન્યુઅલી પિન કરો. કતાર પિનિંગ સક્ષમ કરવા માટે યુઝર-સ્પેસ IRQ બેલેન્સરને અક્ષમ કરો:

  • systemctl irqbalance ને અક્ષમ કરો
  • systemctl સ્ટોપ irqbalance
    i40e સોર્સ પેકેજમાંથી set_irq_affinity સ્ક્રિપ્ટનો ઉપયોગ કરવો (ભલામણ કરેલ):
  • બધા કોરોનો ઉપયોગ કરવા માટે:
    [path-to-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 સક્ષમ હોય, ત્યારે ઇન્ટેલ ભલામણ કરે છે કે તમે irqbalance ને અક્ષમ કરો, કારણ કે XPS સાથે કર્નલ બેલેન્સર અણધારી કામગીરીનું કારણ બની શકે છે. જ્યારે -X વિકલ્પ સ્પષ્ટ હોય ત્યારે એફિનિટી સ્ક્રિપ્ટ XPS ને અક્ષમ કરે છે. XPS ને અક્ષમ કરવું અને સપ્રમાણ કતારોને સક્ષમ કરવું એ વર્કલોડ માટે ફાયદાકારક છે જ્યાં Tx અને Rx ટ્રાફિકને સમાન કતાર જોડી પર સેવા આપવામાં આવે ત્યારે શ્રેષ્ઠ પ્રદર્શન પ્રાપ્ત થાય છે.
Linux માં સપ્રમાણ કતારોને ગોઠવવા માટે નેટવર્ક ઇન્ટરફેસ ડ્રાઇવર પરિમાણોને ટ્યુન કરવાનો સમાવેશ થાય છે જેથી સપોર્ટેડ નેટવર્ક એડેપ્ટરો માટે સપ્રમાણ રીસીવ કતાર (Rx) અને સપ્રમાણ ટ્રાન્સમિટ કતાર (Tx) સક્ષમ થાય.
નોંધ

  • સપ્રમાણ કતાર એ એક અદ્યતન નેટવર્કિંગ સુવિધા છે, અને બધા 700 શ્રેણીના નેટવર્ક એડેપ્ટરો અથવા ડ્રાઇવરો તેમને સપોર્ટ કરતા નથી.
  • સપ્રમાણ કતારોને ગોઠવવાનો પ્રયાસ કરતા પહેલા ખાતરી કરો કે તમારી પાસે જરૂરી ડ્રાઇવર અને હાર્ડવેર સપોર્ટ છે.

સપ્રમાણ કતારોને ગોઠવવા માટે, આ સામાન્ય પગલાં અનુસરો:

  1. નેટવર્ક ઇન્ટરફેસ રૂપરેખાંકન સંપાદિત કરો File: ટેક્સ્ટ એડિટરનો ઉપયોગ કરો (દા.ત.ample, vi, nano, અથવા gedit) નેટવર્ક ઇન્ટરફેસ રૂપરેખાંકનને સંપાદિત કરવા માટે file. આ file સામાન્ય રીતે /etc/sysconfig/network-scripts/ ડિરેક્ટરી હેઠળ સ્થિત હોય છે અને તેનું નામ ifcfg-ethX જેવું હોય છે, જ્યાં ethX એ તમારા નેટવર્ક ઇન્ટરફેસનું નામ છે.
  2. સપ્રમાણ કતાર પરિમાણો ઉમેરો. નેટવર્ક ઇન્ટરફેસ ગોઠવણીમાં નીચેની રેખાઓ ઉમેરો file: ETHTOOL_OPTS=”rx-કતાર 8 tx-કતાર 8″
  3. નેટવર્ક સેવા પુનઃપ્રારંભ કરો.
    ફેરફારો કર્યા પછી, નવી ગોઠવણી લાગુ કરવા માટે નેટવર્ક સેવાને ફરીથી શરૂ કરો. sudo systemctl restart network

મેન્યુઅલી:

  • દરેક નોડ સાથે જોડાયેલા પ્રોસેસર્સ શોધો: numactl –hardware lscpu
  • દરેક પ્રોસેસર માટે બીટ માસ્ક શોધો:
  • નોડ 0 માટે કોરો 11-0 ધારી રહ્યા છીએ: [1,2,4,8,10,20,40,80,100,200,400,800]
  • સોંપાયેલ પોર્ટને સોંપેલ IRQ શોધો: grep ethX /proc/interrupts અને IRQ મૂલ્યો નોંધો ઉદાહરણ માટેample, 181 વેક્ટર લોડ કરવા માટે 192-12.
  • SMP એફિનિટી મૂલ્યને સંબંધિત IRQ એન્ટ્રીમાં ઇકો કરો. નોંધ લો કે દરેક 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 એથએક્સ
  • સ્થાનિક 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 ફ્લેગને સપોર્ટ કરે છે.
૪.૨ ટેક્સાસ/રૂ. કતાર
શરૂઆતમાં ડ્રાઇવર દ્વારા દરેક ઇથરનેટ પોર્ટ માટે સક્ષમ કરાયેલ કતારોની ડિફોલ્ટ સંખ્યા પ્લેટફોર્મમાં ઉપલબ્ધ કુલ CPU ની સંખ્યા જેટલી હોય છે. આ ઘણા પ્લેટફોર્મ અને વર્કલોડ ગોઠવણી માટે સારી રીતે કાર્ય કરે છે. જો કે, ઉચ્ચ કોર ગણતરીઓ અને/અથવા ઉચ્ચ ઇથરનેટ પોર્ટ ઘનતાવાળા પ્લેટફોર્મમાં, આ ગોઠવણી સંસાધન વિવાદનું કારણ બની શકે છે. તેથી, કેટલાક કિસ્સાઓમાં સિસ્ટમમાં દરેક પોર્ટ માટે ડિફોલ્ટમાં ફેરફાર કરવો જરૂરી બની શકે છે.
ચોક્કસ મોડેલ અને ડ્રાઇવર સંસ્કરણના આધારે Tx/Rx કતારોની ડિફોલ્ટ સંખ્યા બદલાઈ શકે છે. નીચે સૂચિબદ્ધ ethtool -L આદેશનો ઉપયોગ કરીને કતારોની સંખ્યાને સમાયોજિત કરી શકાય છે.
નોંધ
આ કિસ્સાઓમાં, ઇન્ટેલ ભલામણ કરે છે કે તમે દરેક પોર્ટ માટે ડિફોલ્ટ કતાર ગણતરી ઘટાડીને NUMA નોડમાં ઉપલબ્ધ CPU ની સંખ્યા કરતા વધુ ન કરો, જે એડેપ્ટર પોર્ટ પર સ્થાનિક છે. કેટલાક કિસ્સાઓમાં, જ્યારે ઉચ્ચ પોર્ટ ગણતરી અમલીકરણો પર સંસાધનોને સંતુલિત કરવાનો પ્રયાસ કરવામાં આવે છે, ત્યારે આ સંખ્યાને વધુ ઘટાડવાની જરૂર પડી શકે છે.
કતાર ગોઠવણીમાં ફેરફાર કરવા માટે:
નીચેના માજીample પોર્ટને 32 Tx/Rx કતાર પર સેટ કરે છે: ethtool -L ethX સંયુક્ત 32
Example આઉટપુટ:
ethtool -l ethX
ethX માટે ચેનલ પરિમાણો: પ્રી-સેટ મહત્તમ:
આરએક્સ: 96
TX: 96
અન્ય: 1
સંયુક્ત: ૯૬
વર્તમાન હાર્ડવેર સેટિંગ્સ:
આરએક્સ: 0
TX: 0
અન્ય: 1
સંયુક્ત: ૯૬
૪.૩ મધ્યસ્થતામાં વિક્ષેપ
એડપ્ટિવ ઇન્ટરપ્ટ મોડરેશન ડિફૉલ્ટ રૂપે ચાલુ હોય છે, અને ઓછા CPU ઉપયોગ અને ઉચ્ચ પ્રદર્શન વચ્ચે સંતુલિત અભિગમ પ્રદાન કરવા માટે રચાયેલ છે. જો કે, તમે તમારા ઉપયોગના કિસ્સામાં ફિટ થવા માટે ઇન્ટરપ્ટ સેટિંગ્સને મેન્યુઅલી ટ્યુન કરવાનો પ્રયાસ કરી શકો છો.
0-235 માઇક્રોસેકન્ડની રેન્જ પ્રતિ સેકન્ડ 4,310 થી 250,000 ઇન્ટરપ્ટ્સની અસરકારક રેન્જ પૂરી પાડે છે. rx-μsecs-high નું મૂલ્ય સમાન ethtool આદેશમાં rx-μsecs અને tx-μsecs થી સ્વતંત્ર રીતે સેટ કરી શકાય છે, અને તે અનુકૂલનશીલ ઇન્ટરપ્ટ મોડરેશન અલ્ગોરિધમથી પણ સ્વતંત્ર છે. અંતર્ગત હાર્ડવેર 2 માઇક્રોસેકન્ડ અંતરાલોમાં ગ્રેન્યુલારિટીને સપોર્ટ કરે છે, તેથી સંલગ્ન મૂલ્યો સમાન ઇન્ટરપ્ટ રેટમાં પરિણમી શકે છે.

  • અનુકૂલનશીલ વિક્ષેપ મોડરેશન બંધ કરવા માટે: ethtool -C ethX adaptiv-rx off adaptiv-tx off
  • અનુકૂલનશીલ વિક્ષેપ મોડરેશન ચાલુ કરવા માટે: ethtool -C ethX adaptiv-rx on adaptiv-tx on

સામાન્ય ટ્યુનિંગ માટે શરૂઆત કરવા માટે સારી જગ્યા 84 μs, અથવા ~12000 ઇન્ટરપ્ટ્સ/સેકન્ડ છે. જો તમે જુઓ છો કે rx_dropped કાઉન્ટર્સ ટ્રાફિક દરમિયાન ચાલી રહ્યા છે (ethtool -S ethX નો ઉપયોગ કરીને) તો તમારી પાસે કદાચ CPU ખૂબ ધીમું છે, એડેપ્ટરના રિંગ કદ (ethtool -G) થી 84 μs માટે પેકેટો રાખવા માટે પૂરતા બફર્સ નથી અથવા ઇન્ટરપ્ટ રેટથી ઓછા છે.

  • ઇન્ટરપ્ટ્સ (૧૨૦૦૦ ઇન્ટરપ્ટ્સ/સેકન્ડ) વચ્ચે ૮૪ μs ના નિશ્ચિત ઇન્ટરપ્ટ રેટ પર ઇન્ટરપ્ટ મોડરેશન સેટ કરવા માટે: ethtool -C ethX adaptiv-rx off adaptiv-tx off rx-usecs ૮૪ tx-usecs ૮૪ જો તમે CPU ઉપયોગ પર મહત્તમ ન હોવ તો, અજમાવવા માટેનું આગલું મૂલ્ય ૬૨ μs છે. આ વધુ CPU વાપરે છે, પરંતુ તે બફર્સને ઝડપથી સેવા આપે છે, અને ઓછા ડિસ્ક્રીપ્ટર્સ (રિંગ કદ, ethtool -G) ની જરૂર પડે છે.
  • ઇન્ટરપ્ટ મોડરેશનને ઇન્ટરપ્ટ્સ વચ્ચે 62 યુસેક (16000 ઇન્ટરપ્ટ્સ/સેક) ના ફિક્સ્ડ ઇન્ટરપ્ટ રેટ પર સેટ કરવા માટે. ethtool -C ethX adaptiv-rx off adaptiv-tx off rx-usecs 62 tx-usecs 62
    જો ટ્રાફિક દરમિયાન rx_dropped કાઉન્ટર્સ વધે છે (ethtool -S ethX નો ઉપયોગ કરીને), તો તમારી પાસે કદાચ CPU ખૂબ ધીમું છે, એડેપ્ટરના રિંગ કદ (ethtool -G) થી પૂરતા બફર્સ નથી, અથવા ઇન્ટરપ્ટ રેટ ખૂબ ઓછો છે. જો તમે CPU ઉપયોગ પર મહત્તમ ન હોવ, તો તમે ITR મૂલ્ય ઘટાડીને ઇન્ટરપ્ટ રેટ વધારી શકો છો. આ વધુ CPU વાપરે છે, પરંતુ સેવાઓ ઝડપથી બફર કરે છે, અને ઓછા વર્ણનકર્તાઓની જરૂર પડે છે (રિંગ કદ, ethtool -G).
    જો તમારું CPU 100% પર હોય, તો ઇન્ટરપ્ટ રેટ વધારવાની સલાહ આપવામાં આવતી નથી. CPU બાઉન્ડ વર્કલોડ જેવી ચોક્કસ પરિસ્થિતિઓમાં, તમે અન્ય એપ્લિકેશનો માટે વધુ CPU સમય સક્ષમ કરવા માટે μs મૂલ્ય વધારવા માંગી શકો છો.
    જો તમને ઓછી લેટન્સી કામગીરીની જરૂર હોય અને/અથવા નેટવર્ક પ્રોસેસિંગ માટે સમર્પિત કરવા માટે પુષ્કળ CPU હોય, તો તમે ઇન્ટરપ્ટ મોડરેશનને સંપૂર્ણપણે અક્ષમ કરી શકો છો, જે ઇન્ટરપ્ટ્સને શક્ય તેટલી ઝડપથી ફાયર થવા સક્ષમ બનાવે છે.
  • ઇન્ટરપ્ટ મોડરેશનને અક્ષમ કરવા માટે ethtool -C ethX adaptiv-rx off adaptiv-tx off rx-usecs 0 tx-usecs 0

નોંધ
જ્યારે ઇન્ટરપ્ટ મોડરેશન અક્ષમ હોય ત્યારે ચાલી રહ્યું હોય, ત્યારે દરેક કતાર પર ઇન્ટરપ્ટ રેટ ખૂબ ઊંચો હોઈ શકે છે. ઇન્ટરપ્ટ રેટ પર ઉપલી મર્યાદા સેટ કરવા માટે rx-usec-high પેરામીટરનો સમાવેશ કરવાનું વિચારો. નીચેનો આદેશ અનુકૂલનશીલ ઇન્ટરપ્ટ મોડરેશનને અક્ષમ કરે છે અને પ્રાપ્તિ અથવા ટ્રાન્સમિટ પૂર્ણ થયું હોવાનું સૂચવતા પહેલા મહત્તમ 5 માઇક્રોસેકન્ડની મંજૂરી આપે છે. પ્રતિ સેકન્ડ 200,000 જેટલા ઇન્ટરપ્ટ્સ થવાને બદલે, તે rx-usec-high પેરામીટર દ્વારા પ્રતિ સેકન્ડ કુલ ઇન્ટરપ્ટ્સને 50,000 સુધી મર્યાદિત કરે છે. # ethtool -C ethX adaptiv-rx off adaptiv-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 વર્કલોડ માટે શ્રેષ્ઠ મૂલ્ય શોધવા માટે ટ્રાન્સમિટ/રિસીવ/હાઇ-પ્રાયોરિટી કોલેસિંગ ટાઈમરને ઉચ્ચ (80/100/150/200) અથવા નીચલા (25/20/10/5) ને સમાયોજિત કરવાનો પ્રયાસ કરો.
૪.૪ રીંગનું કદ
જો તમને ethtool -S ethX (rx_dropped, rx_dropped.nic) માં rx_dropped કાઉન્ટર્સ દેખાય છે, અથવા બહુવિધ કતાર સક્રિય હોય તેવી શંકા હોય, તો તમે ડિફોલ્ટ મૂલ્યમાંથી રિંગ કદને સમાયોજિત કરવાનો પ્રયાસ કરી શકો છો. ડિફોલ્ટ મૂલ્ય 512 છે, મહત્તમ 4096 છે.

  • વર્તમાન મૂલ્યો તપાસવા માટે: ethtool -g ethX
    જો એવી શંકા હોય કે બફરિંગનો અભાવ વર્તમાન વિક્ષેપ દરમાં ઘટાડો લાવી રહ્યો છે, તો તમે પહેલા મહત્તમ પ્રયાસ કરી શકો છો, પછી લઘુત્તમ, અને પછી શ્રેષ્ઠ પ્રદર્શન ન દેખાય ત્યાં સુધી દ્વિસંગી શોધ ચાલુ રાખો.
    જો કેશ પ્રેશર શંકાસ્પદ હોય (ઘણા કતાર સક્રિય હોય), તો ડિફોલ્ટથી બફર ઘટાડવાથી ઇન્ટેલ ® ડેટા ડાયરેક્ટ I/O (ઇન્ટેલ ® DDIO) ને વધુ સારી રીતે કાર્ય કરવામાં મદદ મળી શકે છે. ઇન્ટેલ પ્રતિ કતાર 128 અથવા 256 અજમાવવાની ભલામણ કરે છે, કારણ કે તે જાણતા હોય છે કે rx_droped માં વધારો ટાળવા માટે ethtool -C દ્વારા ઇન્ટરપ્ટ રેટમાં વધારો જરૂરી હોઈ શકે છે.
  • રીંગનું કદ નિશ્ચિત મૂલ્ય પર સેટ કરવા માટે: ethtool -G eth12 rx 256 tx 256

નોંધ
ethtool -S ethX|grep ડ્રોપ સાથે મળેલા Rx પેકેટ ડ્રોપને ઠીક કરવા માટે, રિંગનું કદ 4096 સુધી વધારવાનું વિચારો. વર્કલોડ માટે શ્રેષ્ઠ સેટિંગ શોધવા માટે પ્રયોગ કરો પરંતુ ઉચ્ચ મૂલ્યો સાથે વધુ પડતા મેમરી વપરાશ પર ધ્યાન આપો.
4.5 પ્રવાહ નિયંત્રણ
લેયર 2 ફ્લો કંટ્રોલ TCP કામગીરીને નોંધપાત્ર રીતે અસર કરી શકે છે અને મોટાભાગના વર્કલોડ માટે તેને અક્ષમ કરવાની ભલામણ કરવામાં આવે છે. એક સંભવિત અપવાદ બર્સ્ટી ટ્રાફિક છે જ્યાં બર્સ્ટ લાંબા સમયગાળામાં નથી હોતા.
ફ્લો કંટ્રોલ ડિફોલ્ટ રૂપે અક્ષમ કરેલ છે.

  • ફ્લો કંટ્રોલ સક્ષમ કરવા માટે: ethtool -A ethX rx on tx on
  • ફ્લો કંટ્રોલને અક્ષમ કરવા માટે: ethtool -A ethX rx off tx off

નોંધ
ફ્લો કંટ્રોલને સફળતાપૂર્વક સક્ષમ કરવા માટે તમારી પાસે ફ્લો કંટ્રોલ સક્ષમ લિંક પાર્ટનર હોવો આવશ્યક છે.
4.6 જમ્બો ફ્રેમ્સ
જ્યારે અપેક્ષિત ટ્રાફિક વાતાવરણમાં ડેટાના મોટા બ્લોક્સ ટ્રાન્સફર થઈ રહ્યા હોય, ત્યારે જમ્બો ફ્રેમ સુવિધાને સક્ષમ કરવી ફાયદાકારક હોઈ શકે છે. જમ્બો ફ્રેમ્સ સપોર્ટ મેક્સિમમ ટ્રાન્સમિશન યુનિટ (MTU) ને 1500 ના ડિફોલ્ટ મૂલ્ય કરતા મોટા મૂલ્યમાં બદલીને સક્ષમ કરવામાં આવે છે. આ ઉપકરણને નેટવર્ક વાતાવરણમાં મોટા પેકેટોમાં ડેટા ટ્રાન્સફર કરવાની મંજૂરી આપે છે. આ સેટિંગ થ્રુપુટમાં સુધારો કરી શકે છે અને મોટા I/O વર્કલોડ માટે CPU ઉપયોગ ઘટાડી શકે છે. જો કે, તે નાના પેકેટ અથવા લેટન્સી-સંવેદનશીલ વર્કલોડને અસર કરી શકે છે.
નોંધ
જમ્બો ફ્રેમ્સ અથવા મોટા MTU સેટિંગ તમારા નેટવર્ક વાતાવરણમાં યોગ્ય રીતે ગોઠવેલા હોવા જોઈએ.
MTU કદ વધારવા માટે ifconfig આદેશનો ઉપયોગ કરો. ઉદાહરણ તરીકેample, નીચે આપેલ દાખલ કરો, જ્યાં ઇન્ટરફેસ નંબર છે: ifconfig mtu 9000 ઉપર
વૈકલ્પિક રીતે, તમે નીચે મુજબ ip આદેશનો ઉપયોગ કરી શકો છો: ip link set mtu 9000 dev આઇપી લિંક સેટઅપ ડેવલપર

પ્લેટફોર્મ ટ્યુનિંગ (i40e નોન-સ્પેસિફિક)

5.1 BIOS સેટિંગ્સ

  • વર્ચ્યુઅલાઈઝેશન વર્કલોડ માટે Intel® VT-d સક્ષમ કરો.
  • હાયપર-થ્રેડીંગ (લોજિકલ પ્રોસેસર્સ) કામગીરીને અસર કરી શકે છે. તમારા વર્કલોડ માટે તેને ચાલુ અથવા બંધ કરીને પ્રયોગ કરો.
  • ઇન્ટેલ® ટર્બો બૂસ્ટ CPU કોરોને CPU ની બેઝ ફ્રીક્વન્સી કરતા વધુ ફ્રીક્વન્સી પર કામ કરવાની મંજૂરી આપે છે. ઇન્ટેલ® ટર્બો બૂસ્ટને સક્ષમ કરવાથી ઘણા વર્કલોડ માટે પ્રદર્શનમાં સુધારો થઈ શકે છે પરંતુ કોરોને વધુ ફ્રીક્વન્સી પર રાખવા માટે વધુ પાવરનો ઉપયોગ થાય છે. તમારા વર્કલોડ માટે ટર્બો બૂસ્ટ બંધ/ચાલુ સાથે પ્રયોગ કરો.

નોંધ
જો પ્લેટફોર્મ પર એકંદરે CPU ઉપયોગ વધુ હોય તો ટર્બો ફ્રીક્વન્સીની ગેરંટી નથી. એકંદરે CPU ઉપયોગ વધે તેમ ઉચ્ચ કોર ટર્બો ફ્રીક્વન્સી ઓછી થાય છે.
5.2 પાવર મેનેજમેન્ટ
પાવર મેનેજમેન્ટ કામગીરીને અસર કરી શકે છે, ખાસ કરીને ઓછા લેટન્સી વર્કલોડમાં. જો પાવર વપરાશ ઘટાડવા કરતાં કામગીરી વધુ પ્રાથમિકતા હોય, તો ઇન્ટેલ ભલામણ કરે છે કે તમે પાવર મેનેજમેન્ટની અસરોને મર્યાદિત કરવાનો પ્રયોગ કરો. ઓપરેટિંગ સિસ્ટમ ટૂલ્સ, BIOS સેટિંગ્સ અને કર્નલ બૂટ પેરામીટર્સ દ્વારા પાવર મેનેજમેન્ટને મર્યાદિત કરવાની ઘણી અલગ અલગ રીતો છે. તમારા પર્યાવરણને અનુરૂપ શ્રેષ્ઠ પદ્ધતિ અને સ્તર પસંદ કરો.
૫.૨.૧ સી-સ્ટેટ કંટ્રોલ
C-સ્ટેટ એન્ટ્રીને CO અથવા C1 સુધી મર્યાદિત રાખવાથી કામગીરીમાં સુધારો થાય છે અને પાવર ઉપયોગ વધે છે.
CPU પેકેજ C6 સ્ટેટ એન્ટ્રીને અક્ષમ કરવાથી નેટવર્ક પ્રદર્શનમાં સુધારો થઈ શકે છે. જોકે, આનાથી પાવર વપરાશ વધે છે.
નીચેના વિકલ્પો ઉપલબ્ધ છે:

  • સી-સ્ટેટ એન્ટ્રીને ગતિશીલ રીતે નિયંત્રિત કરો:
    ખોલો
    /dev/cpu_dma_latency દાખલ કરો અને તેમાં મહત્તમ માન્ય લેટન્સી લખો.

નોંધ
cpudmalatency.c નામનો એક નાનો પ્રોગ્રામ છે જે ઓપન સોર્સ કોમ્યુનિટીમાંથી ડાઉનલોડ કરી શકાય છે, કમ્પાઇલ કરી શકાય છે અને કમાન્ડ લાઇનથી ચલાવી શકાય છે જેથી આ બરાબર થઈ શકે.
નીચેના માજીample પાંચ μs જાગવાનો સમય આપે છે, અને આમ C1 એન્ટ્રીને મંજૂરી આપે છે: cpudmalatency 5 &

  • કર્નલ બુટ સેટિંગ્સમાં મહત્તમ C-સ્ટેટ મર્યાદિત કરો:
    ઇન્ટેલ સીપીયુ માટે: intel_idle.max_cstates=1
    નોન-ઇન્ટેલ સીપીયુ માટે: processor.max_cstates=1
  • CPU C6 સ્થિતિ તપાસવા અને અક્ષમ કરવા માટે cpupower આદેશનો ઉપયોગ કરો: તપાસો: cpupower મોનિટર અથવા cpupower idle-info
    C6 ને અક્ષમ કરો: cpupower idle-set -d3 અથવા
    સી-સ્ટેટ્સને અક્ષમ કરો: cpupower idle-set -D0

નોંધો:

  1. જો સર્વરમાં Intel® 4th Gen Intel® Xeon® સ્કેલેબલ પ્રોસેસર હોય, તો CPU પર C-સ્ટેટ્સને અક્ષમ કરો. જ્યારે હાયપર થ્રેડીંગ સક્ષમ અથવા અક્ષમ હોય, ત્યારે નિષ્ક્રિય સ્થિતિઓ (-D0) ને અક્ષમ કરવાથી નિષ્ક્રિય સમયગાળા દરમિયાન કોરોને ઓછી-પાવર સ્થિતિમાં પ્રવેશતા અટકાવે છે અને CPU માટે નિષ્ક્રિય અને સક્રિય સ્થિતિઓ વચ્ચે સંક્રમણ માટે લેટન્સી ઘટાડે છે.
  2. Intel® 4th Gen Intel® Xeon® Scalable પ્રોસેસરનું પાવર મેનેજમેન્ટ અત્યંત આક્રમક છે. કોરોને ઓછી શક્તિવાળી સ્થિતિમાં પ્રવેશતા અટકાવવા માટે, ઉપયોગમાં લેવાતા કોરોની સંખ્યા ઘટાડવાનો પ્રયાસ કરો જેથી તેમને લાંબા સમય સુધી જાગૃત રાખી શકાય (ethtool -L સંયુક્ત ). ઉપરાંત, સેટ irq એફિનિટી (મોટાભાગે -x લોકલ અથવા CPU કોરોની સૂચિ સાથે) નો ઉપયોગ કરીને ચોક્કસ કોરો સાથે ઇન્ટરપ્ટ્સને જોડો, અને ખાતરી કરો કે વર્કલોડ ટાસ્કસેટ અથવા numactl સાથે તે જ કોરો પર ચાલે છે. આ કોરોને સક્રિય રાખીને અને ઇન્ટરપ્ટ હેન્ડલિંગને ઑપ્ટિમાઇઝ કરીને પ્રદર્શનમાં સુધારો કરે છે.

C6 સક્ષમ કરો:
cpupower નિષ્ક્રિય-સેટ -d3
સી-સ્ટેટ્સ સક્ષમ કરો:
cpupower idle-set -E

  • બીજી પદ્ધતિ એ છે કે પર્ફોર્મન્સ પ્રો સેટ કરવા માટે ટ્યુન કરેલ ટૂલ (ઘણા Linux વિતરણો સાથે સમાવિષ્ટ) નો ઉપયોગ કરવો.file. આ પ્રોfileવપરાશકર્તાઓ ઘણી OS સેટિંગ્સમાં ફેરફાર કરે છે જે ઘણી એપ્લિકેશનોમાં પ્રદર્શનને અસર કરી શકે છે. એવું જાણવા મળ્યું છે કે નેટવર્ક-થ્રુપુટ પ્રોfile મોટાભાગના કાર્યભારમાં સુધારો પૂરો પાડે છે.
    તપાસો:
    ટ્યુન-એડએમ સક્રિય
    સેટ કરો:
    ટ્યુન-એડએમ પ્રોfile નેટવર્ક-થ્રુપુટ
    નોંધ
    ઉપરોક્ત આદેશો માટે ટ્યુન કરેલ સેવા ચાલી રહી હોવી જોઈએ. તપાસવા/પુનઃપ્રારંભ કરવા માટે, ટ્યુન કરો: systemctl સ્થિતિ ટ્યુન કરેલ systemctl પુનઃપ્રારંભ કરો ટ્યુન કરેલ છે
    તમે કર્નલ બુટ લાઇનમાં નીચેના ઉમેરીને કોઈપણ C-સ્ટેટ એન્ટ્રીને પણ નામંજૂર કરી શકો છો:
    નિષ્ક્રિય = મતદાન
  • સિસ્ટમના BIOS પાવર મેનેજમેન્ટ સેટિંગ્સ દ્વારા C-સ્ટેટને મર્યાદિત કરો, જેમાં પર્ફોર્મન્સ પ્રો હોઈ શકે છેfile ઉપલબ્ધ.
    પાવર મેનેજમેન્ટ સેટિંગ્સ તપાસવા અથવા સેટ કરવા માટે ટર્બોસ્ટેટ અથવા x86_energy_perf_policy જેવા સાધનોનો ઉપયોગ કરી શકાય છે.

૫.૨.૨ PCIe પાવર મેનેજમેન્ટ
એક્ટિવ-સ્ટેટ પાવર મેનેજમેન્ટ (ASPM) PCIe લિંક્સ માટે ઓછી પાવર સ્થિતિને સક્ષમ કરે છે જ્યારે તેઓ સક્રિય ઉપયોગમાં ન હોય. આ PCIe નેટવર્ક ઉપકરણો પર વધુ લેટન્સીનું કારણ બની શકે છે, તેથી Intel ભલામણ કરે છે કે તમે લેટન્સી-સંવેદનશીલ વર્કલોડ માટે ASPM ને ​​અક્ષમ કરો. કર્નલ બૂટ લાઇનમાં નીચેના ઉમેરીને ASPM ને ​​અક્ષમ કરો: pcie_aspm=off
૫.૨.૩ સીપીયુ ફ્રીક્વન્સી સ્કેલિંગ
CPU ફ્રીક્વન્સી સ્કેલિંગ (અથવા CPU સ્પીડ સ્કેલિંગ) એ એક Linux પાવર મેનેજમેન્ટ ટેકનિક છે જેમાં પાવર અને ગરમી બચાવવા માટે સિસ્ટમ ક્લોક સ્પીડને તરત જ એડજસ્ટ કરવામાં આવે છે. C-સ્ટેટ્સની જેમ, આ નેટવર્ક કનેક્શન પર અનિચ્છનીય લેટન્સીનું કારણ બની શકે છે.
cpupower ટૂલનો ઉપયોગ CPU પ્રદર્શન ડિફોલ્ટ અને મર્યાદાઓને તપાસવા અને સુધારવા માટે પણ થઈ શકે છે:

  • તપાસો: cpupower મોનિટર અથવા
  • CPU ને પરફોર્મન્સ મોડ પર સેટ કરો: cpupower frequency-set -g પરફોર્મન્સ

નોંધ
CPU ફ્રીક્વન્સી મર્યાદામાં ફેરફાર કરવાથી ઘણા વર્કલોડ પર અસર પડી શકે છે અને CPU ટર્બો મોડ જેવી અન્ય સુવિધાઓને અક્ષમ કરી શકે છે.
CPU ફ્રીક્વન્સી સ્કેલિંગને અક્ષમ કરવા માટે, નીચેના આદેશો દ્વારા CPU પાવર સેવાને અક્ષમ કરો:
systemctl cpupower.service બંધ કરો
systemctl cpupower.service ને અક્ષમ કરો
૫.૨.૪ વધારાના પાવર મેનેજમેન્ટ માર્ગદર્શન
આ ઉચ્ચ-સ્તરીય ઓવરમાં વધારાની વિગતો આપવામાં આવી છેview 3જી પેઢીના Intel® Xeon® સ્કેલેબલ પ્રોસેસર્સમાં ઘણી પાવર મેનેજમેન્ટ સુવિધાઓ, તેમજ આ સુવિધાઓને પ્લેટફોર્મ સ્તરે કેવી રીતે સંકલિત કરી શકાય તે અંગે માર્ગદર્શન: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
૫.૩ ઇન્ટેલ® ટર્બો બુસ્ટ
ઇન્ટેલ® ટર્બો બૂસ્ટ જરૂર પડ્યે પ્રોસેસરને ઝડપી બનાવે છે પરંતુ વધારાની શક્તિનો ઉપયોગ કરી શકે છે. ટર્બો બૂસ્ટને બંધ કરવાથી પ્રોસેસર સ્થિર ગતિ પર રહે છે, જે તમને ચોક્કસ વર્કલોડ માટે સતત પ્રદર્શન સ્તર આપે છે.
૫.૪ ફાયરવોલ્સ
ફાયરવોલ્સ કામગીરીને અસર કરી શકે છે, ખાસ કરીને લેટન્સી કામગીરીને.
જો જરૂરી ન હોય તો iptables/firewalld ને અક્ષમ કરો.
5.5 એપ્લિકેશન સેટિંગ્સ
ઘણીવાર એક જ થ્રેડ (જે એક જ નેટવર્ક કતારને અનુરૂપ છે) મહત્તમ બેન્ડવિડ્થ પ્રાપ્ત કરવા માટે પૂરતું નથી. કેટલાક પ્લેટફોર્મ આર્કિટેક્ચર, જેમ કે AMD, ઇન્ટેલ-આધારિત પ્રોસેસર્સવાળા પ્લેટફોર્મની તુલનામાં એક જ થ્રેડ સાથે વધુ Rx પેકેટ છોડવાનું વલણ ધરાવે છે.
નેટવર્ક ડિવાઇસમાં સ્થાનિક NUMA નોડ અથવા CPU કોરોમાં એપ્લિકેશન પિન કરવા માટે ટાસ્કસેટ અથવા numactl જેવા ટૂલ્સનો ઉપયોગ કરવાનું વિચારો. સ્ટોરેજ I/O જેવા કેટલાક વર્કલોડ માટે, એપ્લિકેશનને બિન-સ્થાનિક નોડમાં ખસેડવાથી ફાયદો થાય છે.
જો શક્ય હોય તો, તમારી એપ્લિકેશન દ્વારા ઉપયોગમાં લેવાતા થ્રેડોની સંખ્યા વધારવાનો પ્રયોગ કરો.
૫.૬ કર્નલ વર્ઝન
મોટાભાગના આધુનિક ઇન-બોક્સ કર્નલ કામગીરી માટે વાજબી રીતે સારી રીતે ઑપ્ટિમાઇઝ કરેલા છે, પરંતુ, તમારા ઉપયોગના કેસના આધારે, કર્નલને અપડેટ કરવાથી વધુ સારું પ્રદર્શન મળી શકે છે. સ્રોત ડાઉનલોડ કરવાથી તમે કર્નલ બનાવતા પહેલા ચોક્કસ સુવિધાઓને સક્ષમ/અક્ષમ કરી શકો છો.
૫.૭ ઓપરેટિંગ સિસ્ટમ/કર્નલ સેટિંગ્સ
સામાન્ય ઓપરેટિંગ સિસ્ટમ ટ્યુનિંગ પર વધુ સમજ માટે, ઓપરેટિંગ સિસ્ટમ ટ્યુનિંગ માર્ગદર્શિકાઓ, જેમ કે Red Hat Enterprise Linux નેટવર્ક પરફોર્મન્સ ટ્યુનિંગ માર્ગદર્શિકા, નો સંપર્ક કરો.
ટ્યુન કરવા માટેના કેટલાક સામાન્ય પરિમાણો નીચેના કોષ્ટકમાં સૂચિબદ્ધ છે. નોંધ કરો કે આ ફક્ત સૂચવેલ પ્રારંભિક બિંદુઓ છે, અને તેમને ડિફોલ્ટથી બદલવાથી સિસ્ટમ પર વપરાતા સંસાધનોમાં વધારો થઈ શકે છે. જોકે મૂલ્યો વધારવાથી કામગીરી સુધારવામાં મદદ મળી શકે છે, આપેલ સિસ્ટમ, વર્કલોડ અને ટ્રાફિક પ્રકાર માટે શું શ્રેષ્ઠ કાર્ય કરે છે તે નક્કી કરવા માટે વિવિધ મૂલ્યો સાથે પ્રયોગ કરવો જરૂરી છે.
નીચે દર્શાવેલ મુજબ Linux માં sysctl ઉપયોગિતાનો ઉપયોગ કરીને કર્નલ પરિમાણો ગોઠવી શકાય છે.
થી view સિસ્ટમ પર rmem અને wmem માટે ડિફોલ્ટ મૂલ્યો:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
મૂલ્યોને મહત્તમ (16 MB) પર સેટ કરો:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
સોકેટ બફર કદ, જેને રીસીવ બફર (rmem) અને ટ્રાન્સમિટ બફર (wmem) તરીકે પણ ઓળખવામાં આવે છે, તે સિસ્ટમ પરિમાણો છે જે ઇનકમિંગ અને આઉટગોઇંગ નેટવર્ક ટ્રાફિક માટે અનામત મેમરીની માત્રાનો ઉલ્લેખ કરે છે.
-w આર્ગ્યુમેન્ટ વગર sysctl ચલાવવાથી પેરામીટર તેની વર્તમાન સેટિંગ સાથે સૂચિબદ્ધ થાય છે.

સ્ટેક સેટિંગ વર્ણન
નેટ.કોર.ર્મેમ_ડિફોલ્ટ ડિફૉલ્ટ રીસીવ વિન્ડો કદ
નેટ.કોર.ડબલ્યુએમએમ_ડિફોલ્ટ ડિફોલ્ટ ટ્રાન્સમિટ વિન્ડો કદ
નેટ.કોર.ર્મેમ_મેક્સ મહત્તમ રીસીવ વિન્ડો કદ
નેટ.કોર.ડબલ્યુએમએમ_મેક્સ મહત્તમ ટ્રાન્સમિટ વિન્ડો કદ
નેટ.કોર.ઓપ્ટમેમ_મેક્સ મહત્તમ વિકલ્પ મેમરી બફર્સ
નેટ.કોર.નેટદેવ_મેક્સ_બેકલોગ કર્નલ ડ્રોપ થવાનું શરૂ થાય તે પહેલાં પ્રક્રિયા ન કરેલા પેકેટોનો બેકલોગ
નેટ.આઈપીવી૪.ટીસીપી_આરએમઈએમ TCP રીડ બફર્સ માટે મેમરી રિઝર્વર
નેટ.આઈપીવી૪.ટીસીપી_ડબલ્યુએમએમ TCP સેન્ડ બફર્સ માટે મેમરી રિઝર્વર

કર્નલ, નેટવર્ક સ્ટેક, મેમરી હેન્ડલર, CPU સ્પીડ અને પાવર મેનેજમેન્ટ પેરામીટર્સ નેટવર્ક પ્રદર્શન પર મોટી અસર કરી શકે છે. એક સામાન્ય ભલામણ એ છે કે નેટવર્ક થ્રુપુટ પ્રો પર લાગુ કરો.file ટ્યુન કરેલ આદેશનો ઉપયોગ કરીને. આ નેટવર્કિંગ એપ્લિકેશનોને પસંદગી આપવા માટે કેટલીક OS સેટિંગ્સમાં ફેરફાર કરે છે.
તપાસો:
ટ્યુન-એડએમ સક્રિય
સેટ કરો:
ટ્યુન-એડએમ પ્રોfile નેટવર્ક-થ્રુપુટ
૫.૮ નેટવર્ક ડિવાઇસ બેકલોગ
આ સુવિધા ઇનકમિંગ ટ્રાફિકને અસરકારક રીતે મેનેજ કરીને, પેકેટ લોસ ઘટાડીને, લેટન્સી ઘટાડીને અને થ્રુપુટ વધારીને નેટવર્ક પ્રદર્શનને સુધારવામાં મદદ કરે છે. આનાથી વધુ સારો વપરાશકર્તા અનુભવ અને ઝડપી સિસ્ટમ પ્રતિભાવ મળે છે.
ડિફૉલ્ટ રૂપે, તે મોટાભાગની Linux ઓપરેટિંગ સિસ્ટમ્સમાં સક્ષમ હોય છે. ડિફૉલ્ટ મૂલ્ય તપાસવા માટે:
sysctl net.core.netdev_max_backlog
netdev_max_backlog માટે મહત્તમ મૂલ્ય કર્નલ સંસ્કરણ, હાર્ડવેર, મેમરી અને વર્કલોડ જેવા પરિબળોના આધારે બદલાઈ શકે છે. ઘણા કિસ્સાઓમાં, 8192 ને સારી કિંમત તરીકે જોવામાં આવે છે. sysctl -w net.core.netdev_max_backlog=8192
૫.૯ પ્લેટફોર્મ-વિશિષ્ટ રૂપરેખાંકનો અને ટ્યુનિંગ
૫.૯.૧ ચોથી પેઢીના ઇન્ટેલ® ઝિઓન® સ્કેલેબલ પ્રોસેસર્સ

ઇન્ટેલ® 4થી જનરેશનના ઇન્ટેલ® Xeon® સ્કેલેબલ પ્રોસેસરનું પાવર મેનેજમેન્ટ 3જી જનરેશનના ઇન્ટેલ® Xeon® સ્કેલેબલ પ્રોસેસર્સની તુલનામાં અત્યંત આક્રમક છે. કોરોને ઓછી-પાવર સ્થિતિમાં પ્રવેશતા અટકાવવા માટે, ઉપયોગમાં લેવાતા કોરોની સંખ્યા ઘટાડવાનો પ્રયાસ કરો જેથી તેમને લાંબા સમય સુધી જાગૃત રાખી શકાય.
ઉચ્ચતમ પ્રદર્શન માટે ભલામણ કરેલ બાયોસ સેટિંગ્સ

  1. CPU પર હાઇપર-થ્રેડીંગ સક્ષમ/અક્ષમ (વર્કલોડની જરૂરિયાત અને પ્રદર્શન લક્ષ્યોના આધારે).
  2. સિસ્ટમ પ્રો સેટ કરોfile મહત્તમ પ્રદર્શન માટે પ્રદર્શન પર ક્લિક કરો.
    નોંધ
    આના પરિણામે વીજ વપરાશ વધારે થાય છે
  3. પાવર કાર્યક્ષમતા કરતાં મહત્તમ CPU પ્રદર્શનને પ્રાથમિકતા આપવા માટે CPU પાવર મેનેજમેન્ટને મહત્તમ પ્રદર્શન પર સેટ કરો.
  4. ટર્બો બૂસ્ટ સક્ષમ કરો. સિસ્ટમ BIOS સેટિંગ્સમાં ટર્બો બૂસ્ટને અક્ષમ કરવાથી સામાન્ય રીતે CPU તેની ઘડિયાળની ગતિને તેની બેઝ ફ્રીક્વન્સીથી ગતિશીલ રીતે વધારી શકતું નથી.
  5. નોંધ
    ટર્બો બૂસ્ટને અક્ષમ કરવું એ ચોક્કસ ઉપયોગના કિસ્સાઓ માટે યોગ્ય હોઈ શકે છે જ્યાં મહત્તમ કામગીરી કરતાં સુસંગત કામગીરી, પાવર કાર્યક્ષમતા અથવા થર્મલ મેનેજમેન્ટને પ્રાથમિકતા આપવામાં આવે છે.
  6. જો સિસ્ટમ વર્ચ્યુઅલાઈઝેશન ટેકનોલોજીનો ઉપયોગ ન કરતી હોય, તો સિંગલ રૂટ I/O વર્ચ્યુઅલાઈઝેશન (SR-IOV) સુવિધા બંધ કરો.
  7. CPU ને સક્રિય રહેવા અને ઊંડા નિષ્ક્રિય સ્થિતિમાં પ્રવેશતા અટકાવવા માટે C-સ્ટેટ્સને અક્ષમ કરો.
  8. CPU સક્રિય રહે અને C1E નિષ્ક્રિય સ્થિતિમાં ન જાય તેની ખાતરી કરવા માટે, C1E ને અક્ષમ કરો.
  9. સિસ્ટમને સૌથી વધુ ઉપલબ્ધ આવર્તન પર કાર્ય કરવા માટે સૂચના આપવા માટે અનકોર આવર્તનને મહત્તમ પર સેટ કરો.
  10. ડેલ પ્લેટફોર્મ પર, CPU કોરોનું સ્પષ્ટ અને અનુમાનિત મેપિંગ પૂરું પાડવા માટે મલ્ટીપલ APIC ડિસ્ક્રિપ્શન ટેબલ (MADT) કોર ઇમ્યુલેશનને લીનિયર (અથવા BIOS પર આધાર રાખીને રાઉન્ડ-રોબિન) પર સેટ કરો.

ઑપ્ટિમાઇઝ્ડ પર્ફોર્મન્સ માટે ભલામણ કરેલ OS લેવલ ટ્યુનિંગ્સ

  1. CPU ફ્રીક્વન્સી સ્કેલિંગ ગવર્નરને પરફોર્મન્સ પર સેટ કરો. cpupower frequency-set -g પરફોર્મન્સ cpupower frequency-info
  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 એડેપ્ટિવ-આરએક્સ બંધ એડેપ્ટિવ-ટીએક્સ બંધ આરએક્સ-યુસેક્સ-હાઈ ૫૦ આરએક્સ-યુસેક્સ ૫૦ ટીએક્સ-યુસેક્સ ૫૦
    વર્કલોડ માટે શ્રેષ્ઠ મૂલ્ય શોધવા માટે ટ્રાન્સમિટ/રિસીવ/હાઇ-પ્રાયોરિટી કોલેસિંગ ટાઈમરને ઉચ્ચ (80/100/150/200) અથવા નીચલા (25/20/10/5) પર ગોઠવવાનો પ્રયાસ કરો.
  3. Rx/Tx રિંગ માપો સેટ કરો. ethtool -G આરએક્સ ૪૦૯૬ ટીએક્સ ૪૦૯૬
    નોંધ
    જો તમને ethtool -S| grep ડ્રોપ સાથે Rx પેકેટ ડ્રોપ દેખાય, તો રિંગનું કદ <4096 સુધી ઘટાડીને પ્રયાસ કરો. જ્યાં પેકેટ ડ્રોપ ન થાય ત્યાં વર્કલોડ માટે શ્રેષ્ઠ મૂલ્ય શોધવાનો પ્રયાસ કરો.
  4. IRQ એફિનિટી સેટ કરો. NIC પર સ્થાનિક કોરો અથવા ચોક્કસ કોર મેપિંગનો ઉપયોગ કરો (જ્યાં # કોરો પૃષ્ઠ 1 પર 26 માં સેટ કરેલી કતારોની સંખ્યા જેટલી હોય છે. systemctl સ્ટોપ irqbalance set_irq_affinity -X સ્થાનિક અથવા set_irq_affinity -X

૫.૯.૨ એએમડી ઇપીવાયસી
AMD EPYC પ્રોસેસર્સ એ સર્વર્સ અને ડેટા સેન્ટરો માટે બનાવેલા શક્તિશાળી CPU છે, જે AMD ના ઝેન આર્કિટેક્ચર પર બનેલા છે. નીચેની સેટિંગ્સ AMD ની 4થી પેઢીની EPYC શ્રેણીમાંથી છે.
ઉચ્ચતમ પ્રદર્શન માટે ભલામણ કરેલ BIOS સેટિંગ્સ

  1. કસ્ટમ મોડને સક્ષમ કરો જેથી વપરાશકર્તાઓ CPU પ્રદર્શન, પાવર વપરાશ અને અન્ય સેટિંગ્સને સમાયોજિત કરી શકે. આ પ્રદર્શન અને ઊર્જા કાર્યક્ષમતા વચ્ચે શ્રેષ્ઠ સંતુલન માટે સિસ્ટમને ફાઇન-ટ્યુન કરવામાં મદદ કરે છે.
  2. કોર પર્ફોર્મન્સ બૂસ્ટને સક્ષમ કરો જેથી CPU વધુ સઘન કાર્યોને હેન્ડલ કરવા માટે તેની ગતિ આપમેળે વધારી શકે, એકંદર પર્ફોર્મન્સમાં સુધારો થાય.
  3. 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 પોર્ટ પસંદ કરો (દા.ત. માટેamp(le, 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=yes USERCTL=no 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. સર્વિસ નેટવર્ક રીસ્ટાર્ટ અથવા systemctl રીસ્ટાર્ટનો ઉપયોગ કરીને નેટવર્ક સેવાઓ ફરીથી શરૂ કરો NetworkManager.service

પ્રદર્શન મુશ્કેલીનિવારણ

૭.૧ સીપીયુ ઉપયોગિતા
વર્કલોડ ચાલી રહ્યું હોય ત્યારે કોર દીઠ CPU ઉપયોગિતા તપાસો.
નોંધ કરો કે કોર દીઠ ઉપયોગ એકંદર CPU ઉપયોગ કરતાં કામગીરી માટે વધુ સુસંગત છે કારણ કે તે નેટવર્ક કતાર દીઠ CPU ઉપયોગનો ખ્યાલ આપે છે. જો તમારી પાસે નેટવર્ક ટ્રાફિક ચલાવતા ફક્ત થોડા થ્રેડો હોય, તો તમારી પાસે ફક્ત થોડા કોરોનો ઉપયોગ થઈ શકે છે. જો કે, જો તે કોરો 100% પર હોય, તો તમારું નેટવર્ક થ્રુપુટ CPU ઉપયોગ દ્વારા મર્યાદિત હોવાની શક્યતા છે અને નીચે મુજબ કરવાનો સમય આવી ગયો છે:

  1. ઇન્ટરપ્ટ મોડરેશનમાં વિગતવાર જણાવ્યા મુજબ IRQ મોડરેશન/રિંગ સાઈઝ ટ્યુન કરો.
  2. CPU લોડને વધુ કોરો પર ફેલાવવા માટે એપ્લિકેશન થ્રેડોની સંખ્યા વધારો. જો બધા કોરો 100% પર ચાલી રહ્યા હોય તો તમારી એપ્લિકેશન નેટવર્ક બાઉન્ડને બદલે CPU બાઉન્ડ હોઈ શકે છે.

સામાન્ય રીતે ઉપલબ્ધ સાધનો:

  • ટોચ
    — CPU ની યાદી વિસ્તૃત કરવા અને કયા CPU નો ઉપયોગ થઈ રહ્યો છે તે તપાસવા માટે 1 દબાવો.
    — ઉપયોગના સ્તર પર ધ્યાન આપો.
    — નોંધ લો કે કઈ પ્રક્રિયાઓ સૌથી વધુ સક્રિય તરીકે સૂચિબદ્ધ છે (યાદીની ટોચ પર).
  • એમપીસ્ટેટ
    નીચેના માજી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|' | કૉલમ
  • પર્ફ ટોપ ચક્ર ક્યાં ખર્ચવામાં આવી રહ્યા છે તે જુઓ.

૭.૨ i7.2e કાઉન્ટર્સ
i40e ડ્રાઇવર ethtool -S ethX આદેશ દ્વારા ઇન્ટરફેસ ડિબગ અને મોનિટરિંગ માટે કાઉન્ટર્સની લાંબી સૂચિ પ્રદાન કરે છે. વર્કલોડ ચાલી રહ્યું હોય ત્યારે આઉટપુટ જોવા અને/અથવા વર્કલોડ રન પહેલાં અને પછી કાઉન્ટર મૂલ્યોની તુલના કરવી મદદરૂપ થઈ શકે છે.

  • i40e કાઉન્ટર્સનો સંપૂર્ણ ડમ્પ મેળવવા માટે: ethtool -S ethX
  • ફક્ત શૂન્ય સિવાયના કાઉન્ટર્સ જોવા માટે: watch -d (ethtool -S ethX) | egrep -v :\ 0 | column
    જોવા જેવી કેટલીક બાબતો:
  • rx_droped નો અર્થ એ છે કે CPU બફર્સને પૂરતી ઝડપથી સર્વિસ કરી રહ્યું નથી.
  • port.rx_droped નો અર્થ એ છે કે સ્લોટ/મેમરી/ સિસ્ટમમાં કંઈક પૂરતું ઝડપી નથી.

૭.૩ નેટવર્ક કાઉન્ટર્સ
વર્કલોડ રન પહેલા/પછી netstat -s તપાસો.
નેટસ્ટેટ સિસ્ટમમાંના બધા નેટવર્ક ઉપકરણોમાંથી નેટવર્ક માહિતી એકત્રિત કરે છે. તેથી, પરીક્ષણ હેઠળના નેટવર્ક સિવાયના નેટવર્ક્સથી પરિણામો પ્રભાવિત થઈ શકે છે. નેટસ્ટેટ -s માંથી આઉટપુટ Linux ઓપરેટિંગ સિસ્ટમ અથવા કર્નલમાં પ્રદર્શન સમસ્યાઓનું સારું સૂચક હોઈ શકે છે. સામાન્ય ઓપરેટિંગ સિસ્ટમ ટ્યુનિંગ પર વધુ સમજ માટે ઓપરેટિંગ સિસ્ટમ ટ્યુનિંગ માર્ગદર્શિકાઓ, જેમ કે Red Hat Enterprise Linux નેટવર્ક પરફોર્મન્સ ટ્યુનિંગ માર્ગદર્શિકા, નો સંદર્ભ લો.
૭.૪ સિસ્ટમ લોગ
ભૂલો અને ચેતવણીઓ માટે સિસ્ટમ લોગ તપાસો (/var/log/messages, dmesg).
૭.૫ ઇન્ટેલ એસવીઆર-ઇન્ફો ટૂલ
ઇન્ટેલ એક svr-info ટૂલ પૂરું પાડે છે (જુઓ https://github.com/intel/svr-info) Linux માટે જે સર્વરમાંથી સંબંધિત હાર્ડવેર અને સોફ્ટવેર વિગતો મેળવે છે. svr-info આઉટપુટ સિસ્ટમ અવરોધો અથવા સેટિંગ્સ/ટ્યુનિંગને ઓળખવા માટે અત્યંત મદદરૂપ થઈ શકે છે જે વર્કલોડ માટે ઑપ્ટિમાઇઝ નથી. ઇથરનેટ-સંબંધિત કામગીરી સમસ્યાઓ માટે ઇન્ટેલ સાથે સપોર્ટ કેસ ખોલતી વખતે, svr-info આઉટપુટ (ટેક્સ્ટ) શામેલ કરવાનું ભૂલશો નહીં file) ટેસ્ટ રૂપરેખાંકનમાં દરેક Linux સર્વર માટે.

  1. svr-info ડાઉનલોડ અને ઇન્સ્ટોલ કરો:
    વિજેટ -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-માહિતી
    ./svr-માહિતી
    > હોસ્ટનામ.txt
  2. આઉટપુટ એકત્રિત કરો:
    ./svr-info > હોસ્ટનામ.txt
  3. એક ટેક્સ્ટ (.txt) જોડો file વિશ્લેષણ માટે તમારા ઇન્ટેલ સપોર્ટ કેસમાં દરેક સર્વર માટે.

સામાન્ય કામગીરીના દૃશ્યો માટે ભલામણો

૮.૧ IP ફોરવર્ડિંગ

  • કર્નલ અપડેટ કરો.
    સુરક્ષાને કારણે રૂટીંગ કેશ દૂર કરવાથી શરૂ કરીને રૂટીંગ કોડમાં કર્નલ ફેરફારોને કારણે તાજેતરના કેટલાક ઇન-ડિસ્ટ્રો કર્નલોમાં રૂટીંગ પ્રદર્શનમાં ઘટાડો થયો છે. તાજેતરના આઉટ-ઓફ-ડિસ્ટ્રો કર્નલોમાં પેચ હોવા જોઈએ જે આ ફેરફારોના પ્રદર્શન પ્રભાવને ઓછો કરે છે અને સુધારેલ પ્રદર્શન પ્રદાન કરી શકે છે.
  • હાયપર-થ્રેડીંગ (લોજિકલ કોરો) ને અક્ષમ કરો.
  • કર્નલ બુટ પરિમાણોમાં ફેરફાર કરો.
    — કર્નલ બુટ લાઇનમાંથી iommu ને બળપૂર્વક બંધ કરો (intel_iommu=off અથવા iommu=off) જ્યાં સુધી વર્ચ્યુઅલાઈઝેશન માટે જરૂરી ન હોય
    — પાવર મેનેજમેન્ટ બંધ કરો: processor.max_cstates=1 idle=poll pcie_aspm=off
  • સ્થાનિક સોકેટ પર કોરોની સંખ્યા જેટલી કતારોની સંખ્યા મર્યાદિત કરો (આ ભૂતપૂર્વમાં 12)ample). 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 off જ્યાં ethX એ ઇથરનેટ ઇન્ટરફેસ છે જેમાં ફેરફાર કરવાનો છે.
  • અનુકૂલનશીલ વિક્ષેપ મોડરેશનને અક્ષમ કરો અને સ્ટેટિક મૂલ્ય સેટ કરો. ethtool -C ethX adaptiv-rx off adaptiv-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

નોંધ
પ્રોસેસરના પ્રકાર અને વર્કલોડના આધારે, RX અને TX માટેના કોએલેસિંગ પરિમાણોને સુધારેલા પ્રદર્શન (અથવા ઓછા ફ્રેમ નુકશાન) માટે ગોઠવી શકાય છે.

  • ફાયરવોલ અક્ષમ કરો. sudo systemctl ફાયરવોલ્ડ અક્ષમ કરો sudo systemctl stop firewalld
  • IP ફોરવર્ડિંગ સક્ષમ કરો. sysctl -w net.ipv4.ip_forward=1
  • રીસીવ અને સેન્ડ સોકેટ બફર કદ માટે મહત્તમ મૂલ્યો ગોઠવો. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

નોંધ
વર્કલોડ અથવા જરૂરિયાતના આધારે, આ મૂલ્યો ડિફોલ્ટથી બદલી શકાય છે.
૮.૨ ઓછી લેટન્સી

  • હાયપર-થ્રેડીંગ (લોજિકલ કોરો) બંધ કરો.
  • ખાતરી કરો કે નેટવર્ક ઉપકરણ નુમા કોર 0 પર સ્થાનિક છે.
  • ટાસ્કસેટ -c 0 નો ઉપયોગ કરીને બેન્ચમાર્કને કોર 0 પર પિન કરો.
  • systemctl નો ઉપયોગ કરીને irqbalance બંધ કરો irqbalance રોકો અથવા systemctl ને irqbalance અક્ષમ કરો
  • કોરોમાં ફેલાવવા માટે એફિનિટી સ્ક્રિપ્ટ ચલાવો. સ્થાનિક અથવા બધાનો પ્રયાસ કરો.
  • ઇન્ટરપ્ટ મોડરેશન બંધ કરો. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • સ્થાનિક સોકેટ પર કોરોની સંખ્યા જેટલી કતારોની સંખ્યા મર્યાદિત કરો (આ ભૂતપૂર્વમાં 32)ample). 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
દસ્તાવેજ નં.: ૩૩૪૦૧૯, રેવ.: ૧.૨

દસ્તાવેજો / સંસાધનો

ઇન્ટેલ ઇથરનેટ 700 સિરીઝ લિનક્સ પર્ફોર્મન્સ ટ્યુનિંગ [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા
૩૩૪૦૧૯, ઇથરનેટ ૭૦૦ સિરીઝ લિનક્સ પર્ફોર્મન્સ ટ્યુનિંગ, ઇથરનેટ ૭૦૦ સિરીઝ, લિનક્સ પર્ફોર્મન્સ ટ્યુનિંગ, પર્ફોર્મન્સ ટ્યુનિંગ, ટ્યુનિંગ

સંદર્ભો

એક ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો ચિહ્નિત થયેલ છે *