इंटेल लोगोइन्टेल ® इथरनेट ७०० शृङ्खला
लिनक्स प्रदर्शन ट्युनिङ गाइड
NEX क्लाउड नेटवर्किङ समूह (NCNG)
Rev. 1.2
डिसेम्बर २०२२

संशोधन इतिहास

संशोधन मिति टिप्पणीहरू
1.2 डिसेम्बर २०२२ · थप पावर व्यवस्थापन मार्गदर्शन थपियो।
· Intel* टर्बो बूस्ट थपियो।
· नेटवर्क उपकरण ब्याकलग थपियो।
· प्लेटफर्म-विशिष्ट कन्फिगरेसन र ट्युनिङ थपियो।
· चौथो पुस्ताको इन्टेल* %eon* स्केलेबल प्रोसेसरहरू थपियो।
· AMD EPYC थपियो।
· अद्यावधिक गरिएको जाँच प्रणाली हार्डवेयर क्षमताहरू।
· अद्यावधिक गरिएको iPerf2।
· अद्यावधिक गरिएको iPerf3।
· अद्यावधिक गरिएको Tx/Rx लामहरू।
· अद्यावधिक गरिएको अवरोध मोडरेसन।
· अद्यावधिक गरिएको औंठीको आकार।
· अपडेट गरिएको प्लेटफर्म ट्युनिङ (i40e गैर-विशिष्ट)।
· अद्यावधिक गरिएको BIOS सेटिङहरू।
· अद्यावधिक गरिएको C-स्टेट नियन्त्रण।
· अद्यावधिक गरिएको CPU फ्रिक्वेन्सी स्केलिंग।
· अद्यावधिक गरिएका अनुप्रयोग सेटिङहरू।
· अद्यावधिक गरिएको अपरेटिङ सिस्टम/कर्नेल सेटिङहरू।
· अद्यावधिक गरिएको IP फर्वार्डिङ।
· कम विलम्बता अद्यावधिक गरियो।
अगस्त २०२३ यस कागजातमा गरिएका परिवर्तनहरूमा समावेश छन्:
· सम्बन्धित सन्दर्भहरू थपियो।
· DDP प्याकेज राम्ररी लोड भइरहेको छ भनी सुनिश्चित गर्नुहोस्।
· iPerf2 थपियो।
· iPerf3 थपियो।
· netperf थपियो।
· अद्यावधिक गरिएको IRQ एफिनिटी।
· Tx/Rx लाइनहरू थपियो।
· अद्यावधिक गरिएको औंठीको आकार।
· जम्बो फ्रेमहरू थपियो।
· एडाप्टर बन्धन थपियो।
· Intel svr-info उपकरण थपियो।
1.0 मार्च २०२४ प्रारम्भिक रिलीज (इन्टेल पब्लिक)।

परिचय

यो गाइड लिनक्स वातावरणमा 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 एक ४० GbE नियन्त्रक हो। यो नियन्त्रक प्रयोग गर्ने २ x ४० GbE एडाप्टर २ x ४० GbE होइन तर सक्रिय ब्याक-अप पोर्ट भएको १ x ४० GbE हो। दुबै पोर्टहरू समावेश गर्ने लाइन-रेट ट्राफिक प्रयोग गर्ने प्रयास गर्दा, आन्तरिक स्विच संतृप्त हुन्छ र दुई पोर्टहरू बीचको संयुक्त ब्यान्डविथ कुल SO Gbps मा सीमित हुन्छ।
२.४.१ कर्नेल बुट प्यारामिटरहरू
यदि BIOS मा निर्देशित I/O (Intel® VT-d) को लागि Intel® भर्चुअलाइजेशन टेक्नोलोजी सक्षम गरिएको छ भने, Intel ले IOMMU लाई इष्टतम होस्ट नेटवर्क कार्यसम्पादनको लागि पास-थ्रु मोडमा राख्न सिफारिस गर्दछ। यसले होस्ट ट्राफिकमा DMA ओभरहेड हटाउँछ जबकि भर्चुअल मेसिनहरू (VMs) लाई अझै पनि Intel® VT-d को फाइदाहरू प्राप्त गर्न सक्षम बनाउँछ। यो कर्नेल बुट प्यारामिटरहरूमा निम्न लाइन थपेर पूरा गरिन्छ: fommu-pt।
२.५ DDP प्याकेज राम्ररी लोड भइरहेको सुनिश्चित गर्नुहोस्
१४०ea र १४०eb आधार ड्राइभरहरूमा डायनामिक डिभाइस पर्सनलाइजेशन (DDP) को लागि प्रत्यक्ष समर्थन छैन। ७०० सिरिज उपकरणहरूसँग DDP प्रयोग गर्न, DDP प्रोfile testpmd आवेदन मार्फत आवेदन दिन सकिन्छ।
DDP प्रो बारे विवरणहरूको लागिfiles, र DDP प्रो कसरी लागू गर्नेfile ७०० शृङ्खला उपकरणहरूमा testpmd सँग, Intel® Ethernet 700 शृङ्खला गतिशील उपकरण निजीकरण (DDP) प्रविधि गाइड हेर्नुहोस्।
DDP प्रो हो कि होइन भनेर प्रमाणित गर्नfile सफलतापूर्वक लोड गरियो:
testpmd> ddp सूची ० प्रो प्राप्त गर्नुहोस्file संख्या हो: १
नोट
यदि प्रोfile नम्बर ० छ, कुनै DDP प्याकेज लोड गरिएको छैन। DDP प्याकेज लोड त्रुटिको घटनामा, उपकरण पूर्वनिर्धारित रूपमा सुरक्षित मोडमा हुन्छ र धेरै कार्यसम्पादन सुविधाहरू उपलब्ध हुँदैनन्। यदि DDP प्याकेज लोड गर्ने सम्बन्धमा त्रुटिहरू छन् भने, यसले कार्यसम्पादन समस्याहरू निम्त्याउनेछ। समस्या निवारण चरणहरूको लागि, Inte/* Ethernet 0 Series Dynamic Device Personalization (DDP) प्रविधि गाइड हेर्नुहोस्।

आधारभूत कार्यसम्पादन मापन र ट्युनिङ पद्धति

३.१ नेटवर्क कार्यसम्पादन बेन्चमार्कहरू
ट्युनिङ अभ्यास सुरु गर्नु अघि, तपाईंको नेटवर्क कार्यसम्पादनको राम्रो आधारभूत मापन हुनु महत्त्वपूर्ण छ। सामान्यतया तपाईंको विशिष्ट अनुप्रयोग/कार्यभारको कार्यसम्पादनको प्रारम्भिक मापन प्राप्त गर्नुको अतिरिक्त, तपाईंको नेटवर्क उपकरण राम्रो अवस्थामा छ भनी प्रमाणित गर्न मानक नेटवर्क कार्यसम्पादन बेन्चमार्क प्रयोग गर्नु पनि राम्रो विचार हो।
एकल प्रणाली अप्टिमाइजेसनको लागि, netperf वा iperf र NetPIPE सबै ठोस खुला स्रोत नि:शुल्क उपकरणहरू हुन् जसले तपाईंलाई जडानलाई जोड दिन र कार्यसम्पादन समस्याहरूको निदान गर्न सक्षम बनाउँछ।
नेटपर्फ थ्रुपुट र ल्याटेन्सी परीक्षण दुवैको लागि बलियो छ। नेटपाइप एक ल्याटेन्सी-विशिष्ट उपकरण हो तर कुनै पनि प्रकारको वातावरणको लागि कम्पाइल गर्न सकिन्छ।
नोट
netperf मा TCP_RR परीक्षणले लेनदेन/सेकेन्डको मानमा विलम्बता फर्काउँछ। यो राउन्ड-ट्रिप नम्बर हो। एकतर्फी विलम्बता निम्न समीकरण प्रयोग गरेर गणना गर्न सकिन्छ:
विलम्बता(usec) = (1⁄2) / [कारोबार/सेकेन्ड] * १,०००,०००
३.१.१ iPerf२
एउटै एप्लिकेसन उदाहरणमा धेरै थ्रेडहरूको प्रयोग र समर्थनको सहजताको कारणले गर्दा धेरैजसो बेन्चमार्किङ परिस्थितिहरूमा Intel ले iperf2 भन्दा iperf3 सिफारिस गर्दछ। Intel ले 2G जडानहरूको लागि 4-25 थ्रेडहरू र 4G जडानहरूको लागि लगभग 6-40 थ्रेडहरू सहित -P विकल्पसँग चलाउन सिफारिस गर्दछ।

  • क्लाइन्टबाट सर्भरमा एक-दिशात्मक ट्राफिक चलाउन: सर्भर आदेश exampले: iperf2 -s
    क्लाइन्ट आदेश पूर्वampले: iperf2 -c -प
  • क्लाइन्टबाट सर्भरमा द्वि-दिशात्मक ट्राफिक चलाउन (र यसको विपरीत): सर्भर आदेश exampले: iperf2 –s –p
    क्लाइन्ट आदेश पूर्वampLe:
    iperf2 -c ले तपाईंलाई iperfXNUMX -c प्रयोग गर्न अनुमति दिन्छ। -प -प --पूर्ण-डुप्लेक्स OR
    iperf2 -c ले तपाईंलाई iperfXNUMX -c प्रयोग गर्न अनुमति दिन्छ। -प -प -घ

नोट
iperf2 मा –full-duplex र -d दुवै विकल्पहरूले प्रयोगकर्तालाई द्विदिशात्मक परीक्षण गर्न अनुमति दिन्छ। यद्यपि, –full-duplex विकल्प विशेष गरी पूर्ण डुप्लेक्स परीक्षणमा केन्द्रित छ।
नोट
धेरै सर्भर पोर्टहरूमा iperf2 परीक्षण गर्दा, एउटै टर्मिनल विन्डोबाट पृष्ठभूमिमा सबै सर्भर सत्रहरू चलाउन सर्भर कमाण्डमा -d फ्ल्याग थप्न सकिन्छ। स्क्रिप्टमा for-loop भित्र सर्भर कमाण्ड इम्बेड गर्दा पनि -d फ्ल्याग प्रयोग गर्न सकिन्छ।
नोट
एकल स्ट्रिम/थ्रेडको साथ नेटवर्क थ्रुपुट परीक्षण चलाउँदा (उदाहरणका लागिample: P1), AMD प्रोसेसरहरूले अपेक्षित थ्रुपुट प्रदान नगर्न सक्छन्, विशेष गरी उच्च ब्यान्डविथ NIC हरू (यदि गति >= 25G ब्यान्डविथ छ भने)। फलस्वरूप, उच्च थ्रुपुट प्राप्त गर्न विशिष्ट कोरहरूमा अनुप्रयोग पिनिङ आवश्यक छ। पृष्ठ २२ मा अनुप्रयोग सेटिङहरू हेर्नुहोस्।
३.१.१ iPerf२
यदि iperf3 प्रयोग गरिएको छ भने, एडभान लिनको लागि धेरै अनुप्रयोगहरूको उदाहरणहरू आवश्यक पर्दछ।tagबहु-थ्रेडहरू, RSS, र हार्डवेयर क्युहरूको e। Intel ले २५G जडानहरूको लागि २-४ अनुप्रयोग सत्रहरू र ४०G जडानहरूको लागि लगभग ४-६ सत्रहरू चलाउन सिफारिस गर्दछ। प्रत्येक सत्रले -p विकल्प प्रयोग गरेर एक अद्वितीय TCP पोर्ट मान निर्दिष्ट गर्नुपर्छ।

  • क्लाइन्टबाट सर्भरमा एक-दिशात्मक ट्राफिक चलाउन:
    सर्भर आदेश पूर्वampLe:
    iperf3 -s -p
    क्लाइन्ट आदेश पूर्वampLe:
    iperf3 -c ले तपाईंलाई iperfXNUMX -c मा ल्याएको छ। -प
  • क्लाइन्टबाट सर्भरमा द्वि-दिशात्मक ट्राफिक चलाउन (र यसको विपरीत):
    सर्भर आदेश पूर्वampLe:
    iperf3 –s –p
    क्लाइन्ट आदेश पूर्वampले: iperf3 -c -प -प –-बिदिर
  • iperf3 को धेरै उदाहरणहरू (थ्रेडहरू) सुरु गर्न, TCP पोर्टहरूमा थ्रेडहरू म्याप गर्न for-loop प्रयोग गर्न र समानान्तरमा धेरै प्रक्रियाहरू सिर्जना गर्न & प्रयोग गरेर पृष्ठभूमिमा iperf3 चलाउन सिफारिस गरिन्छ।
    सर्भर आदेश पूर्वample, ४ थ्रेडहरू सुरु गर्नुहोस्: port=””; {4..0} मा i को लागि; do port=3$i; bash -c “iperf520 -s -p $port &”; सकियो; क्लाइन्ट कमाण्ड example, ४ थ्रेडहरू सुरु गर्नुहोस् - परीक्षण पोर्ट=”” प्रसारण गर्नुहोस्; {4..0} मा i को लागि; पोर्ट=3$i गर्नुहोस्; bash -c “iperf520 -c $serverIP -p $port &”; सकियो; क्लाइन्ट कमाण्ड example, ४ थ्रेडहरू सुरु गर्नुहोस् – परीक्षण पोर्ट प्राप्त गर्नुहोस्=””; {4..0} मा i को लागि; port=3$i गर्नुहोस्; bash -c “iperf520 -R -c $serverIP -p $port &”; सकियो; ४०G जडानहरूको लागि, ६ उदाहरणहरू/थ्रेडहरू सिर्जना गर्न for-loop बढाउनुहोस्।

नोट
एकल स्ट्रिम/थ्रेडको साथ नेटवर्क थ्रुपुट परीक्षण चलाउँदा (उदाहरणका लागिample: P1), AMD प्रोसेसरहरूले अपेक्षित थ्रुपुट प्रदान नगर्न सक्छन्, विशेष गरी उच्च ब्यान्डविथ
NICs (यदि गति >= २५G ब्यान्डविथ छ भने)। फलस्वरूप, उच्च थ्रुपुट प्राप्त गर्न विशिष्ट कोरहरूमा अनुप्रयोग पिनिङ आवश्यक छ। पृष्ठ २२ मा अनुप्रयोग सेटिङहरू र पृष्ठ २६ मा AMD EPYC हेर्नुहोस्।
३.१.३ नेट पर्फ
नेटपर्फ उपकरण थ्रुपुट र लेटेन्सी परीक्षण दुवैको लागि बलियो विकल्प हो।

  • netperf मा TCP_STREAM परीक्षणले उपकरणको थ्रुपुट क्षमताहरू मापन गर्दछ। सर्भर आदेश example: नेटसर्भर क्लाइन्ट आदेश पूर्वampले: नेटपरफ -t TCP_STREAM -l ३० -H
  • netperf मा TCP_RR परीक्षणले लेनदेन/सेकेन्डको मानमा लेटेन्सी फर्काउँछ। यो राउन्ड-ट्रिप नम्बर हो। यदि x उपकरणमा CPU स्थानीय छ भने -T x,x विकल्प प्रयोग गर्न सिफारिस गरिन्छ। एक-तर्फी लेटेन्सी निम्न प्रयोग गरेर गणना गर्न सकिन्छ: Latency(usec)=(1⁄2)/ [लेनदेन/सेकेन्ड]*1,000,\ सर्भर आदेश exampले: नेटसर्भर
    क्लाइन्ट आदेश पूर्वampले: नेटपरफ -t TCP_RR -l ३० -H -T x,x
  • netperf का धेरै उदाहरणहरू (थ्रेडहरू) सुरु गर्न, TCP पोर्टहरूमा थ्रेडहरू म्याप गर्न for-loop प्रयोग गर्न र समानान्तरमा धेरै प्रक्रियाहरू सिर्जना गर्न & प्रयोग गरेर पृष्ठभूमिमा netperf चलाउन सिफारिस गरिन्छ।
    सर्भर आदेश पूर्वampले, ८ थ्रेडहरू सुरु गर्नुहोस्:
    पोर्ट=””; {0..7} मा i को लागि; पोर्ट=520$i गर्नुहोस्; bash -c “netserver -L $serverIP -p $port &”; सकियो;
    क्लाइन्ट आदेश पूर्वample, ८ थ्रेडहरू सुरु गर्नुहोस्: port=””; {8..0} मा i को लागि; do port=7$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 520 &”; सकियो;

३.२ ट्युनिङ विधि
एक पटकमा एउटा ट्युनिङ परिवर्तनमा ध्यान केन्द्रित गर्नुहोस् ताकि तपाईंलाई थाहा होस् कि प्रत्येक परिवर्तनले तपाईंको परीक्षणमा कस्तो प्रभाव पार्छ। तपाईं ट्युनिङ प्रक्रियामा जति धेरै व्यवस्थित हुनुहुन्छ, कार्यसम्पादन अवरोधका कारणहरू पहिचान गर्न र सम्बोधन गर्न त्यति नै सजिलो हुनेछ।

i40e ड्राइभर सेटिङहरू ट्युन गर्दै

४.१ IRQ आत्मीयता
विभिन्न नेटवर्क क्युहरूका लागि अवरोधहरू विभिन्न CPU कोरहरूमा संलग्न हुने गरी IRQ एफिनिटी कन्फिगर गर्नाले कार्यसम्पादनमा ठूलो प्रभाव पार्न सक्छ, विशेष गरी मल्टिथ्रेड थ्रुपुट परीक्षणहरूमा।
IRQ affinity कन्फिगर गर्न, 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 सक्षम गरिएको बेला, Intel ले तपाईंलाई irqbalance असक्षम गर्न सिफारिस गर्दछ, किनकि XPS भएको कर्नेल ब्यालेन्सरले अप्रत्याशित कार्यसम्पादन निम्त्याउन सक्छ। -X विकल्प निर्दिष्ट गरिएको बेला एफिनिटी स्क्रिप्टले XPS लाई असक्षम पार्छ। XPS असक्षम पार्नु र सममित क्युहरू सक्षम पार्नु कार्यभारहरूको लागि लाभदायक हुन्छ जहाँ Tx र Rx ट्राफिक एउटै क्यु जोडी(हरू) मा सेवा गर्दा उत्तम प्रदर्शन प्राप्त हुन्छ।
लिनक्समा सममित क्युहरू कन्फिगर गर्दा समर्थित नेटवर्क एडेप्टरहरूको लागि सममित प्राप्त क्युहरू (Rx) र सममित ट्रान्समिट क्युहरू (Tx) सक्षम गर्न नेटवर्क इन्टरफेस ड्राइभर प्यारामिटरहरू ट्युनिङ समावेश हुन्छ।
नोट

  • सममित क्युहरू एक उन्नत नेटवर्किङ सुविधा हो, र सबै ७०० श्रृंखला नेटवर्क एडेप्टर वा ड्राइभरहरूले तिनीहरूलाई समर्थन गर्दैनन्।
  • सममित क्युहरू कन्फिगर गर्ने प्रयास गर्नु अघि तपाईंसँग आवश्यक ड्राइभर र हार्डवेयर समर्थन छ भनी सुनिश्चित गर्नुहोस्।

सममित क्युहरू कन्फिगर गर्न, यी सामान्य चरणहरू पालना गर्नुहोस्:

  1. नेटवर्क इन्टरफेस कन्फिगरेसन सम्पादन गर्नुहोस् File: पाठ सम्पादक प्रयोग गर्नुहोस् (उदाहरणका लागिampनेटवर्क इन्टरफेस कन्फिगरेसन सम्पादन गर्न (le, vi, nano, वा gedit) file। द file सामान्यतया /etc/sysconfig/network-scripts/ निर्देशिका अन्तर्गत अवस्थित हुन्छ र यसको नाम ifcfg-ethX जस्तो हुन्छ, जहाँ ethX तपाईंको नेटवर्क इन्टरफेसको नाम हो।
  2. सममित क्यु प्यारामिटरहरू थप्नुहोस्। नेटवर्क इन्टरफेस कन्फिगरेसनमा निम्न लाइनहरू थप्नुहोस् file: ETHTOOL_OPTS=”rx-कतार ८ tx-कतार ८”
  3. नेटवर्क सेवा पुन: सुरु गर्नुहोस्।
    परिवर्तनहरू गरेपछि, नयाँ कन्फिगरेसन लागू गर्न नेटवर्क सेवा पुन: सुरु गर्नुहोस्। sudo systemctl नेटवर्क पुन: सुरु गर्नुहोस्

म्यानुअल रूपमा:

  • प्रत्येक नोडमा संलग्न प्रोसेसरहरू फेला पार्नुहोस्: numactl –hardware lscpu प्रयोग गरेर
  • प्रत्येक प्रोसेसरको लागि बिट मास्कहरू फेला पार्नुहोस्:
  • नोड ० को लागि कोर ०-११ मान्दै: [१,२,४,८,१०,२०,४०,८०,१००,२००,४००,८००]
  • तोकिएको पोर्टमा तोकिएका IRQ हरू फेला पार्नुहोस्: grep ethX /proc/interrupts र IRQ मानहरू नोट गर्नुहोस् उदाहरणका लागिample, लोड गरिएका १२ भेक्टरहरूको लागि १८१-१९२।
  • सम्बन्धित 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 आत्मीयता देखाउन: /स्क्रिप्ट्स/सेट_इरक्यू_एफिनिटी -एस एथएक्स
  • स्थानीय NUMA सकेटमा केवल कोरहरू देखाउन: /scripts/set_irq_affinity -s स्थानीय ethX
  • तपाईं कोरहरूको दायरा पनि चयन गर्न सक्नुहुन्छ: /स्क्रिप्ट्स/सेट_इरक्यू_एफिनिटी -एस ०-८,१६-२४ एथएक्स

नोट
set_irq_affinity स्क्रिप्टले i40e ड्राइभर संस्करण २.१६.११ र पछिल्लामा -s झण्डालाई समर्थन गर्दछ।
४.२ Tx/Rx लामहरू
सुरुवातमा ड्राइभरद्वारा प्रत्येक इथरनेट पोर्टको लागि सक्षम पारिएको पूर्वनिर्धारित लाइनहरूको संख्या प्लेटफर्ममा उपलब्ध CPU हरूको कुल संख्या बराबर हुन्छ। यो धेरै प्लेटफर्महरू र कार्यभार कन्फिगरेसनहरूको लागि राम्रोसँग काम गर्दछ। यद्यपि, उच्च कोर गणना र/वा उच्च इथरनेट पोर्ट घनत्व भएका प्लेटफर्महरूमा, यो कन्फिगरेसनले स्रोत विवाद निम्त्याउन सक्छ। त्यसकारण, केही अवस्थामा प्रणालीमा प्रत्येक पोर्टको लागि पूर्वनिर्धारित परिमार्जन गर्न आवश्यक हुन सक्छ।
विशिष्ट मोडेल र ड्राइभर संस्करणको आधारमा Tx/Rx लाइनहरूको पूर्वनिर्धारित संख्या फरक हुन सक्छ। लाइनहरूको संख्या तल सूचीबद्ध ethtool -L आदेश प्रयोग गरेर लाइनहरूको संख्या समायोजन गर्न सकिन्छ।
नोट
यी अवस्थाहरूमा, Intel ले तपाईंलाई प्रत्येक पोर्टको लागि पूर्वनिर्धारित क्यु गणनालाई NUMA नोडमा उपलब्ध CPU हरूको संख्या भन्दा बढीमा घटाउन सिफारिस गर्दछ जुन एडाप्टर पोर्टमा स्थानीय रूपमा उपलब्ध छ। केही अवस्थामा, उच्च पोर्ट गणना कार्यान्वयनहरूमा स्रोतहरू सन्तुलन गर्ने प्रयास गर्दा, यो संख्यालाई अझ कम गर्न आवश्यक हुन सक्छ।
लाम कन्फिगरेसन परिमार्जन गर्न:
निम्न पूर्वample ले पोर्टलाई ३२ Tx/Rx क्युमा सेट गर्छ: ethtool -L ethX संयुक्त ३२
Exampले आउटपुट:
ethtool -l ethX
ethX का लागि च्यानल प्यारामिटरहरू: पूर्व-सेट अधिकतम:
RX: 96
TX: 96
अन्य: 1
संयुक्त: ९६
हालको हार्डवेयर सेटिङहरू:
RX: 0
TX: 0
अन्य: 1
संयुक्त: ९६
४.३ मध्यस्थता अवरोध गर्नुहोस्
अनुकूली अवरोध मोडरेसन पूर्वनिर्धारित रूपमा सक्रिय हुन्छ, र कम CPU उपयोग र उच्च प्रदर्शन बीच सन्तुलित दृष्टिकोण प्रदान गर्न डिजाइन गरिएको हो। यद्यपि, तपाईंले आफ्नो प्रयोगको अवस्थामा फिट हुनको लागि अवरोध सेटिङहरू म्यानुअल रूपमा ट्युन गर्ने प्रयास गर्न सक्नुहुन्छ।
०-२३५ माइक्रोसेकेन्डको दायराले प्रति सेकेन्ड ४,३१० देखि २५०,००० अवरोधहरूको प्रभावकारी दायरा प्रदान गर्दछ। rx-μsecs-high को मान एउटै ethtool आदेशमा rx-μsecs र tx-μsecs बाट स्वतन्त्र सेट गर्न सकिन्छ, र अनुकूली अवरोध मोडरेसन एल्गोरिथ्मबाट पनि स्वतन्त्र छ। अन्तर्निहित हार्डवेयरले २ माइक्रोसेकेन्ड अन्तरालहरूमा ग्र्यानुलारिटीलाई समर्थन गर्दछ, त्यसैले आसन्न मानहरूले समान अवरोध दरमा परिणाम दिन सक्छ।

  • अनुकूली अवरोध मोडरेसन बन्द गर्न: ethtool -C ethX adaptive-rx off adaptive-tx off
  • अनुकूली अवरोध मोडरेसन सक्रिय गर्न: ethtool -C ethX adaptive-rx on adaptive-tx on

सामान्य ट्युनिङको लागि सुरु गर्नको लागि राम्रो ठाउँ ८४ μs, वा ~१२००० अवरोध/सेकेन्ड हो। यदि तपाईंले rx_dropped काउन्टरहरू ट्राफिकको समयमा चलिरहेको देख्नुभयो भने (ethtool -S ethX प्रयोग गर्दै) तपाईंसँग सम्भवतः धेरै ढिलो CPU छ, एडाप्टरको रिङ साइज (ethtool -G) बाट ८४ μs को लागि प्याकेटहरू समात्न पर्याप्त बफरहरू छैनन् वा अवरोध दर भन्दा कम छ।

  • अवरोधहरू बीच ८४ μs को निश्चित अवरोध दरमा अवरोध मोडरेसन सेट गर्न (१२००० अवरोधहरू/सेकेन्ड): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs ८४ tx-usecs ८४ यदि तपाईं CPU उपयोगमा अधिकतम हुनुहुन्न भने, प्रयास गर्नुपर्ने अर्को मान ६२ μs हो। यसले धेरै CPU प्रयोग गर्दछ, तर यसले बफरहरूलाई छिटो सेवा दिन्छ, र कम वर्णनकर्ताहरू (रिंग साइज, ethtool -G) आवश्यक पर्दछ।
  • अवरोधहरू बीचको ६२ usecs (१६००० अवरोध/सेकेन्ड) को निश्चित अवरोध दरमा अवरोध मोडरेसन सेट गर्न। ethtool -C ethX adaptiv-rx off adaptiv-tx off rx-usecs ६२ tx-usecs ६२
    यदि rx_dropped काउन्टरहरू ट्राफिकको समयमा बढ्छन् (ethtool -S ethX प्रयोग गर्दै), तपाईंसँग सम्भवतः CPU धेरै ढिलो छ, एडाप्टरको रिङ साइज (ethtool -G) बाट पर्याप्त बफरहरू छैनन्, वा अवरोध दर धेरै कम छ। यदि तपाईं CPU उपयोगमा अधिकतम हुनुहुन्न भने, तपाईं ITR मान घटाएर अवरोध दर बढाउन सक्नुहुन्छ। यसले धेरै CPU प्रयोग गर्दछ, तर सेवाहरू छिटो बफर गर्दछ, र कम वर्णनकर्ताहरू (रिङ साइज, ethtool -G) आवश्यक पर्दछ।
    यदि तपाईंको CPU १००% मा छ भने, अवरोध दर बढाउनु सिफारिस गरिँदैन। CPU बाउन्ड वर्कलोड जस्ता केही परिस्थितिहरूमा, तपाईंले अन्य अनुप्रयोगहरूको लागि थप CPU समय सक्षम पार्न μs मान बढाउन चाहन सक्नुहुन्छ।
    यदि तपाईंलाई कम विलम्बता कार्यसम्पादन चाहिन्छ र/वा नेटवर्क प्रशोधनमा समर्पित गर्न प्रशस्त CPU छ भने, तपाईंले अवरोध मोडरेसनलाई पूर्ण रूपमा असक्षम पार्न सक्नुहुन्छ, जसले अवरोधहरूलाई सकेसम्म छिटो सक्रिय गर्न सक्षम बनाउँछ।
  • अवरोध मोडरेसन असक्षम गर्न ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

नोट
अवरोध मोडरेसन असक्षम पारेर चलाउँदा, प्रत्येक क्युमा अवरोध दर धेरै उच्च हुन सक्छ। अवरोध दरमा माथिल्लो सीमा सेट गर्न rx-usec-high प्यारामिटर समावेश गर्ने विचार गर्नुहोस्। निम्न आदेशले अनुकूली अवरोध मोडरेसनलाई असक्षम पार्छ र प्राप्त वा प्रसारण पूरा भएको संकेत गर्नु अघि अधिकतम ५ माइक्रोसेकेन्ड अनुमति दिन्छ। प्रति सेकेन्ड २००,००० सम्म अवरोधहरू निम्त्याउनुको सट्टा, यसले rx-usec-high प्यारामिटर मार्फत प्रति सेकेन्ड कुल अवरोधहरूलाई ५०,००० मा सीमित गर्दछ। # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high २० rx-usecs ५ txusecs ५ कार्यभारको लागि इष्टतम मान फेला पार्न ट्रान्समिट/रिसीभ/उच्च-प्राथमिकता कोलेसिङ टाइमर उच्च (८०/१००/१५०/२००) वा कम (२५/२०/१०/५) समायोजन गर्ने प्रयास गर्नुहोस्।
४.४ औंठीको आकार
यदि तपाईंले ethtool -S ethX (rx_dropped, rx_dropped.nic) मा rx_dropped काउन्टरहरू देखिरहनुभएको छ, वा धेरै लाइनहरू सक्रिय भएको शंकास्पद क्यास प्रेसर देखिरहनुभएको छ भने, तपाईंले पूर्वनिर्धारित मानबाट रिङ साइज समायोजन गर्ने प्रयास गर्न सक्नुहुन्छ। पूर्वनिर्धारित मान ५१२ हो, अधिकतम ४०९६ हो।

  • हालको मानहरू जाँच गर्न: ethtool -g ethX
    यदि बफरिङको अभावले हालको अवरोध दरमा गिरावट आइरहेको शंका छ भने, तपाईंले पहिले अधिकतम प्रयास गर्न सक्नुहुन्छ, त्यसपछि न्यूनतम, त्यसपछि इष्टतम कार्यसम्पादन नदेखेसम्म बाइनरी खोजमा जारी राख्नुहोस्।
    यदि क्यास प्रेसर शंकास्पद छ (धेरै क्युहरू सक्रिय छन्) भने पूर्वनिर्धारितबाट बफरहरू घटाउनाले Intel® Data Direct I/O (Intel® DDIO) लाई राम्रोसँग कुशलतापूर्वक सञ्चालन गर्न मद्दत गर्न सक्छ। Intel ले प्रति क्यु १२८ वा २५६ प्रयास गर्न सिफारिस गर्छ, यो कुरामा सचेत रहँदै कि rx_dropped मा वृद्धि हुनबाट बच्न ethtool -C मार्फत अवरोध दरमा वृद्धि आवश्यक हुन सक्छ।
  • घण्टीको आकारलाई निश्चित मानमा सेट गर्न: ethtool -G eth12 rx 256 tx 256

नोट
ethtool -S ethX|grep drop सँग भेटिएका Rx प्याकेट ड्रपहरू ठीक गर्न, रिङ साइज ४०९६ मा बढाउने विचार गर्नुहोस्। कार्यभारको लागि उत्तम सेटिङ फेला पार्न प्रयोग गर्नुहोस् तर उच्च मानहरूको साथ अत्यधिक मेमोरी प्रयोगको लागि सावधान रहनुहोस्।
१.२.१ प्रवाह नियन्त्रण
तह २ प्रवाह नियन्त्रणले TCP कार्यसम्पादनमा उल्लेखनीय प्रभाव पार्न सक्छ र धेरैजसो कार्यभारहरूको लागि यसलाई असक्षम पार्न सिफारिस गरिन्छ। सम्भावित अपवाद भनेको बर्स्टी ट्राफिक हो जहाँ बर्स्टहरू लामो अवधिमा हुँदैनन्।
प्रवाह नियन्त्रण पूर्वनिर्धारित रूपमा असक्षम पारिएको छ।

  • प्रवाह नियन्त्रण सक्षम गर्न: ethtool -A ethX rx on tx on
  • प्रवाह नियन्त्रण असक्षम गर्न: ethtool -A ethX rx बन्द tx बन्द

नोट
प्रवाह नियन्त्रण सफलतापूर्वक सक्षम गर्न तपाईंसँग प्रवाह नियन्त्रण सक्षम लिङ्क पार्टनर हुनुपर्छ।
4.6 जम्बो फ्रेमहरू
जब अपेक्षित ट्राफिक वातावरणमा स्थानान्तरण हुने डेटाका ठूला ब्लकहरू हुन्छन्, जम्बो फ्रेम सुविधा सक्षम गर्नु फाइदाजनक हुन सक्छ। जम्बो फ्रेम्स समर्थन अधिकतम प्रसारण एकाइ (MTU) लाई १५०० को पूर्वनिर्धारित मान भन्दा ठूलो मानमा परिवर्तन गरेर सक्षम पारिएको छ। यसले उपकरणलाई नेटवर्क वातावरण भित्र ठूला प्याकेटहरूमा डेटा स्थानान्तरण गर्न अनुमति दिन्छ। यो सेटिङले थ्रुपुट सुधार गर्न र ठूला I/O कार्यभारहरूको लागि CPU उपयोग घटाउन सक्छ। यद्यपि, यसले सानो प्याकेट वा विलम्बता-संवेदनशील कार्यभारहरूलाई असर गर्न सक्छ।
नोट
जम्बो फ्रेम वा ठूला MTU सेटिङहरू तपाईंको नेटवर्क वातावरणमा राम्ररी कन्फिगर गरिएको हुनुपर्छ।
MTU आकार बढाउन ifconfig आदेश प्रयोग गर्नुहोस्। उदाहरणका लागिample, निम्न प्रविष्ट गर्नुहोस्, जहाँ इन्टरफेस नम्बर हो: ifconfig mtu ९००० माथि
वैकल्पिक रूपमा, तपाईंले निम्नानुसार ip आदेश प्रयोग गर्न सक्नुहुन्छ: ip link set mtu 9000 dev आईपी ​​लिङ्क सेटअप डेभलपर

प्लेटफर्म ट्युनिङ (i40e गैर-विशिष्ट)

5.1 BIOS सेटिङहरू

  • भर्चुअलाइजेशन कार्यभारहरूको लागि Intel® VT-d सक्षम गर्नुहोस्।
  • हाइपर-थ्रेडिङ (तार्किक प्रोसेसर) ले कार्यसम्पादनलाई असर गर्न सक्छ। आफ्नो कार्यभारको लागि यसलाई अन वा अफ गरेर प्रयोग गर्नुहोस्।
  • Intel® Turbo Boost ले CPU कोरहरूलाई CPU को आधार फ्रिक्वेन्सी भन्दा उच्च फ्रिक्वेन्सीमा सञ्चालन गर्न अनुमति दिन्छ। Intel® Turbo Boost सक्षम गर्नाले धेरै कार्यभारहरूको लागि कार्यसम्पादन सुधार गर्न सक्छ तर कोरहरूलाई उच्च आवृत्तिमा राख्न बढी पावर खपत हुन्छ। आफ्नो कार्यभारको लागि Turbo Boost लाई बन्द/अन प्रयोग गर्नुहोस्।

नोट
यदि प्लेटफर्मले उच्च समग्र CPU उपयोग अनुभव गरिरहेको छ भने टर्बो फ्रिक्वेन्सीहरूको ग्यारेन्टी हुँदैन। समग्र CPU उपयोग बढ्दै जाँदा उच्च कोर टर्बो फ्रिक्वेन्सीहरू घट्छन्।
5.2 शक्ति व्यवस्थापन
पावर व्यवस्थापनले कार्यसम्पादनलाई असर गर्न सक्छ, विशेष गरी कम विलम्बता कार्यभारहरूमा। यदि कार्यसम्पादन पावर खपत कम गर्नु भन्दा उच्च प्राथमिकता हो भने, Intel ले तपाईंलाई पावर व्यवस्थापनको प्रभावहरू सीमित गर्ने प्रयोग गर्न सिफारिस गर्दछ। अपरेटिङ सिस्टम उपकरणहरू, BIOS सेटिङहरू, र कर्नेल बुट प्यारामिटरहरू मार्फत पावर व्यवस्थापन सीमित गर्ने धेरै फरक तरिकाहरू छन्। आफ्नो वातावरण अनुरूप उत्तम विधि र स्तर छनौट गर्नुहोस्।
५.२.१ सी-स्टेट नियन्त्रण
C-अवस्था प्रवेशलाई CO वा C1 मा सीमित गर्नाले कार्यसम्पादनमा सुधार हुन्छ र शक्ति उपयोग बढ्छ।
CPU प्याकेज C6 स्थिति प्रविष्टि असक्षम गर्नाले नेटवर्क कार्यसम्पादनमा सुधार हुन सक्छ। यद्यपि, यसले पावर प्रयोग बढाउँछ।
निम्न विकल्पहरू उपलब्ध छन्:

  • C-state प्रविष्टिलाई गतिशील रूपमा नियन्त्रण गर्नुहोस्:
    खोल्नुहोस्
    /dev/cpu_dma_latency र यसमा अधिकतम स्वीकार्य विलम्बता लेख्नुहोस्।

नोट
cpudmalatency.c भनिने एउटा सानो प्रोग्राम छ जुन खुला स्रोत समुदायबाट डाउनलोड गर्न सकिन्छ, कम्पाइल गर्न सकिन्छ, र कमाण्ड लाइनबाट चलाउन सकिन्छ।
निम्न पूर्वample ले पाँच μs जाग्ने समयलाई अनुमति दिन्छ, र यसरी C1 प्रविष्टिलाई अनुमति दिन्छ: cpudmalatency 5 &

  • कर्नेल बुट सेटिङहरूमा अधिकतम C-state सीमित गर्नुहोस्:
    इन्टेल सीपीयूहरूको लागि: intel_idle.max_cstates=1
    गैर-इन्टेल CPU हरूको लागि: processor.max_cstates=1
  • CPU C6 स्थिति जाँच गर्न र असक्षम गर्न cpupower आदेश प्रयोग गर्नुहोस्: जाँच गर्नुहोस्: cpupower मनिटर वा cpupower idle-info
    C6 असक्षम पार्नुहोस्: cpupower idle-set -d3 वा
    C-अवस्थाहरू असक्षम पार्नुहोस्: cpupower idle-set -D0

नोट:

  1. यदि सर्भरमा Intel® 4th Gen Intel® Xeon® स्केलेबल प्रोसेसर(हरू) छ भने CPU मा C-states असक्षम पार्नुहोस्। हाइपर थ्रेडिङ सक्षम वा असक्षम पारिएको बेला, निष्क्रिय अवस्थाहरू (-D0) असक्षम पार्नाले निष्क्रिय अवधिहरूमा कोरहरूलाई कम-शक्ति अवस्थाहरूमा प्रवेश गर्नबाट रोक्छ र CPU लाई निष्क्रिय र सक्रिय अवस्थाहरू बीच संक्रमण गर्न विलम्बता कम गर्छ।
  2. Intel® 4th Gen Intel® Xeon® Scalable Processor को पावर व्यवस्थापन अत्यन्तै आक्रामक छ। कोरहरूलाई कम-पावर अवस्थाहरूमा प्रवेश गर्नबाट जोगाउन, प्रयोगमा रहेका कोरहरूको संख्या घटाउने प्रयास गर्नुहोस् ताकि तिनीहरूलाई लामो समयसम्म सक्रिय राखियोस् (ethtool -L संयुक्त )। साथै, सेट irq affinity (प्रायः -x local वा CPU cores को सूचीको साथ) प्रयोग गरेर विशिष्ट कोरहरूमा अवरोधहरू बाँध्नुहोस्, र कार्यभार टास्कसेट वा numactl सँग ती नै कोरहरूमा चल्ने सुनिश्चित गर्नुहोस्। यसले कोरहरूलाई सक्रिय राखेर र अवरोध ह्यान्डलिङलाई अनुकूलन गरेर कार्यसम्पादनमा सुधार गर्छ।

C6 सक्षम पार्नुहोस्:
cpupower निष्क्रिय-सेट -d3
C-अवस्थाहरू सक्षम गर्नुहोस्:
cpupower निष्क्रिय-सेट -E

  • अर्को विधि भनेको कार्यसम्पादन प्रो सेट गर्न ट्युन गरिएको उपकरण (धेरै लिनक्स वितरणहरूसँग समावेश) प्रयोग गर्नु हो।file। यी प्रोfileप्रयोगकर्ताहरूले धेरै OS सेटिङहरू परिमार्जन गर्छन् जसले धेरै अनुप्रयोगहरूमा कार्यसम्पादनलाई असर गर्न सक्छ। यो पत्ता लागेको छ कि नेटवर्क-थ्रुपुट प्रोfile धेरैजसो कार्यभारमा सुधार प्रदान गर्दछ।
    जाँच गर्नुहोस्:
    ट्युन गरिएको-एडएम सक्रिय
    सेट:
    ट्युन गरिएको-एडीएम प्रोfile नेटवर्क-थ्रुपुट
    नोट
    माथिका आदेशहरूको लागि ट्युन गरिएको सेवा चलिरहेको हुनुपर्छ। जाँच/पुन: सुरु गर्न, ट्युन गरिएको: systemctl स्थिति ट्युन गरिएको systemctl रिस्टार्ट ट्युन गरिएको
    तपाईंले कर्नेल बुट लाइनमा निम्न थपेर कुनै पनि C-state प्रविष्टिलाई अस्वीकार गर्न सक्नुहुन्छ:
    निष्क्रिय = मतदान
  • प्रणालीको BIOS पावर व्यवस्थापन सेटिङहरू मार्फत C-state लाई सीमित गर्नुहोस्, जसमा कार्यसम्पादन प्रो हुन सक्छ।file उपलब्ध।
    पावर व्यवस्थापन सेटिङहरू जाँच गर्न वा सेट गर्न टर्बोस्ट्याट वा x86_energy_perf_policy जस्ता उपकरणहरू प्रयोग गर्न सकिन्छ।

५.२.२ PCIe पावर व्यवस्थापन
सक्रिय-स्थिति पावर व्यवस्थापन (ASPM) ले PCIe लिङ्कहरू सक्रिय प्रयोगमा नभएको बेला कम पावर स्थिति सक्षम बनाउँछ। यसले PCIe नेटवर्क उपकरणहरूमा उच्च विलम्बता निम्त्याउन सक्छ, त्यसैले Intel ले तपाईंलाई विलम्बता-संवेदनशील कार्यभारहरूको लागि ASPM असक्षम पार्न सिफारिस गर्दछ। कर्नेल बुट लाइनमा निम्न थपेर ASPM असक्षम गर्नुहोस्: pcie_aspm=off
५.२.३ CPU फ्रिक्वेन्सी स्केलिंग
CPU फ्रिक्वेन्सी स्केलिंग (वा CPU गति स्केलिंग) एक लिनक्स पावर व्यवस्थापन प्रविधि हो जसमा पावर र ताप बचत गर्न प्रणाली घडीको गतिलाई उडानमा समायोजन गरिन्छ। C-अवस्थाहरू जस्तै, यसले नेटवर्क जडानहरूमा अनावश्यक विलम्बता निम्त्याउन सक्छ।
cpupower उपकरण CPU प्रदर्शन पूर्वनिर्धारित र सीमाहरू जाँच गर्न र परिमार्जन गर्न पनि प्रयोग गर्न सकिन्छ:

  • जाँच गर्नुहोस्: cpupower मनिटर वा
  • CPU हरूलाई कार्यसम्पादन मोडमा सेट गर्नुहोस्: cpupower frequency-set -g प्रदर्शन

नोट
CPU फ्रिक्वेन्सी सीमामा गरिएको परिमार्जनले धेरै कार्यभारहरूमा प्रभाव पार्न सक्छ र CPU टर्बो मोड जस्ता अन्य सुविधाहरूलाई असक्षम पार्न सक्छ।
CPU फ्रिक्वेन्सी स्केलिंग असक्षम पार्न, निम्न आदेशहरूद्वारा CPU पावर सेवा असक्षम गर्नुहोस्:
systemctl cpupower.service रोक्नुहोस्
systemctl ले cpupower.service असक्षम पार्छ
५.२.४ अतिरिक्त पावर व्यवस्थापन मार्गदर्शन
यस उच्च-स्तरीय ओभरमा थप विवरणहरू प्रदान गरिएको छview तेस्रो पुस्ताको Intel® Xeon® स्केलेबल प्रोसेसरहरूमा रहेका धेरै पावर व्यवस्थापन सुविधाहरूको बारेमा जानकारी, साथै यी सुविधाहरूलाई प्लेटफर्म स्तरमा कसरी एकीकृत गर्न सकिन्छ भन्ने बारेमा मार्गदर्शन: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
५.३ इन्टेल® टर्बो बूस्ट
Intel® Turbo Boost ले प्रोसेसरलाई आवश्यक पर्दा छिटो बनाउँछ तर अतिरिक्त पावर खपत गर्न सक्छ। Turbo Boost लाई बन्द गर्नाले प्रोसेसरलाई स्थिर गतिमा राख्छ, जसले गर्दा तपाईंलाई विशिष्ट कार्यभारहरूको लागि एकरूप प्रदर्शन स्तर प्राप्त हुन्छ।
५.४ फायरवालहरू
फायरवालहरूले कार्यसम्पादनलाई असर गर्न सक्छन्, विशेष गरी विलम्बता कार्यसम्पादनलाई।
आवश्यक नभएमा iptables/firewalld असक्षम पार्नुहोस्।
5.5 आवेदन सेटिङहरू
प्रायः एउटै थ्रेड (जुन एउटै नेटवर्क क्युसँग मेल खान्छ) अधिकतम ब्यान्डविथ प्राप्त गर्न पर्याप्त हुँदैन। AMD जस्ता केही प्लेटफर्म आर्किटेक्चरहरूले इन्टेल-आधारित प्रोसेसरहरू भएका प्लेटफर्महरूको तुलनामा एउटै थ्रेडको साथ धेरै Rx प्याकेटहरू छोड्ने गर्छन्।
नेटवर्क उपकरणमा स्थानीय NUMA नोड वा CPU कोरहरूमा अनुप्रयोगहरू पिन गर्न टास्कसेट वा numactl जस्ता उपकरणहरू प्रयोग गर्ने विचार गर्नुहोस्। भण्डारण I/O जस्ता केही कार्यभारहरूको लागि, अनुप्रयोगलाई गैर-स्थानीय नोडमा सार्दा फाइदा हुन्छ।
सम्भव भएमा तपाईंको अनुप्रयोगले प्रयोग गर्ने थ्रेडहरूको संख्या बढाउने प्रयोग गर्नुहोस्।
५.६ कर्नेल संस्करण
धेरैजसो आधुनिक इन-बक्स कर्नेलहरू कार्यसम्पादनको लागि उचित रूपमा राम्रोसँग अप्टिमाइज गरिएका छन् तर, तपाईंको प्रयोगको अवस्थामा निर्भर गर्दै, कर्नेल अपडेट गर्नाले सुधारिएको कार्यसम्पादन प्रदान गर्न सक्छ। स्रोत डाउनलोड गर्नाले तपाईंलाई कर्नेल निर्माण गर्नु अघि केही सुविधाहरू सक्षम/असक्षम गर्न पनि सक्षम बनाउँछ।
५.७ अपरेटिङ सिस्टम/कर्नेल सेटिङहरू
सामान्य अपरेटिङ सिस्टम ट्युनिङको बारेमा थप जानकारीको लागि Red Hat Enterprise Linux नेटवर्क प्रदर्शन ट्युनिङ गाइड जस्ता अपरेटिङ सिस्टम ट्युनिङ गाइडहरू हेर्नुहोस्।
ट्युन गर्नका लागि केही सामान्य प्यारामिटरहरू निम्न तालिकामा सूचीबद्ध छन्। ध्यान दिनुहोस् कि यी केवल सुझाव गरिएका सुरुवात बिन्दुहरू हुन्, र तिनीहरूलाई पूर्वनिर्धारितबाट परिवर्तन गर्नाले प्रणालीमा प्रयोग हुने स्रोतहरू बढ्न सक्छ। यद्यपि मानहरू बढाउनाले कार्यसम्पादन सुधार गर्न मद्दत गर्न सक्छ, दिइएको प्रणाली, कार्यभार र ट्राफिक प्रकारको लागि के राम्रो काम गर्छ भनेर निर्धारण गर्न फरक मानहरूसँग प्रयोग गर्न आवश्यक छ।
कर्नेल प्यारामिटरहरू तल संकेत गरिए अनुसार लिनक्समा sysctl उपयोगिता प्रयोग गरेर कन्फिगर गर्न सकिन्छ।
को view प्रणालीमा rmem र wmem को लागि पूर्वनिर्धारित मानहरू:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
मानहरूलाई अधिकतम (१६ एमबी) मा सेट गर्नुहोस्:
sysctl -w net.core.rmem_max=१६७७७२१६
sysctl -w net.core.wmem_max=१६७७७२१६
सकेट बफर आकारहरू, जसलाई रिसीभ बफर (rmem) र ट्रान्समिट बफर (wmem) पनि भनिन्छ, प्रणाली प्यारामिटरहरू हुन् जसले आगमन र बहिर्गमन नेटवर्क ट्राफिकको लागि आरक्षित मेमोरीको मात्रा निर्दिष्ट गर्दछ।
-w आर्गुमेन्ट बिना sysctl चलाउँदा प्यारामिटरलाई यसको हालको सेटिङ सहित सूचीबद्ध गरिन्छ।

स्ट्याक सेटिङ विवरण
नेट.कोर.र्मेम_डिफल्ट पूर्वनिर्धारित प्राप्त विन्डो आकार
नेट.कोर.डब्ल्यूएमईएम_डिफल्ट पूर्वनिर्धारित ट्रान्समिट विन्डो आकार
नेट.कोर.र्मेम_म्याक्स अधिकतम प्राप्त विन्डो आकार
नेट.कोर.डब्ल्यूएमईएम_म्याक्स अधिकतम ट्रान्समिट विन्डो आकार
नेट.कोर.अप्मेटेम_अधिकतम अधिकतम विकल्प मेमोरी बफरहरू
नेट.कोर.नेटदेव_अधिकतम_ब्याकलग कर्नेल खस्न सुरु हुनुभन्दा पहिले प्रशोधन नगरिएका प्याकेटहरूको ब्याकलग
नेट.आईपीभी४.टीसीपी_आरएमईएम TCP पढ्ने बफरहरूको लागि मेमोरी रिजर्भर
नेट.आईपीभी४.टीसीपी_डब्लुएमईएम TCP पठाउने बफरहरूको लागि मेमोरी रिजर्भर

कर्नेल, नेटवर्क स्ट्याक, मेमोरी ह्यान्डलर, CPU गति, र पावर व्यवस्थापन प्यारामिटरहरूले नेटवर्क कार्यसम्पादनमा ठूलो प्रभाव पार्न सक्छन्। एउटा सामान्य सिफारिस भनेको नेटवर्क थ्रुपुट प्रोमा लागू गर्नु हो।file ट्युन गरिएको आदेश प्रयोग गर्दै। यसले नेटवर्किङ अनुप्रयोगहरूलाई प्राथमिकता प्रदान गर्न केही OS सेटिङहरू परिमार्जन गर्दछ।
जाँच गर्नुहोस्:
ट्युन गरिएको-एडएम सक्रिय
सेट:
ट्युन गरिएको-एडीएम प्रोfile नेटवर्क-थ्रुपुट
५.८ नेटवर्क उपकरण ब्याकलग
यो सुविधाले आगमन ट्राफिकलाई प्रभावकारी रूपमा व्यवस्थापन गरेर, प्याकेट हानि कम गरेर, विलम्बता कम गरेर, र थ्रुपुट बढाएर नेटवर्क कार्यसम्पादन सुधार गर्न मद्दत गर्दछ। यसले राम्रो प्रयोगकर्ता अनुभव र छिटो प्रणाली प्रतिक्रिया निम्त्याउँछ।
पूर्वनिर्धारित रूपमा, यो धेरैजसो लिनक्स अपरेटिङ सिस्टमहरूमा सक्षम हुन्छ। पूर्वनिर्धारित मान जाँच गर्न:
sysctl net.core.netdev_max_backlog
netdev_max_backlog को लागि अधिकतम मान कर्नेल संस्करण, हार्डवेयर, मेमोरी, र कार्यभार जस्ता कारकहरूमा निर्भर गर्दछ। धेरै अवस्थामा, 8192 लाई राम्रो मानको रूपमा हेरिन्छ। sysctl -w net.core.netdev_max_backlog=8192
५.९ प्लेटफर्म-विशिष्ट कन्फिगरेसन र ट्युनिङ
५.९.१ चौथो पुस्ताको Intel® Xeon® स्केलेबल प्रोसेसरहरू

Intel® चौथो पुस्ताको Intel® Xeon® स्केलेबल प्रोसेसरको पावर व्यवस्थापन तेस्रो पुस्ताको Intel® 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. C-अवस्थाहरू असक्षम पार्नुहोस्। 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 संयुक्त ३२
  2. अवरोध मोडरेसन दरहरू सेट गर्नुहोस्। ethtool -C अनुकूली-rx बन्द अनुकूली-tx बन्द rx-usecs-उच्च ५० rx-usecs ५० tx-usecs ५०
    कार्यभारको लागि इष्टतम मान फेला पार्न ट्रान्समिट/रिसीभ/उच्च-प्राथमिकता कोलेसिङ टाइमर उच्च (८०/१००/१५०/२००) वा कम (२५/२०/१०/५) समायोजन गर्ने प्रयास गर्नुहोस्।
  3. Rx/Tx रिङ साइजहरू सेट गर्नुहोस्। ethtool -G आरएक्स ४०९६ टेक्स ४०९६
    नोट
    यदि तपाईंले ethtool -S| grep drop सँग Rx प्याकेट ड्रप देख्नुभयो भने, रिंग साइज <4096 मा घटाउने प्रयास गर्नुहोस्। प्याकेटहरू नछोडिएको कार्यभारको लागि इष्टतम मान फेला पार्ने प्रयास गर्नुहोस्।
  4. IRQ एफिनिटी सेट गर्नुहोस्। NIC मा स्थानीय कोरहरू प्रयोग गर्नुहोस्, वा विशिष्ट कोर म्यापिङ (जहाँ # कोरहरू पृष्ठ २६ मा १ मा सेट गरिएका क्युहरूको संख्या बराबर हुन्छ)। systemctl रोक्नुहोस् irqbalance set_irq_affinity -X स्थानीय वा सेट_इरक्यू_एफिनिटी -X

५.९.२ एएमडी ईपीवाईसी
AMD EPYC प्रोसेसरहरू सर्भर र डेटा केन्द्रहरूको लागि बनाइएका शक्तिशाली CPU हरू हुन्, जुन AMD को जेन आर्किटेक्चरमा निर्मित छन्। तलका सेटिङहरू AMD को चौथो पुस्ताको EPYC श्रृंखलाका हुन्।
उच्चतम प्रदर्शनको लागि सिफारिस गरिएका BIOS सेटिङहरू

  1. प्रयोगकर्ताहरूलाई CPU कार्यसम्पादन, पावर खपत, र अन्य सेटिङहरू समायोजन गर्न अनुमति दिन अनुकूलन मोड सक्षम गर्नुहोस्। यसले कार्यसम्पादन र ऊर्जा दक्षता बीचको उत्तम सन्तुलनको लागि प्रणालीलाई फाइन-ट्युन गर्न मद्दत गर्दछ।
  2. समग्र कार्यसम्पादनमा सुधार गर्दै, CPU लाई थप गहन कार्यहरू ह्यान्डल गर्न स्वचालित रूपमा यसको गति बढाउन अनुमति दिन कोर कार्यसम्पादन बूस्ट सक्षम गर्नुहोस्।
  3. CPU लाई C-स्टेट भनेर चिनिने गहिरो पावर बचत अवस्थाहरूमा प्रवेश गर्नबाट रोक्नको लागि विश्वव्यापी C-स्टेट नियन्त्रण असक्षम पार्नुहोस्, जसले प्रतिक्रियाशीलता कायम राख्न सक्छ।
    नोट
    C-स्टेटहरू असक्षम पार्नाले अतिरिक्त बिजुली खपत हुन सक्छ र थर्मल तापक्रम बढ्न सक्छ। कार्यभारको लागि दुवैको निगरानी गर्नुहोस्।
  4. कार्यभार आवश्यकता र कार्यसम्पादन लक्ष्यहरूको आधारमा CPU मा सिमल्टेनियस मल्टिथ्रेडिङ (SMT) सक्षम/असक्षम गर्नुहोस्। SMT इन्टेल CPU हरूमा हाइपर थ्रेडिङको बराबर हो।
    नोट
    अनुकूलित कार्यसम्पादनको लागि, सिफारिस गरिएको OS र एडाप्टर स्तर ट्युनिङको लागि पृष्ठ १३ मा ट्युनिङ i40e ड्राइभर सेटिङहरू र पृष्ठ १९ मा प्लेटफर्म ट्युनिङ (i13e गैर-विशिष्ट) हेर्नुहोस्।

एडाप्टर बन्धन

लिनक्स बन्डिङ एक शक्तिशाली सुविधा हो जसले सर्भर वातावरणमा नेटवर्क कार्यसम्पादन, रिडन्डन्सी, र गल्ती सहनशीलतामा उल्लेखनीय सुधार गर्न सक्छ। यद्यपि, यो ध्यान दिनु महत्त्वपूर्ण छ कि यसलाई राम्रोसँग काम गर्नको लागि उपयुक्त नेटवर्क हार्डवेयर र सर्भर र स्विच दुवैमा उचित कन्फिगरेसन आवश्यक पर्दछ।
लिनक्समा रहेको बन्डिङ ड्राइभरले तपाईंलाई धेरै भौतिक नेटवर्क इन्टरफेसहरूलाई बन्डेड इन्टरफेसमा एकत्रित गर्न अनुमति दिन्छ। यो बन्डेड इन्टरफेस अपरेटिङ सिस्टम र अनुप्रयोगहरूमा एकल भर्चुअल नेटवर्क इन्टरफेसको रूपमा देखा पर्दछ।
नोट
बन्ड एक तार्किक इन्टरफेस हो, त्यसैले बन्ड इन्टरफेसमा सिधै CPU एफिनिटी सेट गर्न सम्भव छैन (उदाहरणका लागिample, bond0)। अर्थात्, यसको अवरोध ह्यान्डलिङ वा CPU एफिनिटीमा कुनै प्रत्यक्ष नियन्त्रण छैन। CPU एफिनिटी बन्डको भाग भएका अन्तर्निहित इन्टरफेसहरूको लागि कन्फिगर गरिएको हुनुपर्छ।
बन्धनले सञ्चालनका धेरै मोडहरू प्रदान गर्दछ, प्रत्येकको आफ्नै विशेषताहरू छन्।

मोड  टाइप गर्नुहोस्
0 राउन्ड रोबिन
1 सक्रिय ब्याकअप
2 XOR
3 प्रसारण
4 LACP
5 लोड ब्यालेन्स ट्रान्समिट गर्नुहोस्
6 अनुकूलनीय भार सन्तुलन

लिनक्समा बन्डिङ सिर्जना गर्ने विभिन्न तरिकाहरू छन्। सबैभन्दा सामान्य तरिकाहरू मध्ये एक नेटवर्क कन्फिगरेसन प्रयोग गर्नु हो। 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=२००.२०.२.४ [यदि BOOTPROTO=कुनै पनि होइन भने आवश्यक छ] NETMASK=२५५.२५५.२५५.० [यदि BOOTPROTO=कुनै पनि होइन भने आवश्यक छ] NETWORK=२००.२०.२.० [यदि BOOTPROTO=कुनै पनि होइन भने आवश्यक छ] BROADCAST=२००.२०.२.२५५ [यदि BOOTPROTO=कुनै पनि होइन भने आवश्यक छ] BONDING_OPTS=”mode=१ miimon=१००″
    नोट
    आवश्यकताको आधारमा मोड ० देखि ६ सम्मको कुनै पनि पूर्णांक हुन सक्छ।
  4. सेवा नेटवर्क रिस्टार्ट वा systemctl रिस्टार्ट प्रयोग गरेर नेटवर्क सेवाहरू पुन: सुरु गर्नुहोस् NetworkManager.service

प्रदर्शन समस्या निवारण

७.१ CPU उपयोगिता
कार्यभार चलिरहेको बेला प्रति कोर CPU उपयोग जाँच गर्नुहोस्।
ध्यान दिनुहोस् कि प्रति कोर उपयोग समग्र CPU उपयोग भन्दा कार्यसम्पादनसँग बढी सान्दर्भिक छ किनकि यसले प्रति नेटवर्क क्यु CPU उपयोगको विचार प्रदान गर्दछ। यदि तपाईंसँग नेटवर्क ट्राफिक चलाउने केही थ्रेडहरू मात्र छन् भने, तपाईंसँग केही कोरहरू मात्र प्रयोग भइरहेको हुन सक्छ। यद्यपि, यदि ती कोरहरू १००% मा छन् भने, तपाईंको नेटवर्क थ्रुपुट सम्भवतः CPU उपयोगद्वारा सीमित छ र यो निम्न कार्यहरू गर्ने समय हो:

  1. इन्टरप्ट मोडरेसनमा विस्तृत रूपमा वर्णन गरिए अनुसार IRQ मोडरेसन/रिङ साइज ट्युन गर्नुहोस्।
  2. CPU लोडलाई धेरै कोरहरूमा फैलाउन एप्लिकेसन थ्रेडहरूको संख्या बढाउनुहोस्। यदि सबै कोरहरू १००% मा चलिरहेका छन् भने तपाईंको एप्लिकेसन नेटवर्क बाउन्डको सट्टा CPU बाउन्ड हुन सक्छ।

सामान्यतया उपलब्ध उपकरणहरू:

  • शीर्ष
    — CPU हरूको सूची विस्तार गर्न र कुन प्रयोग भइरहेको छ भनेर जाँच गर्न १ थिच्नुहोस्।
    — उपयोगको स्तरलाई ध्यान दिनुहोस्।
    — कुन प्रक्रियाहरू सबैभन्दा सक्रिय (सूचीको शीर्षमा) सूचीबद्ध छन् भन्ने कुरामा ध्यान दिनुहोस्।
  • mpstat
    निम्न पूर्वample कमाण्ड लाइन Red Hat Enterprise Linux 7.x मा परीक्षण गरिएको थियो।
    यसले प्रति कोर CPU उपयोग देखाउँछ (कुल प्रतिशत निष्क्रिय फेला पारेर र १०० बाट घटाएर) र ८०% भन्दा माथिको मानलाई रातो रंगमा हाइलाइट गर्दछ। mpstat -P ALL 100 80 | grep -v औसत | tail -n +1 | head -n -1 | awk '{ print (5-$1)}' | egrep -color=always '[^\.][100-13][8-9][\.]?.*|^[0-9][8-9][\.]?.*| १००|' | स्तम्भ
  • perf top चक्र कहाँ खर्च भइरहेको छ भनेर हेर्नुहोस्।

७.२ 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 बाट आउटपुट लिनक्स अपरेटिङ सिस्टम वा कर्नेलमा कार्यसम्पादन समस्याहरूको राम्रो सूचक हुन सक्छ। सामान्य अपरेटिङ सिस्टम ट्युनिङको बारेमा थप जानकारीको लागि Red Hat Enterprise Linux नेटवर्क प्रदर्शन ट्युनिङ गाइड जस्ता अपरेटिङ सिस्टम ट्युनिङ गाइडहरू हेर्नुहोस्।
७.४ प्रणाली लगहरू
त्रुटि र चेतावनीको लागि प्रणाली लगहरू जाँच गर्नुहोस् (/var/log/messages, dmesg)।
७.५ इन्टेल एसभीआर-जानकारी उपकरण
इन्टेलले svr-info उपकरण प्रदान गर्दछ (हेर्नुहोस् https://github.com/intel/svr-info) सर्भरबाट सान्दर्भिक हार्डवेयर र सफ्टवेयर विवरणहरू खिच्ने लिनक्सको लागि। svr-info आउटपुट कार्यभारको लागि अनुकूलित नभएका प्रणाली अवरोधहरू वा सेटिङहरू/ट्युनिङहरू पहिचान गर्न अत्यन्त उपयोगी हुन सक्छ। इथरनेट-सम्बन्धित कार्यसम्पादन समस्याहरूको लागि Intel सँग समर्थन केस खोल्दा, svr-info आउटपुट (पाठ) समावेश गर्न निश्चित गर्नुहोस्। file) परीक्षण कन्फिगरेसनमा प्रत्येक लिनक्स सर्भरको लागि।

  1. svr-info डाउनलोड र स्थापना गर्नुहोस्:
    विजेट -क्यूओ- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| टार xvz सीडी svr-जानकारी
    ./svr-जानकारी
    > होस्टनाम.txt
  2. आउटपुट सङ्कलन गर्नुहोस्:
    ./svr-info > होस्टनेम.txt
  3. एउटा पाठ (.txt) संलग्न गर्नुहोस् file विश्लेषणको लागि तपाईंको Intel समर्थन केसमा प्रत्येक सर्भरको लागि।

साझा कार्यसम्पादन परिदृश्यहरूको लागि सिफारिसहरू

८.१ आईपी फर्वार्डिङ

  • कर्नेल अपडेट गर्नुहोस्।
    सुरक्षाको कारणले गर्दा राउटिङ क्यास हटाउनेदेखि सुरु हुने राउटिङ कोडमा कर्नेल परिवर्तनहरूका कारण केही हालसालैका इन-डिस्ट्रो कर्नेलहरूले राउटिङ कार्यसम्पादन घटाएका छन्। हालसालैका आउट-अफ-डिस्ट्रो कर्नेलहरूमा प्याचहरू हुनुपर्छ जसले यी परिवर्तनहरूको कार्यसम्पादन प्रभावलाई कम गर्छ र सुधारिएको कार्यसम्पादन प्रदान गर्न सक्छ।
  • हाइपर-थ्रेडिङ (तार्किक कोर) असक्षम पार्नुहोस्।
  • कर्नेल बुट प्यारामिटरहरू सम्पादन गर्नुहोस्।
    — भर्चुअलाइजेसनको लागि आवश्यक नभएसम्म कर्नेल बुट लाइनबाट iommu लाई जबरजस्ती बन्द गर्नुहोस् (intel_iommu=off वा iommu=off)
    — पावर व्यवस्थापन बन्द गर्नुहोस्: processor.max_cstates=1 idle=poll pcie_aspm=off
  • स्थानीय सकेटमा कोरहरूको संख्या बराबर हुने गरी लामहरूको संख्या सीमित गर्नुहोस् (यस उदाहरणमा १२)ample)। ethtool -L ethX संयुक्त 12
  • स्थानीय सकेटमा मात्र पिन अवरोधहरू। set_irq_affinity -X स्थानीय ethX OR 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 फायरवालड रोक्नुहोस्
  • IP फर्वार्डिङ सक्षम गर्नुहोस्। sysctl -w net.ipv4.ip_forward=1
  • प्राप्त र पठाउनुहोस् सकेट बफर आकारहरूको लागि अधिकतम मानहरू कन्फिगर गर्नुहोस्। sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

नोट
कार्यभार वा आवश्यकतामा निर्भर गर्दै, यी मानहरू पूर्वनिर्धारितबाट परिवर्तन गर्न सकिन्छ।
८.२ कम विलम्बता

  • हाइपर-थ्रेडिङ (तार्किक कोर) बन्द गर्नुहोस्।
  • नेटवर्क उपकरण नुमा कोर ० मा स्थानीय छ भनी सुनिश्चित गर्नुहोस्।
  • टास्कसेट -c ० प्रयोग गरेर बेन्चमार्कलाई कोर ० मा पिन गर्नुहोस्।
  • systemctl प्रयोग गरेर irqbalance बन्द गर्नुहोस् irqbalance रोक्नुहोस् वा systemctl प्रयोग गरेर irqbalance असक्षम गर्नुहोस्
  • कोरहरूमा फैलाउन एफिनिटी स्क्रिप्ट चलाउनुहोस्। स्थानीय वा सबै प्रयास गर्नुहोस्।
  • अवरोध मोडरेसन बन्द गर्नुहोस्। ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptible-rx adaptible-tx off rxusecs- high 0
  • स्थानीय सकेटमा कोरहरूको संख्या बराबर हुने लामहरूको संख्या सीमित गर्नुहोस् (यस उदाहरणमा ३२)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

इन्टेल ® इथरनेट ७०० शृङ्खला
लिनक्स प्रदर्शन ट्युनिङ गाइड
डिसेम्बर २०२२
कागजात नम्बर: ३३४०१९, प्रकाशन: १.२

कागजातहरू / स्रोतहरू

इन्टेल इथरनेट ७०० सिरिज लिनक्स प्रदर्शन ट्युनिङ [pdf] प्रयोगकर्ता गाइड
३३४०१९, इथरनेट ७०० सिरिज लिनक्स पर्फर्मेन्स ट्युनिङ, इथरनेट ७०० सिरिज, लिनक्स पर्फर्मेन्स ट्युनिङ, पर्फर्मेन्स ट्युनिङ, ट्युनिङ

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *