इंटेल लोगोइंटेल ® इथरनेट ७०० मालिका
लिनक्स परफॉर्मन्स ट्यूनिंग गाइड
नेक्स क्लाउड नेटवर्किंग ग्रुप (एनसीएनजी)
रेव्ह. 1.2
डिसेंबर २०२०

पुनरावृत्ती इतिहास

उजळणी तारीख टिप्पण्या
1.2 डिसेंबर २०२० · अतिरिक्त पॉवर व्यवस्थापन मार्गदर्शन जोडले.
· इंटेल* टर्बो बूस्ट जोडले.
· नेटवर्क डिव्हाइस बॅकलॉग जोडला.
· प्लॅटफॉर्म-विशिष्ट कॉन्फिगरेशन आणि ट्यूनिंग जोडले.
· चौथ्या पिढीतील इंटेल* %eon* स्केलेबल प्रोसेसर जोडले.
· AMD EPYC जोडले.
· अपडेटेड चेक सिस्टम हार्डवेअर क्षमता.
· अपडेट केलेले iPerf2.
· अपडेट केलेले iPerf3.
· अपडेट केलेल्या कर/कर रांगा.
· अपडेट केलेले इंटरप्ट मॉडरेशन.
· अपडेटेड रिंग साईज.
· अपडेटेड प्लॅटफॉर्म ट्यूनिंग (i40e नॉन-स्पेसिफिक).
· अपडेट केलेल्या BIOS सेटिंग्ज.
· अपडेटेड सी-स्टेट कंट्रोल.
· अपडेटेड CPU फ्रिक्वेन्सी स्केलिंग.
· अपडेट केलेल्या अॅप्लिकेशन सेटिंग्ज.
· अपडेटेड ऑपरेटिंग सिस्टम/कर्नल सेटिंग्ज.
· अपडेटेड आयपी फॉरवर्डिंग.
· कमी विलंब अपडेट केला.
ऑगस्ट २०२४ या दस्तऐवजात बदल समाविष्ट आहेत:
· संबंधित संदर्भ जोडले.
· जोडले DDP पॅकेज योग्यरित्या लोड होत आहे याची खात्री करा.
· iPerf2 जोडले.
· iPerf3 जोडले.
· नेटपरफ जोडले.
· अपडेटेड IRQ अ‍ॅफिनिटी.
· Tx/Rx रांगा जोडल्या.
· अपडेटेड रिंग साईज.
· जंबो फ्रेम्स जोडल्या.
· अ‍ॅडॉप्टर बाँडिंग जोडले.
· इंटेल एसव्हीआर-इन्फो टूल जोडले.
1.0 मार्च २०२३ प्रारंभिक प्रकाशन (इंटेल पब्लिक).

परिचय

हे मार्गदर्शक लिनक्स वातावरणात इंटेल ® इथरनेट 700 सिरीज एनआयसी वापरून इष्टतम नेटवर्किंग कामगिरीसाठी वातावरण ट्यूनिंगसाठी मार्गदर्शन प्रदान करण्यासाठी आहे. हे हार्डवेअर, ड्रायव्हर आणि ऑपरेटिंग सिस्टमच्या परिस्थिती आणि सेटिंग्जवर लक्ष केंद्रित करते जे नेटवर्क कामगिरी सुधारू शकतात. हे लक्षात घेतले पाहिजे की नेटवर्किंग कामगिरीवर कोणत्याही बाह्य प्रभावांचा परिणाम होऊ शकतो, यापैकी फक्त सर्वात सामान्य आणि नाट्यमय प्रभाव या मार्गदर्शकामध्ये समाविष्ट आहेत.
१.१ संबंधित नियमावली

प्रारंभिक चेकलिस्ट

२.१ ड्रायव्हर/फर्मवेअर आवृत्त्या अपडेट करा
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.
२.५ डीडीपी पॅकेज योग्यरित्या लोड होत आहे याची खात्री करा.
१४०ea आणि १४०eb बेस ड्रायव्हर्सना डायनॅमिक डिव्हाइस पर्सनलायझेशन (DDP) साठी थेट समर्थन नाही. ७०० सिरीज डिव्हाइसेससह DDP वापरण्यासाठी, DDP प्रोfile testpmd अर्जासह अर्ज करता येतो.
डीडीपी प्रो बद्दल अधिक माहितीसाठीfiles, आणि DDP प्रो कसे लागू करावेfile ७०० सिरीज डिव्हाइसेसवर testpmd सह, Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) तंत्रज्ञान मार्गदर्शक पहा.
डीडीपी प्रो आहे का ते पडताळण्यासाठीfile यशस्वीरित्या लोड केले:
testpmd> ddp गेट लिस्ट 0 प्रोfile संख्या आहे: १
टीप
तर प्रोfile संख्या ० आहे, कोणताही DDP पॅकेज लोड केलेला नाही. DDP पॅकेज लोड त्रुटी आढळल्यास, डिव्हाइस सुरक्षित मोडवर डीफॉल्ट होते आणि अनेक कार्यप्रदर्शन वैशिष्ट्ये उपलब्ध नसतात. DDP पॅकेज लोड करण्याशी संबंधित त्रुटी असल्यास, त्यामुळे कार्यप्रदर्शन समस्या उद्भवतील. समस्यानिवारण चरणांसाठी, Inte/* Ethernet 0 Series Dynamic Device Personalization (DDP) तंत्रज्ञान मार्गदर्शक पहा.

बेसलाइन कामगिरी मोजमाप आणि ट्यूनिंग पद्धत

३.१ नेटवर्क कामगिरी बेंचमार्क
ट्यूनिंग व्यायाम सुरू करण्यापूर्वी, तुमच्या नेटवर्क कामगिरीचे चांगले बेसलाइन मापन करणे महत्वाचे आहे. सहसा तुमच्या विशिष्ट अनुप्रयोग/वर्कलोडच्या कामगिरीचे प्रारंभिक मापन मिळविण्याव्यतिरिक्त, तुमचे नेटवर्क डिव्हाइस चांगल्या स्थितीत आहे याची पडताळणी करण्यासाठी मानक नेटवर्क कामगिरी बेंचमार्क वापरणे देखील चांगली कल्पना आहे.
सिंगल सिस्टम ऑप्टिमायझेशनसाठी, netperf किंवा iperf आणि NetPIPE ही सर्व सॉलिड ओपनसोर्स फ्री टूल्स आहेत जी तुम्हाला कनेक्शनवर ताण देण्यास आणि कार्यप्रदर्शन समस्यांचे निदान करण्यास सक्षम करतात.
नेटपर्फ थ्रूपुट आणि लेटन्सी चाचणी दोन्हीसाठी मजबूत आहे. नेटपीआयपीई हे लेटन्सी-विशिष्ट साधन आहे परंतु ते कोणत्याही प्रकारच्या वातावरणासाठी संकलित केले जाऊ शकते.
टीप
netperf मधील TCP_RR चाचणी व्यवहार/सेकंद या मूल्यात विलंब मिळवते. ही एक राउंड-ट्रिप संख्या आहे. खालील समीकरण वापरून एक-मार्गी विलंब मोजता येतो:
विलंब (usec) = (1⁄2) / [व्यवहार/सेकंद] * १,०००,०००
३.१.१ आयपरएफ२
एकाच अॅप्लिकेशनच्या बाबतीत वापरण्यास सोपी आणि अनेक थ्रेड्सना समर्थन मिळाल्यामुळे बहुतेक बेंचमार्किंग परिस्थितींमध्ये इंटेल 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-duplex आणि -d दोन्ही पर्याय वापरकर्त्याला द्विदिशात्मक चाचणी करण्याची परवानगी देतात. तथापि, –full-duplex पर्याय विशेषतः पूर्ण डुप्लेक्स चाचणीवर लक्ष केंद्रित करतो.
टीप
अनेक सर्व्हर पोर्टवर iperf2 ची चाचणी करताना, एकाच टर्मिनल विंडोमधून पार्श्वभूमीत सर्व सर्व्हर सत्रे चालविण्यासाठी -d ध्वज सर्व्हर कमांडमध्ये जोडला जाऊ शकतो. जेव्हा सर्व्हर कमांड स्क्रिप्टमधील फॉर-लूपमध्ये एम्बेड केला जातो तेव्हा -d ध्वज देखील वापरला जाऊ शकतो.
टीप
एकाच स्ट्रीम/थ्रेडसह नेटवर्क थ्रूपुट चाचणी चालवताना (उदा.ample: P1), AMD प्रोसेसर अपेक्षित थ्रूपुट प्रदान करू शकत नाहीत, विशेषतः उच्च बँडविड्थ NICs (जर गती >= 25G बँडविड्थ असेल). परिणामी, उच्च थ्रूपुट प्राप्त करण्यासाठी विशिष्ट कोरवर अनुप्रयोग पिन करणे आवश्यक आहे. पृष्ठ 22 वरील अनुप्रयोग सेटिंग्ज पहा.
३.१.१ आयपरएफ२
जर iperf3 वापरला असेल, तर अॅडव्हान्स घेण्यासाठी अॅप्लिकेशनच्या अनेक उदाहरणांची आवश्यकता असेल.tagमल्टी-थ्रेड्स, आरएसएस आणि हार्डवेअर क्यूजपैकी ई. इंटेल २५ जी कनेक्शनसाठी २-४ अॅप्लिकेशन सेशन्स आणि ४० जी कनेक्शनसाठी सुमारे ४-६ सेशन्स चालवण्याची शिफारस करते. प्रत्येक सेशनने -p पर्याय वापरून एक अद्वितीय टीसीपी पोर्ट व्हॅल्यू निर्दिष्ट करावी.

  • क्लायंट ते सर्व्हर पर्यंत एक-दिशात्मक रहदारी चालविण्यासाठी:
    सर्व्हर कमांड एक्सampले:
    iperf3 -s -p
    क्लायंट कमांड एक्सampले:
    iperf3 -c द्वारे -पी
  • क्लायंट ते सर्व्हर (आणि उलट) पर्यंत द्वि-दिशात्मक रहदारी चालविण्यासाठी:
    सर्व्हर कमांड एक्सampले:
    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 &”; done; क्लायंट कमांड example, ४ थ्रेड्स सुरू करा - चाचणी पोर्ट=”” ट्रान्समिट करा; {4..0} मध्ये i साठी; पोर्ट=3$i करा; bash -c “iperf520 -c $serverIP -p $port &”; झाले; क्लायंट कमांड example, 4 थ्रेड्स सुरू करा – चाचणी पोर्ट प्राप्त करा=””; {0..3} मध्ये i साठी; 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: नेटसर्व्हर क्लायंट कमांड उदाampले: नेटपरफ -टी टीसीपी_स्ट्रीम -एल ३० -एच
  • netperf मधील TCP_RR चाचणी व्यवहार/सेकंद या मूल्यात विलंब परत करते. ही एक राउंड-ट्रिप संख्या आहे. जर x डिव्हाइसवर स्थानिक CPU असेल तर -T x,x पर्याय वापरण्याची शिफारस केली जाते. एक-मार्गी विलंबता वापरून मोजता येते: Latency(usec)=(1⁄2)/ [व्यवहार/सेकंद]*1,000,\ सर्व्हर कमांड exampले: नेटसर्व्हर
    क्लायंट कमांड एक्सampले: नेटपरफ -टी TCP_RR -l 30 -H -ट x,x
  • नेटपरफचे अनेक उदाहरणे (थ्रेड्स) सुरू करण्यासाठी, थ्रेड्सना TCP पोर्टवर मॅप करण्यासाठी फॉर-लूप वापरण्याची शिफारस केली जाते आणि समांतरपणे अनेक प्रक्रिया तयार करण्यासाठी & वापरून पार्श्वभूमीत नेटपरफ चालवण्याची शिफारस केली जाते.
    सर्व्हर कमांड एक्सampले, ८ धागे सुरू करा:
    पोर्ट=””; {0..7} मध्ये i साठी; पोर्ट=520$i करा; बॅश -सी “नेटसर्व्हर -एल $सर्व्हरआयपी -पी $पोर्ट &”; पूर्ण झाले;
    क्लायंट कमांड एक्सample, 8 थ्रेड सुरू करा: port=””; {0..7} मध्ये i साठी; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; झाले;

३.२ ट्यूनिंग पद्धत
एका वेळी एका ट्यूनिंग बदलावर लक्ष केंद्रित करा जेणेकरून तुम्हाला कळेल की प्रत्येक बदल तुमच्या चाचणीवर काय परिणाम करतो. ट्यूनिंग प्रक्रियेत तुम्ही जितके अधिक पद्धतशीर असाल तितके कामगिरीतील अडथळ्यांची कारणे ओळखणे आणि त्यांचे निराकरण करणे सोपे होईल.

i40e ड्रायव्हर सेटिंग्ज ट्यून करत आहे

४.१ आयआरक्यू अ‍ॅफिनिटी
वेगवेगळ्या नेटवर्क क्यूसाठी इंटरप्ट्स वेगवेगळ्या CPU कोरशी संलग्न होतील अशा प्रकारे IRQ अ‍ॅफिनिटी कॉन्फिगर केल्याने कामगिरीवर, विशेषतः मल्टीथ्रेड थ्रूपुट चाचण्यांवर मोठा परिणाम होऊ शकतो.
IRQ अ‍ॅफिनिटी कॉन्फिगर करण्यासाठी, irqbalance थांबवा आणि नंतर i40e सोर्स पॅकेजमधील set_irq_affinity स्क्रिप्ट वापरा किंवा क्यू मॅन्युअली पिन करा. क्यू पिनिंग सक्षम करण्यासाठी युजर-स्पेस IRQ बॅलन्सर अक्षम करा:

  • systemctl irqbalance अक्षम करा
  • systemctl थांबवा irqbalance
    i40e सोर्स पॅकेजमधील set_irq_affinity स्क्रिप्ट वापरणे (शिफारस केलेले):
  • सर्व कोर वापरण्यासाठी:
    [i40epackage चा मार्ग]/स्क्रिप्ट्स/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 ट्रॅफिक एकाच रांगेच्या जोडीवर सर्व्हिस केल्यावर सर्वोत्तम कामगिरी प्राप्त होते.
लिनक्समध्ये सममितीय रांगा कॉन्फिगर करण्यामध्ये समर्थित नेटवर्क अडॅप्टर्ससाठी सममितीय प्राप्त रांगा (Rx) आणि सममितीय ट्रान्समिट रांगा (Tx) सक्षम करण्यासाठी नेटवर्क इंटरफेस ड्रायव्हर पॅरामीटर्स ट्यून करणे समाविष्ट आहे.
टीप

  • सममितीय रांगा ही एक प्रगत नेटवर्किंग वैशिष्ट्य आहे आणि सर्व ७०० मालिका नेटवर्क अडॅप्टर किंवा ड्राइव्हर्स त्यांना समर्थन देत नाहीत.
  • सममितीय रांगा कॉन्फिगर करण्याचा प्रयत्न करण्यापूर्वी तुमच्याकडे आवश्यक ड्रायव्हर आणि हार्डवेअर सपोर्ट असल्याची खात्री करा.

सममितीय रांगा कॉन्फिगर करण्यासाठी, या सामान्य चरणांचे अनुसरण करा:

  1. नेटवर्क इंटरफेस कॉन्फिगरेशन संपादित करा File: टेक्स्ट एडिटर वापरा (उदा.ampनेटवर्क इंटरफेस कॉन्फिगरेशन संपादित करण्यासाठी) 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 ड्रायव्हर आवृत्ती 2.16.11 आणि नंतरच्या आवृत्तींमध्ये -s फ्लॅगला समर्थन देते.
४.२ रुपये/रुबल रांगा
इनिशिएलायझेशनच्या वेळी ड्रायव्हरने प्रत्येक इथरनेट पोर्टसाठी सक्षम केलेल्या क्यूंची डीफॉल्ट संख्या प्लॅटफॉर्ममध्ये उपलब्ध असलेल्या एकूण 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
एकत्रित: ९६
सध्याच्या हार्डवेअर सेटिंग्ज:
RX: 0
TX: 0
इतर: 1
एकत्रित: ९६
४.३ मध्यस्थीमध्ये व्यत्यय आणणे
अ‍ॅडॉप्टिव्ह इंटरप्ट मॉडरेसन बाय डीफॉल्ट चालू असते आणि कमी CPU वापर आणि उच्च कार्यक्षमतेमध्ये संतुलित दृष्टिकोन प्रदान करण्यासाठी डिझाइन केलेले असते. तथापि, तुम्ही तुमच्या वापराच्या बाबतीत फिट होण्यासाठी इंटरप्ट सेटिंग्ज मॅन्युअली ट्यून करण्याचा प्रयत्न करू शकता.
०-२३५ मायक्रोसेकंदांची श्रेणी प्रति सेकंद ४,३१० ते २५०,००० इंटरप्ट्सची प्रभावी श्रेणी प्रदान करते. rx-μsecs-high चे मूल्य समान ethtool कमांडमध्ये rx-μsecs आणि tx-μsecs पेक्षा स्वतंत्रपणे सेट केले जाऊ शकते आणि ते अ‍ॅडॉप्टिव्ह इंटरप्ट मॉडरेसन अल्गोरिथमपासून देखील स्वतंत्र आहे. अंतर्निहित हार्डवेअर २ मायक्रोसेकंद अंतरालमध्ये ग्रॅन्युलॅरिटीला समर्थन देते, म्हणून समीप मूल्ये समान इंटरप्ट रेटमध्ये परिणाम करू शकतात.

  • अ‍ॅडॉप्टिव्ह इंटरप्ट मॉडरेसन बंद करण्यासाठी: ethtool -C ethX अ‍ॅडॉप्टिव्ह-आरएक्स ऑफ अ‍ॅडॉप्टिव्ह-टीएक्स ऑफ
  • अ‍ॅडॉप्टिव्ह इंटरप्ट मॉडरेसन चालू करण्यासाठी: ethtool -C ethX अ‍ॅडॉप्टिव्ह-rx ऑन अ‍ॅडॉप्टिव्ह-tx ऑन

सामान्य ट्यूनिंगसाठी सुरुवात करण्यासाठी चांगली जागा म्हणजे ८४ μ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).
  • इंटरप्ट मॉडरेशन इंटरप्ट्समधील 62 युसेक (16000 इंटरप्ट्स/सेक) च्या निश्चित इंटरप्ट रेटवर सेट करण्यासाठी. ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    जर ट्रॅफिक दरम्यान 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 पॅरामीटर समाविष्ट करण्याचा विचार करा. खालील कमांड अ‍ॅडॉप्टिव्ह इंटरप्ट मॉडरेशन अक्षम करते आणि रिसीव्ह किंवा ट्रान्समिट पूर्ण झाल्याचे दर्शविण्यापूर्वी जास्तीत जास्त 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_dropped मध्ये वाढ टाळण्यासाठी ethtool -C द्वारे इंटरप्ट रेटमध्ये वाढ करणे आवश्यक असू शकते हे लक्षात ठेवून.
  • रिंगचा आकार निश्चित मूल्यावर सेट करण्यासाठी: ethtool -G eth12 rx 256 tx 256

टीप
ethtool -S ethX|grep ड्रॉपसह आढळणारे Rx पॅकेट ड्रॉप दुरुस्त करण्यासाठी, रिंगचा आकार 4096 पर्यंत वाढवण्याचा विचार करा. वर्कलोडसाठी सर्वोत्तम सेटिंग शोधण्यासाठी प्रयोग करा परंतु उच्च मूल्यांसह जास्त मेमरी वापराकडे लक्ष द्या.
4.5 प्रवाह नियंत्रण
लेयर २ फ्लो कंट्रोलमुळे TCP कामगिरीवर लक्षणीय परिणाम होऊ शकतो आणि बहुतेक वर्कलोड्ससाठी ते अक्षम करण्याची शिफारस केली जाते. एक संभाव्य अपवाद म्हणजे बर्स्टी ट्रॅफिक जिथे बर्स्ट जास्त कालावधीचे नसतात.
प्रवाह नियंत्रण डीफॉल्टनुसार अक्षम केले जाते.

  • प्रवाह नियंत्रण सक्षम करण्यासाठी: ethtool -A ethX rx on tx on
  • प्रवाह नियंत्रण अक्षम करण्यासाठी: ethtool -A ethX rx off tx off

टीप
प्रवाह नियंत्रण यशस्वीरित्या सक्षम करण्यासाठी तुमच्याकडे प्रवाह नियंत्रण सक्षम लिंक पार्टनर असणे आवश्यक आहे.
4.6 जंबो फ्रेम्स
जेव्हा अपेक्षित ट्रॅफिक वातावरणात मोठ्या प्रमाणात डेटा ट्रान्सफर केला जातो, तेव्हा जंबो फ्रेम वैशिष्ट्य सक्षम करणे फायदेशीर ठरू शकते. जास्तीत जास्त ट्रान्समिशन युनिट (MTU) १५०० च्या डीफॉल्ट मूल्यापेक्षा मोठ्या मूल्यावर बदलून जंबो फ्रेम्स समर्थन सक्षम केले जाते. हे डिव्हाइसला नेटवर्क वातावरणात मोठ्या पॅकेटमध्ये डेटा ट्रान्सफर करण्यास अनुमती देते. ही सेटिंग थ्रूपुट सुधारू शकते आणि मोठ्या 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 वापर वाढल्याने उच्च कोर टर्बो फ्रिक्वेन्सी कमी होतात.
5.2 उर्जा व्यवस्थापन
पॉवर मॅनेजमेंट कामगिरीवर परिणाम करू शकते, विशेषतः कमी लेटन्सी वर्कलोड्समध्ये. जर पॉवर वापर कमी करण्यापेक्षा कामगिरीला प्राधान्य असेल, तर इंटेल शिफारस करते की तुम्ही पॉवर मॅनेजमेंटचे परिणाम मर्यादित करण्याचा प्रयोग करा. ऑपरेटिंग सिस्टम टूल्स, BIOS सेटिंग्ज आणि कर्नल बूट पॅरामीटर्सद्वारे पॉवर मॅनेजमेंट मर्यादित करण्याचे अनेक वेगवेगळे मार्ग आहेत. तुमच्या वातावरणाला अनुकूल असलेली सर्वोत्तम पद्धत आणि पातळी निवडा.
५.२.१ सी-स्टेट नियंत्रण
C-स्टेट एंट्री CO किंवा C1 पर्यंत मर्यादित ठेवल्याने कामगिरी सुधारते आणि वीज वापर वाढतो.
CPU पॅकेज C6 स्टेट एंट्री अक्षम केल्याने नेटवर्क कामगिरी सुधारू शकते. तथापि, यामुळे पॉवर वापर वाढतो.
खालील पर्याय उपलब्ध आहेत:

  • सी-स्टेट एंट्री गतिमानपणे नियंत्रित करा:
    उघडा
    /dev/cpu_dma_latency आणि त्यावर जास्तीत जास्त स्वीकार्य विलंब लिहा.

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

  • कर्नल बूट सेटिंग्जमध्ये कमाल सी-स्टेट मर्यादित करा:
    इंटेल सीपीयूसाठी: 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. इंटेल® चौथ्या जनरेशन इंटेल® झिओन® स्केलेबल प्रोसेसरचे पॉवर मॅनेजमेंट अत्यंत आक्रमक आहे. कमी-पॉवर स्थितीत कोर प्रवेश करण्यापासून रोखण्यासाठी, वापरात असलेल्या कोरची संख्या कमी करून त्यांना जास्त काळ जागृत ठेवण्याचा प्रयत्न करा (ethtool -L एकत्रित ). तसेच, सेट irq affinity वापरून (बहुतेकदा -x लोकल किंवा CPU कोरच्या यादीसह) विशिष्ट कोरशी इंटरप्ट्स बांधा, आणि टास्कसेट किंवा numactl सह त्याच कोरवर वर्कलोड चालतो याची खात्री करा. हे कोर सक्रिय ठेवून आणि इंटरप्ट हँडलिंग ऑप्टिमाइझ करून कामगिरी सुधारते.

C6 सक्षम करा:
cpupower निष्क्रिय-सेट -d3
सी-स्टेट्स सक्षम करा:
cpupower निष्क्रिय-सेट -E

  • दुसरी पद्धत म्हणजे ट्यून केलेले टूल (अनेक लिनक्स डिस्ट्रिब्युशनसह समाविष्ट) वापरून परफॉर्मन्स प्रो सेट करणे.file. या प्रोfileवापरकर्त्यांना अनेक OS सेटिंग्जमध्ये बदल करण्याची आवश्यकता असते ज्यामुळे अनेक अनुप्रयोगांमधील कामगिरीवर परिणाम होऊ शकतो. असे आढळून आले आहे की नेटवर्क-थ्रूपुट प्रोfile बहुतेक कामाच्या ताणात सुधारणा प्रदान करते.
    तपासा:
    ट्यून केलेले अ‍ॅडम सक्रिय
    सेट:
    ट्यून केलेले-अ‍ॅडएम प्रोfile नेटवर्क-थ्रूपुट
    टीप
    वरील आदेशांसाठी ट्यून केलेली सेवा चालू असणे आवश्यक आहे. तपासण्यासाठी/पुन्हा सुरू करण्यासाठी, ट्यून करा: systemctl स्थिती ट्यून केलेली systemctl रीस्टार्ट ट्यून केलेली आहे
    कर्नल बूट लाइनमध्ये खालील गोष्टी जोडून तुम्ही कोणत्याही C-state एंट्रीला परवानगी नाकारू शकता:
    निष्क्रिय = मतदान
  • सिस्टमच्या BIOS पॉवर मॅनेजमेंट सेटिंग्जद्वारे C-स्टेट मर्यादित करा, ज्यामध्ये परफॉर्मन्स प्रो असू शकते.file उपलब्ध.
    पॉवर मॅनेजमेंट सेटिंग्ज तपासण्यासाठी किंवा सेट करण्यासाठी टर्बोस्टॅट किंवा x86_energy_perf_policy सारखी साधने वापरली जाऊ शकतात.

५.२.२ PCIe पॉवर व्यवस्थापन
अ‍ॅक्टिव्ह-स्टेट पॉवर मॅनेजमेंट (ASPM) PCIe लिंक्स सक्रिय वापरात नसताना कमी पॉवर स्टेट सक्षम करते. यामुळे PCIe नेटवर्क डिव्हाइसेसवर जास्त लेटन्सी होऊ शकते, म्हणून इंटेल शिफारस करते की तुम्ही लेटन्सी-सेन्सिटिव्ह वर्कलोड्ससाठी ASPM अक्षम करा. कर्नल बूट लाइनमध्ये खालील जोडून ASPM अक्षम करा: pcie_aspm=off
५.२.३ सीपीयू फ्रिक्वेन्सी स्केलिंग
सीपीयू फ्रिक्वेन्सी स्केलिंग (किंवा सीपीयू स्पीड स्केलिंग) ही एक लिनक्स पॉवर मॅनेजमेंट तंत्र आहे ज्यामध्ये पॉवर आणि उष्णता वाचवण्यासाठी सिस्टम क्लॉक स्पीड फ्लायवर समायोजित केला जातो. सी-स्टेट्स प्रमाणेच, यामुळे नेटवर्क कनेक्शनवर अवांछित विलंब होऊ शकतो.
सीपीयू पॉवर टूलचा वापर सीपीयू कामगिरी डीफॉल्ट आणि मर्यादा तपासण्यासाठी आणि सुधारित करण्यासाठी देखील केला जाऊ शकतो:

  • तपासा: cpupower मॉनिटर किंवा
  • CPUs ला परफॉर्मन्स मोडवर सेट करा: cpupower frequency-set -g परफॉर्मन्स

टीप
सीपीयू फ्रिक्वेन्सी मर्यादेत बदल केल्याने अनेक वर्कलोडवर परिणाम होऊ शकतो आणि सीपीयू टर्बो मोड सारखी इतर वैशिष्ट्ये अक्षम होऊ शकतात.
CPU फ्रिक्वेन्सी स्केलिंग अक्षम करण्यासाठी, खालील आदेशांद्वारे CPU पॉवर सेवा अक्षम करा:
systemctl cpupower.service थांबवा
systemctl cpupower.service अक्षम करा
५.२.४ अतिरिक्त वीज व्यवस्थापन मार्गदर्शन
या उच्च-स्तरीय ओव्हरमध्ये अतिरिक्त तपशील प्रदान केले आहेतview तिसऱ्या पिढीच्या इंटेल® झीऑन® स्केलेबल प्रोसेसरमधील अनेक पॉवर मॅनेजमेंट वैशिष्ट्यांचे, तसेच प्लॅटफॉर्म स्तरावर ही वैशिष्ट्ये कशी एकत्रित केली जाऊ शकतात याबद्दल मार्गदर्शन: 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
मूल्ये कमाल (१६ एमबी) वर सेट करा:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
सॉकेट बफर आकार, ज्यांना रिसीव्ह बफर (rmem) आणि ट्रान्समिट बफर (wmem) असेही म्हणतात, हे सिस्टम पॅरामीटर्स आहेत जे इनकमिंग आणि आउटगोइंग नेटवर्क ट्रॅफिकसाठी राखीव मेमरीचे प्रमाण निर्दिष्ट करतात.
-w आर्ग्युमेंटशिवाय sysctl चालवल्याने पॅरामीटर त्याच्या सध्याच्या सेटिंगसह सूचीबद्ध होतो.

स्टॅक सेटिंग वर्णन
नेट.कोर.आरएमईएम_डिफॉल्ट डीफॉल्ट रिसीव्ह विंडो आकार
नेट.कोर.डब्ल्यूएमईएम_डिफॉल्ट डीफॉल्ट ट्रान्समिट विंडो आकार
नेट.कोर.आरएमईएम_मॅक्स जास्तीत जास्त रिसीव्ह विंडो आकार
नेट.कोर.डब्ल्यूएमईएम_मॅक्स जास्तीत जास्त ट्रान्समिट विंडो आकार
नेट.कोर.ऑप्टमेम_मॅक्स कमाल पर्याय मेमरी बफर
नेट.कोर.नेटदेव_मॅक्स_बॅकलॉग कर्नल ड्रॉप होण्यास सुरुवात होण्यापूर्वी प्रक्रिया न केलेल्या पॅकेट्सचा बॅकलॉग
नेट.आयपीव्ही४.टीसीपी_आरएमईएम TCP रीड बफरसाठी मेमरी रिझर्व्हर
नेट.आयपीव्ही४.टीसीपी_डब्ल्यूएमईएम TCP सेंड बफरसाठी मेमरी रिझर्व्हर

कर्नल, नेटवर्क स्टॅक, मेमरी हँडलर, सीपीयू स्पीड आणि पॉवर मॅनेजमेंट पॅरामीटर्सचा नेटवर्क कामगिरीवर मोठा परिणाम होऊ शकतो. नेटवर्क थ्रूपुट प्रो वर लागू करण्याची एक सामान्य शिफारस आहे.file ट्यून केलेला कमांड वापरून. हे नेटवर्किंग अॅप्लिकेशन्सना प्राधान्य देण्यासाठी काही ओएस सेटिंग्जमध्ये बदल करते.
तपासा:
ट्यून केलेले अ‍ॅडम सक्रिय
सेट:
ट्यून केलेले-अ‍ॅडएम प्रोfile नेटवर्क-थ्रूपुट
५.८ नेटवर्क डिव्हाइस बॅकलॉग
हे वैशिष्ट्य येणारे ट्रॅफिक प्रभावीपणे व्यवस्थापित करून, पॅकेट लॉस कमी करून, लेटन्सी कमी करून आणि थ्रूपुट वाढवून नेटवर्क कामगिरी सुधारण्यास मदत करते. यामुळे वापरकर्त्याचा अनुभव चांगला होतो आणि सिस्टम प्रतिसाद जलद मिळतो.
डिफॉल्टनुसार, बहुतेक लिनक्स ऑपरेटिंग सिस्टीममध्ये ते सक्षम केलेले असते. डिफॉल्ट व्हॅल्यू तपासण्यासाठी:
sysctl net.core.netdev_max_backlog
नेटडेव्ह_मॅक्स_बॅकलॉगसाठी कमाल मूल्य कर्नल आवृत्ती, हार्डवेअर, मेमरी आणि वर्कलोड सारख्या घटकांवर अवलंबून बदलू शकते. बर्‍याच प्रकरणांमध्ये, 8192 हे चांगले मूल्य म्हणून पाहिले जाते. sysctl -w net.core.netdev_max_backlog=8192
५.९ प्लॅटफॉर्म-विशिष्ट कॉन्फिगरेशन आणि ट्यूनिंग
५.९.१ चौथ्या पिढीचे इंटेल® झीऑन® स्केलेबल प्रोसेसर

इंटेल® चौथ्या पिढीच्या इंटेल® झिओन® स्केलेबल प्रोसेसरचे पॉवर मॅनेजमेंट तिसऱ्या पिढीच्या इंटेल® झिओन® स्केलेबल प्रोसेसरच्या तुलनेत अत्यंत आक्रमक आहे. कमी-शक्तीच्या स्थितीत कोर प्रवेश करण्यापासून रोखण्यासाठी, वापरात असलेल्या कोरची संख्या कमी करून त्यांना जास्त काळ जागृत ठेवण्याचा प्रयत्न करा.
सर्वोच्च कामगिरीसाठी शिफारसित बायोस सेटिंग्ज

  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 performance 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 एकत्रित ३२
  2. इंटरप्ट मॉडरेशन रेट सेट करा. ethtool -C अ‍ॅडॉप्टिव्ह-आरएक्स ऑफ अ‍ॅडॉप्टिव्ह-टीएक्स ऑफ आरएक्स-यूसेक्स-हाय ५० आरएक्स-यूसेक्स ५० टीएक्स-यूसेक्स ५०
    वर्कलोडसाठी इष्टतम मूल्य शोधण्यासाठी ट्रान्समिट/रिसीव्ह/हाय-प्रायोरिटी कोलेसिंग टाइमर जास्त (८०/१००/१५०/२००) किंवा कमी (२५/२०/१०/५) समायोजित करण्याचा प्रयत्न करा.
  3. Rx/Tx रिंग आकार सेट करा. ethtool -G आरएक्स ४०९६ टीएक्स ४०९६
    टीप
    जर तुम्हाला ethtool -S| grep ड्रॉपसह Rx पॅकेट ड्रॉप दिसले, तर रिंगचा आकार <4096 पर्यंत कमी करून पहा. जिथे पॅकेट ड्रॉप केले जात नाहीत त्या वर्कलोडसाठी इष्टतम मूल्य शोधण्याचा प्रयत्न करा.
  4. IRQ अ‍ॅफिनिटी सेट करा. NIC वर स्थानिक कोर किंवा विशिष्ट कोर मॅपिंग वापरा (जिथे # कोर पृष्ठ २६ वर १ मध्ये सेट केलेल्या रांगांच्या संख्येइतके असतात. systemctl स्टॉप irqbalance set_irq_affinity -X स्थानिक किंवा set_irq_affinity -X

५.९.२ एएमडी ईपीवायसी
AMD EPYC प्रोसेसर हे सर्व्हर आणि डेटा सेंटरसाठी बनवलेले शक्तिशाली CPU आहेत, जे AMD च्या झेन आर्किटेक्चरवर बनवले आहेत. खालील सेटिंग्ज AMD च्या चौथ्या पिढीच्या EPYC मालिकेतील आहेत.
सर्वोच्च कामगिरीसाठी शिफारसित BIOS सेटिंग्ज

  1. वापरकर्त्यांना CPU कामगिरी, वीज वापर आणि इतर सेटिंग्ज समायोजित करण्याची परवानगी देण्यासाठी कस्टम मोड सक्षम करा. हे कार्यप्रदर्शन आणि ऊर्जा कार्यक्षमता यांच्यातील सर्वोत्तम संतुलनासाठी सिस्टमला फाइन-ट्यून करण्यास मदत करते.
  2. कोर परफॉर्मन्स बूस्ट सक्षम करा जेणेकरून CPU अधिक गहन कार्ये हाताळण्यासाठी स्वयंचलितपणे त्याचा वेग वाढवेल, ज्यामुळे एकूण कामगिरी सुधारेल.
  3. सी-स्टेट म्हणून ओळखल्या जाणाऱ्या सखोल पॉवर सेव्हिंग स्टेट्समध्ये सीपीयू प्रवेश करण्यापासून रोखण्यासाठी, ग्लोबल सी-स्टेट कंट्रोल अक्षम करा, ज्यामुळे प्रतिसाद टिकू शकतो.
    टीप
    सी-स्टेट बंद केल्याने अतिरिक्त वीज वापर होऊ शकतो आणि थर्मल तापमान वाढू शकते. कामाच्या भारासाठी दोन्हीचे निरीक्षण करा.
  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. एनआयसी कॉन्फिगरेशन उघडा 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=काही नसेल तर आवश्यक] NETMASK=255.255.255.0 [जर BOOTPROTO=काही नसेल तर आवश्यक] NETWORK=200.20.2.0 [जर BOOTPROTO=काही नसेल तर आवश्यक] BROADCAST=200.20.2.255 [जर BOOTPROTO=काही नसेल तर आवश्यक] BONDING_OPTS=”mode=1 miimon=100″
    टीप
    आवश्यकतेनुसार मोड ० ते ६ पर्यंतचा कोणताही पूर्णांक असू शकतो.
  4. सेवा नेटवर्क रीस्टार्ट किंवा systemctl रीस्टार्ट वापरून नेटवर्क सेवा रीस्टार्ट करा NetworkManager.service

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

७.१ सीपीयू वापर
वर्कलोड चालू असताना प्रत्येक कोरचा CPU वापर तपासा.
लक्षात ठेवा की प्रति कोर वापर हा एकूण CPU वापरापेक्षा कामगिरीशी अधिक संबंधित आहे कारण तो प्रत्येक नेटवर्क क्यूमध्ये CPU वापराची कल्पना देतो. जर तुमच्याकडे नेटवर्क ट्रॅफिक चालवणारे फक्त काही थ्रेड्स असतील, तर तुमच्याकडे फक्त काही कोर वापरले जाऊ शकतात. तथापि, जर ते कोर 100% वर असतील, तर तुमचा नेटवर्क थ्रूपुट CPU वापरामुळे मर्यादित असण्याची शक्यता आहे आणि आता खालील गोष्टी करण्याची वेळ आली आहे:

  1. इंटरप्ट मॉडरेशन मध्ये वर्णन केल्याप्रमाणे IRQ मॉडरेशन/रिंग आकार ट्यून करा.
  2. अधिक कोरवर CPU लोड पसरवण्यासाठी अॅप्लिकेशन थ्रेड्सची संख्या वाढवा. जर सर्व कोर १००% वर चालू असतील तर तुमचा अॅप्लिकेशन नेटवर्क बाउंडऐवजी CPU बाउंड असू शकतो.

सामान्यतः उपलब्ध साधने:

  • शीर्ष
    — CPU ची यादी विस्तृत करण्यासाठी आणि कोणते वापरले जात आहेत ते तपासण्यासाठी 1 दाबा.
    — वापराची पातळी लक्षात घ्या.
    — कोणत्या प्रक्रिया सर्वात सक्रिय म्हणून सूचीबद्ध आहेत ते पहा (यादीच्या वर).
  • mpstat
    खालील माजीampRed 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_dropped म्हणजे CPU बफरना पुरेशा वेगाने सर्व्ह करत नाही.
  • port.rx_dropped म्हणजे स्लॉट/मेमरी/सिस्टममध्ये काहीतरी पुरेसे वेगवान नाही.

७.३ नेटवर्क काउंटर
वर्कलोड रन करण्यापूर्वी/नंतर नेटस्टॅट -s तपासा.
नेटस्टॅट सिस्टममधील सर्व नेटवर्क उपकरणांमधून नेटवर्क माहिती गोळा करते. म्हणून, चाचणी अंतर्गत नेटवर्क व्यतिरिक्त इतर नेटवर्कवरून परिणामांवर परिणाम होऊ शकतो. नेटस्टॅट -s मधील आउटपुट हे लिनक्स ऑपरेटिंग सिस्टम किंवा कर्नलमधील कामगिरीच्या समस्यांचे चांगले सूचक असू शकते. सामान्य ऑपरेटिंग सिस्टम ट्यूनिंगबद्दल अधिक माहितीसाठी, Red Hat Enterprise Linux नेटवर्क परफॉर्मन्स ट्यूनिंग गाइड सारख्या ऑपरेटिंग सिस्टम ट्यूनिंग मार्गदर्शकांचा सल्ला घ्या.
७.४ सिस्टम लॉग
त्रुटी आणि चेतावणींसाठी सिस्टम लॉग तपासा (/var/log/messages, dmesg).
७.५ इंटेल एसव्हीआर-इन्फो टूल
इंटेल एक svr-info टूल प्रदान करते (पहा https://github.com/intel/svr-info) सर्व्हरवरून संबंधित हार्डवेअर आणि सॉफ्टवेअर तपशील कॅप्चर करणाऱ्या लिनक्ससाठी. svr-info आउटपुट सिस्टममधील अडथळे किंवा सेटिंग्ज/ट्यूनिंग ओळखण्यासाठी अत्यंत उपयुक्त ठरू शकते जे वर्कलोडसाठी ऑप्टिमाइझ केलेले नाहीत. इथरनेट-संबंधित कार्यप्रदर्शन समस्यांसाठी इंटेलसह सपोर्ट केस उघडताना, svr-info आउटपुट (मजकूर file) चाचणी कॉन्फिगरेशनमधील प्रत्येक Linux सर्व्हरसाठी.

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

सामान्य कामगिरी परिस्थितीसाठी शिफारसी

८.१ आयपी फॉरवर्डिंग

  • कर्नल अपडेट करा.
    सुरक्षेमुळे राउटिंग कॅशे काढून टाकण्यापासून सुरुवात करून, राउटिंग कोडमधील कर्नल बदलांमुळे काही अलीकडील इन-डिस्ट्रो कर्नलमध्ये राउटिंग कामगिरी खालावली आहे. अलीकडील आउट-ऑफ-डिस्ट्रो कर्नलमध्ये असे पॅचेस असले पाहिजेत जे या बदलांच्या कार्यक्षमतेवरील परिणाम कमी करतात आणि सुधारित कार्यप्रदर्शन प्रदान करू शकतात.
  • हायपर-थ्रेडिंग (लॉजिकल कोर) अक्षम करा.
  • कर्नल बूट पॅरामीटर्स संपादित करा.
    — वर्च्युअलायझेशनसाठी आवश्यक नसल्यास, कर्नल बूट लाइनमधून 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 किंवा 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 अ‍ॅडॉप्टिव्ह-आरएक्स ऑफ अ‍ॅडॉप्टिव्ह-टीएक्स ऑफ एथटूल् -C ethX rx-usecs 64 tx-usecs 64

टीप
प्रोसेसरच्या प्रकारावर आणि वर्कलोडवर अवलंबून, सुधारित कामगिरीसाठी (किंवा कमी फ्रेम लॉस) RX आणि TX साठी कोलेसिंग पॅरामीटर्स समायोजित केले जाऊ शकतात.

  • फायरवॉल अक्षम करा. sudo systemctl फायरवॉल अक्षम करा sudo systemctl stop firewalld
  • आयपी फॉरवर्डिंग सक्षम करा. sysctl -w net.ipv4.ip_forward=1
  • प्राप्त आणि पाठवा सॉकेट बफर आकारांसाठी कमाल मूल्ये कॉन्फिगर करा. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

टीप
कामाचा ताण किंवा गरजेनुसार, ही मूल्ये डीफॉल्टवरून बदलली जाऊ शकतात.
८.२ कमी विलंब

  • हायपर-थ्रेडिंग (लॉजिकल कोर) बंद करा.
  • नेटवर्क डिव्हाइस नुमा कोर ० वर स्थानिक असल्याची खात्री करा.
  • टास्कसेट -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
  • स्थानिक सॉकेटवरील कोरच्या संख्येइतकी रांगांची संख्या मर्यादित करा (या उदाहरणात ३२)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] वापरकर्ता मार्गदर्शक
३३४०१९, इथरनेट ७०० सिरीज लिनक्स परफॉर्मन्स ट्युनिंग, इथरनेट ७०० सिरीज, लिनक्स परफॉर्मन्स ट्युनिंग, परफॉर्मन्स ट्युनिंग, ट्युनिंग

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *