Intel ® Ethernet 700 Series
ຄູ່ມືການປັບປະສິດທິພາບ Linux
NEX Cloud Networking Group (NCNG)
1.2
ເດືອນທັນວາ 2024
ປະຫວັດການແກ້ໄຂ
| ການທົບທວນ | ວັນທີ | ຄຳເຫັນ |
| 1.2 | ເດືອນທັນວາ 2024 | · ຄຳແນະນຳການຄຸ້ມຄອງພະລັງງານເພີ່ມເຕີມ. · ເພີ່ມ Intel* Turbo Boost. · ເພີ່ມ Backlog ອຸປະກອນເຄືອຂ່າຍ. · ເພີ່ມການຕັ້ງຄ່າສະເພາະເວທີ ແລະ ການປັບແຕ່ງ. · ເພີ່ມ 4th Generation Intel* %eon* Scalable Processors. · ເພີ່ມ AMD EPYC. · ປັບປຸງລະບົບກວດສອບຄວາມສາມາດຂອງຮາດແວ. · ອັບເດດ iPerf2. · ອັບເດດ iPerf3. · ອັບເດດຄິວ Tx/Rx. · ອັບເດດ Interrupt Moderation. · ອັບເດດຂະໜາດແຫວນແລ້ວ. · ປັບປຸງການປັບແຕ່ງເວທີ (i40e ບໍ່ສະເພາະ). · ອັບເດດການຕັ້ງຄ່າ BIOS. · ປັບປຸງການຄວບຄຸມລັດ C. · ປັບປຸງການປັບຂະໜາດຄວາມຖີ່ CPU. · ອັບເດດການຕັ້ງຄ່າແອັບພລິເຄຊັນ. · ອັບເດດລະບົບປະຕິບັດການ / ການຕັ້ງຄ່າ Kernel. · ອັບເດດ IP Forwarding. · ອັບເດດ latency ຕ່ຳ. |
| ສິງຫາ 2023 | ການປ່ຽນແປງເອກະສານນີ້ indude: · ເພີ່ມເອກະສານອ້າງອີງທີ່ກ່ຽວຂ້ອງ. ·ເພີ່ມໃຫ້ແນ່ໃຈວ່າຊຸດ DDP ກໍາລັງໂຫລດຢ່າງຖືກຕ້ອງ. · ເພີ່ມ iPerf2. · ເພີ່ມ iPerf3. · ເພີ່ມ netperf. · ອັບເດດ IRQ Affinity. · ຄິວ Tx/Rx ເພີ່ມແລ້ວ. · ອັບເດດຂະໜາດແຫວນແລ້ວ. · ເພີ່ມກອບ Jumbo. · ເພີ່ມພັນທະບັດອະແດບເຕີ. ·ເພີ່ມ Intel svr-info Tool. |
|
| 1.0 | ມີນາ 2016 | ການປ່ອຍເບື້ອງຕົ້ນ (Intel Public). |
ແນະນຳ
ຄູ່ມືນີ້ມີຈຸດປະສົງເພື່ອໃຫ້ຄໍາແນະນໍາສໍາລັບການປັບສະພາບແວດລ້ອມສໍາລັບການປະຕິບັດເຄືອຂ່າຍທີ່ດີທີ່ສຸດໂດຍໃຊ້ Intel ® Ethernet 700 Series NICs ໃນສະພາບແວດລ້ອມ Linux. ມັນສຸມໃສ່ຮາດແວ, ໄດເວີ, ແລະເງື່ອນໄຂຂອງລະບົບປະຕິບັດການແລະການຕັ້ງຄ່າທີ່ອາດຈະປັບປຸງປະສິດທິພາບເຄືອຂ່າຍ. ມັນຄວນຈະສັງເກດວ່າການປະຕິບັດເຄືອຂ່າຍສາມາດໄດ້ຮັບຜົນກະທົບຈາກອິດທິພົນພາຍນອກໃດໆ, ມີພຽງແຕ່ທົ່ວໄປທີ່ສຸດແລະຫນ້າອັດສະຈັນທີ່ກວມເອົາໃນຄູ່ມືນີ້.
1.1 ເອກະສານອ້າງອີງທີ່ກ່ຽວຂ້ອງ
- ຄູ່ມືຜູ້ໃຊ້ສໍາລັບທັງຫມົດ Intel ® Ethernet adapters ແລະອຸປະກອນ, ສະຫນັບສະຫນູນ Windows ແລະ Linux:
ຄູ່ມືຜູ້ໃຊ້ Intel ® Ethernet Adapters ແລະອຸປະກອນ - ຂໍ້ມູນດ້ານວິຊາການ:
ແຜ່ນຂໍ້ມູນ Intel ® Ethernet Controller X710/XXV710/XL710 - ສໍາເລັດຊຸດ SW ສໍາລັບຜະລິດຕະພັນ Intel ® Ethernet ທັງຫມົດ (ດາວໂຫລດໄດເວີທັງຫມົດ, NVMs, ເຄື່ອງມື, ແລະອື່ນໆ):
Intel ® Ethernet Adapter Complete Driver Pack - ແພັກເກດອັບເດດ NVM (ຄວາມຈຳທີ່ບໍ່ປ່ຽນແປງ):
ໜ່ວຍຄວາມຈຳທີ່ບໍ່ປ່ຽນແປງ (NVM) ອັບເດດອຸປະກອນສຳລັບ Intel ® Ethernet Network Adapter 700 Series - svr-info ເຄື່ອງມືສໍາລັບ Linux ທີ່ເກັບກໍາລາຍລະອຽດຮາດແວແລະຊອບແວທີ່ກ່ຽວຂ້ອງຈາກເຄື່ອງແມ່ຂ່າຍ: https://github.com/intel/svr-info
- DDP Technology Guide:
ຄູ່ມືເທກໂນໂລຍີ Intel ® Ethernet 700 Series Dynamic Device Personalization (DDP).
ລາຍການກວດເບື້ອງຕົ້ນ
2.1 ອັບເດດ Driver/ Firmware Versions
ກວດເບິ່ງເວີຊັນໄດເວີ/ເຟີມແວໂດຍໃຊ້ ethtool -i ethx.
ປັບປຸງສິ່ງຕໍ່ໄປນີ້ຕາມຄວາມຕ້ອງການ:
- ອັບເດດໄດເວີ i40e
http://sourceforge.net/projects/e1000/files/i40e%20stable/ or https:// downloadcenter.intel.com/ download/24411/Network-Adapter-Driver-for-PCI-E-40- Gigabit-Network-Connections-under-Linux - ອັບເດດເຟີມແວ
https://downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 ອ່ານ README
ກວດເບິ່ງບັນຫາທີ່ຮູ້ຈັກ ແລະໄດ້ຮັບຄໍາແນະນໍາການຕັ້ງຄ່າຫຼ້າສຸດຈາກ README file ລວມຢູ່ໃນຊຸດແຫຼ່ງ i40e.
2.3 ກວດເບິ່ງວ່າສະລັອດຕິງ PCI Express (PCIe) ຂອງທ່ານແມ່ນ x8
ສະລັອດຕິງ PCIe x8 ບາງອັນແມ່ນຕົວຈິງແລ້ວຖືກຕັ້ງຄ່າເປັນຊ່ອງ x4. ສະລັອດຕິງເຫຼົ່ານີ້ມີແບນວິດບໍ່ພຽງພໍສໍາລັບອັດຕາສາຍເຕັມທີ່ມີພອດຄູ່ແລະອຸປະກອນພອດ quad. ນອກຈາກນັ້ນ, ຖ້າທ່ານເອົາອະແດບເຕີທີ່ມີຄວາມສາມາດ PCIe v3.0 ເຂົ້າໄປໃນຊ່ອງສຽບ PCIe v2.x, ທ່ານບໍ່ສາມາດໄດ້ຮັບແບນວິດເຕັມ. ໄດເວີອຸປະກອນຊອບແວກວດພົບສະຖານະການນີ້ແລະຂຽນຂໍ້ຄວາມຕໍ່ໄປນີ້ໃນບັນທຶກຂອງລະບົບ:
ແບນວິດ PCI-Express ທີ່ມີຢູ່ສໍາລັບບັດນີ້ບໍ່ພຽງພໍສໍາລັບການປະຕິບັດທີ່ດີທີ່ສຸດ. ສໍາລັບການປະຕິບັດທີ່ດີທີ່ສຸດ, x8 PCI-Express slot ແມ່ນຕ້ອງການ.
ຖ້າຄວາມຜິດພາດນີ້ເກີດຂຶ້ນ, ຍ້າຍອະແດບເຕີຂອງທ່ານໄປຫາຊ່ອງສຽບ PCIe v3.0 x8 ທີ່ແທ້ຈິງເພື່ອແກ້ໄຂບັນຫາ.
2.4 ກວດສອບຄວາມສາມາດຂອງຮາດແວຂອງລະບົບ
ຢູ່ທີ່ 10 Gbps, 25 Gbps, ແລະ 40 Gbps Ethernet, ມີຄວາມຕ້ອງການ CPU ແລະລະບົບຂັ້ນຕໍ່າບາງຢ່າງ. ໂດຍທົ່ວໄປແລ້ວ, ໂປເຊດເຊີຊັ້ນນໍາຂອງເຄື່ອງແມ່ຂ່າຍທີ່ທັນສະໄຫມແລະການຕັ້ງຄ່າຫນ່ວຍຄວາມຈໍາທີ່ດີທີ່ສຸດສໍາລັບເວທີຂອງທ່ານຄວນຈະພຽງພໍ, ແຕ່ຄວາມຕ້ອງການແຕກຕ່າງກັນໄປຕາມວຽກຂອງທ່ານ. ຊ່ອງຫນ່ວຍຄວາມຈໍາທັງຫມົດຄວນຈະຖືກຈັດໃສ່ແລະຮູບແບບການປະຕິບັດຫນ່ວຍຄວາມຈໍາຄວນຈະຖືກເປີດໃຊ້ໃນ BIOS. ກວດສອບວ່າການຕັ້ງຄ່າ CPU ແລະຫນ່ວຍຄວາມຈໍາຂອງທ່ານສາມາດສະຫນັບສະຫນູນລະດັບການປະຕິບັດເຄືອຂ່າຍທີ່ທ່ານຕ້ອງການສໍາລັບການເຮັດວຽກຂອງທ່ານ.
ໝາຍເຫດ
XL710 ເປັນຕົວຄວບຄຸມ 40 GbE. ອະແດັບເຕີ 2 x 40 GbE ທີ່ໃຊ້ຕົວຄວບຄຸມນີ້ບໍ່ໄດ້ຕັ້ງໃຈເປັນ 2 x 40 GbE ແຕ່ເປັນ 1 x 40 GbE ທີ່ມີພອດສຳຮອງທີ່ໃຊ້ງານຢູ່. ເມື່ອພະຍາຍາມໃຊ້ການຈາລະຈອນອັດຕາເສັ້ນທີ່ກ່ຽວຂ້ອງກັບທັງສອງພອດ, ສະຫຼັບພາຍໃນແມ່ນອີ່ມຕົວແລະແບນວິດລວມລະຫວ່າງສອງພອດຖືກຈໍາກັດເຖິງຈໍານວນທັງຫມົດ SO Gbps.
2.4.1 ຕົວກໍານົດການ Boot Kernel
ຖ້າ Intel® Virtualization Technology ສໍາລັບ Directed I/O (Intel® VT-d) ຖືກເປີດໃຊ້ໃນ BIOS, Intel ແນະນໍາໃຫ້ IOMMU ຢູ່ໃນໂຫມດ pass-through ສໍາລັບການປະຕິບັດເຄືອຂ່າຍໂຮດທີ່ດີທີ່ສຸດ. ນີ້ກໍາຈັດ DMA overhead ໃນການຈະລາຈອນຂອງເຈົ້າພາບໃນຂະນະທີ່ເຮັດໃຫ້ Virtual Machines (VMs) ຍັງມີຜົນປະໂຫຍດຂອງ Intel® VT-d. ນີ້ແມ່ນສໍາເລັດໂດຍການເພີ່ມເສັ້ນຕໍ່ໄປນີ້ໃສ່ຕົວກໍານົດການບູດຂອງແກ່ນ: fommu-pt.
2.5 ໃຫ້ແນ່ໃຈວ່າຊຸດ DDP ກໍາລັງໂຫລດຢ່າງຖືກຕ້ອງ
ໄດເວີພື້ນຖານ 140ea ແລະ 140eb ບໍ່ມີການສະຫນັບສະຫນູນໂດຍກົງສໍາລັບການປັບແຕ່ງອຸປະກອນແບບໄດນາມິກ (DDP). ເພື່ອໃຊ້ DDP ກັບອຸປະກອນ 700 Series, ເປັນ DDP profile ສາມາດນໍາໃຊ້ກັບຄໍາຮ້ອງສະຫມັກ testpmd.
ສໍາລັບລາຍລະອຽດກ່ຽວກັບ DDP profiles, ແລະວິທີການສະຫມັກຂໍເອົາ DDP profile ດ້ວຍ testpmd ໃນອຸປະກອນ 700 Series, ອ້າງອີງເຖິງ Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) Technology Guide.
ເພື່ອກວດສອບວ່າ DDP profile ຖືກໂຫຼດສໍາເລັດຜົນ:
testpmd> ddp ໄດ້ຮັບບັນຊີລາຍຊື່ 0 Profile ຈໍານວນແມ່ນ: 1
ໝາຍເຫດ
ຖ້າຫາກວ່າ profile ຕົວເລກແມ່ນ 0, ບໍ່ມີຊຸດ DDP ຖືກໂຫລດ. ໃນກໍລະນີທີ່ມີຄວາມຜິດພາດໃນການໂຫຼດຊຸດ DDP, ອຸປະກອນເລີ່ມຕົ້ນໄປໃນຮູບແບບຄວາມປອດໄພແລະຄຸນນະສົມບັດການປະຕິບັດຈໍານວນຫຼາຍແມ່ນບໍ່ມີ. ຖ້າມີຂໍ້ຜິດພາດທີ່ກ່ຽວຂ້ອງກັບການໂຫຼດຊຸດ DDP, ມັນຈະເຮັດໃຫ້ເກີດບັນຫາການປະຕິບັດ. ສໍາລັບຂັ້ນຕອນການແກ້ໄຂບັນຫາ, ໃຫ້ເບິ່ງທີ່ Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) Technology Guide.
ການວັດແທກປະສິດທິພາບພື້ນຖານ ແລະວິທີການປບັ
3.1 ມາດຕະຖານປະສິດທິພາບເຄືອຂ່າຍ
ກ່ອນທີ່ຈະເລີ່ມຕົ້ນການອອກກໍາລັງກາຍ tuning, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະມີການວັດແທກພື້ນຖານທີ່ດີຂອງການປະຕິບັດເຄືອຂ່າຍຂອງທ່ານ. ໂດຍປົກກະຕິແລ້ວ ນອກເຫນືອຈາກການໄດ້ຮັບການວັດແທກເບື້ອງຕົ້ນຂອງການເຮັດວຽກສະເພາະຂອງແອັບພລິເຄຊັນ/ວຽກຂອງທ່ານ, ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະໃຊ້ມາດຕະຖານການປະຕິບັດເຄືອຂ່າຍມາດຕະຖານເພື່ອກວດສອບວ່າອຸປະກອນເຄືອຂ່າຍຂອງທ່ານຢູ່ໃນສະພາບທີ່ດີ.
ສໍາລັບການເພີ່ມປະສິດທິພາບຂອງລະບົບດຽວ, netperf ຫຼື iperf ແລະ NetPIPE ແມ່ນເຄື່ອງມືຟຣີ opensource ແຂງທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດເນັ້ນຫນັກເຖິງການເຊື່ອມຕໍ່ແລະວິນິດໄສບັນຫາການປະຕິບັດ.
Netperf ມີຄວາມເຂັ້ມແຂງສໍາລັບທັງການທົດສອບ throughput ແລະ latency. NetPIPE ເປັນເຄື່ອງມືສະເພາະເວລາ latency ແຕ່ສາມາດລວບລວມໄດ້ສໍາລັບສະພາບແວດລ້ອມຕ່າງໆ.
ໝາຍເຫດ
ການທົດສອບ TCP_RR ໃນ netperf ກັບຄືນມາ latency ໃນມູນຄ່າຂອງທຸລະກໍາ / ວິນາທີ. ນີ້ແມ່ນຕົວເລກໄປກັບ. ການ latency ແບບທາງດຽວສາມາດຖືກຄິດໄລ່ໂດຍໃຊ້ສົມຜົນຕໍ່ໄປນີ້:
Latency(usec) = (1⁄2) / [ທຸລະກໍາ/ວິນາທີ] * 1,000,000
3.1.1 iPerf2
Intel ແນະນໍາ iperf2 ໃນໄລຍະ iperf3 ສໍາລັບສະຖານະການ benchmarking ສ່ວນໃຫຍ່ເນື່ອງຈາກຄວາມງ່າຍຂອງການນໍາໃຊ້ແລະສະຫນັບສະຫນູນຫຼາຍ threads ໃນຕົວຢ່າງຄໍາຮ້ອງສະຫມັກດຽວ. Intel ແນະນໍາໃຫ້ແລ່ນດ້ວຍທາງເລືອກ -P ທີ່ມີ 2-4 threads ສໍາລັບການເຊື່ອມຕໍ່ 25G ແລະປະມານ 4-6 threads ສໍາລັບການເຊື່ອມຕໍ່ 40G.
- ເພື່ອດໍາເນີນການການຈະລາຈອນ uni-directional ຈາກລູກຄ້າໄປຫາເຄື່ອງແມ່ຂ່າຍ: ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example: iperf2 -s
ຄໍາສັ່ງລູກຄ້າ example: iperf2 -c - ປ - ເພື່ອດໍາເນີນການທຣາບຟິກສອງທິດທາງຈາກລູກຄ້າໄປຫາເຄື່ອງແມ່ຂ່າຍ (ແລະໃນທາງກັບກັນ): ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example: iperf2 –s –p
ຄໍາສັ່ງລູກຄ້າ example:
iperf2 -c - ປ - ປ -- duplex ເຕັມ OR
iperf2 -c - ປ - ປ –d
ໝາຍເຫດ
ທັງສອງທາງເລືອກ -full-duplex ແລະ -d ໃນ iperf2 ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ເຮັດການທົດສອບ bidirectional. ຢ່າງໃດກໍຕາມ, -full-duplex ທາງເລືອກໂດຍສະເພາະສຸມໃສ່ການທົດສອບ duplex ເຕັມ.
ໝາຍເຫດ
ເມື່ອທົດສອບ iperf2 ໃນທົ່ວພອດເຊີບເວີຫຼາຍ, ທຸງ -d ສາມາດຖືກເພີ່ມໃສ່ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍເພື່ອດໍາເນີນການເຊດຊັນເຊີຟເວີທັງຫມົດໃນພື້ນຫລັງຈາກປ່ອງຢ້ຽມ terminal ດຽວກັນ. ທຸງ -d ຍັງສາມາດຖືກນໍາໃຊ້ໃນເວລາທີ່ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍຖືກຝັງຢູ່ໃນ for-loop ໃນສະຄິບ.
ໝາຍເຫດ
ໃນເວລາທີ່ແລ່ນການທົດສອບການຜ່ານເຄືອຂ່າຍທີ່ມີການສະຕຣີມ / ກະທູ້ດຽວ (ເຊັ່ນ:ample: P1), ໂປເຊດເຊີ AMD ອາດຈະບໍ່ສະຫນອງການສົ່ງຜ່ານທີ່ຄາດໄວ້, ໂດຍສະເພາະ NICs ແບນວິດທີ່ສູງກວ່າ (ຖ້າຄວາມໄວແມ່ນ >= ແບນວິດ 25G). ດັ່ງນັ້ນ, ການປັກໝຸດແອັບພລິເຄຊັນໃສ່ກັບຫຼັກສະເພາະແມ່ນຈຳເປັນເພື່ອບັນລຸການສົ່ງທີ່ສູງຂຶ້ນ. ເບິ່ງການຕັ້ງຄ່າແອັບພລິເຄຊັນໃນໜ້າ 22.
3.1.2 iPerf3
ຖ້າໃຊ້ iperf3, ຫຼາຍຕົວຢ່າງຂອງແອັບພລິເຄຊັນແມ່ນຕ້ອງການເພື່ອເອົາ advantage ຂອງຫຼາຍກະທູ້, RSS, ແລະແຖວຮາດແວ. Intel ແນະນໍາໃຫ້ແລ່ນດ້ວຍ 2-4 ຄໍາຮ້ອງສະຫມັກສໍາລັບການເຊື່ອມຕໍ່ 25G ແລະປະມານ 4-6 sessions ສໍາລັບການເຊື່ອມຕໍ່ 40G. ແຕ່ລະເຊດຊັນຄວນລະບຸຄ່າພອດ TCP ທີ່ເປັນເອກະລັກໂດຍໃຊ້ຕົວເລືອກ -p.
- ເພື່ອດໍາເນີນການທຣາບຟິກ uni-directional ຈາກລູກຄ້າໄປຫາເຄື່ອງແມ່ຂ່າຍ:
ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example:
iperf3 -s -p
ຄໍາສັ່ງລູກຄ້າ example:
iperf3 -c - ປ - ເພື່ອດໍາເນີນການທຣາບຟິກສອງທິດທາງຈາກລູກຄ້າໄປຫາເຄື່ອງແມ່ຂ່າຍ (ແລະໃນທາງກັບກັນ):
ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example:
iperf3 –s –p
ຄໍາສັ່ງລູກຄ້າ example: iperf3 -c - ປ - ປ --bidir - ເພື່ອເລີ່ມຕົ້ນຫຼາຍໆຕົວຢ່າງ (ກະທູ້) ຂອງ iperf3, ຄໍາແນະນໍາແມ່ນໃຊ້ for-loop ເພື່ອແຜນທີ່ກະທູ້ກັບພອດ TCP ແລະດໍາເນີນການ iperf3 ໃນພື້ນຫລັງໂດຍໃຊ້ & ເພື່ອສ້າງຂະບວນການຫຼາຍຂະຫນານ.
ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example, ເລີ່ມ 4 ກະທູ້: port =””; ສໍາລັບ i ໃນ {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; ເຮັດແລ້ວ; ຄໍາສັ່ງລູກຄ້າ example, ເລີ່ມ 4 ກະທູ້ – Transmit test port =””; ສໍາລັບ i ໃນ {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; ເຮັດແລ້ວ; ຄໍາສັ່ງລູກຄ້າ example, ເລີ່ມ 4 ກະທູ້ – ຮັບພອດທົດສອບ =””; ສໍາລັບ i ໃນ {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; ເຮັດແລ້ວ; ສໍາລັບການເຊື່ອມຕໍ່ 40G, ໃຫ້ເພີ່ມ for-loop ເພື່ອສ້າງເຖິງ 6 instances/threads.
ໝາຍເຫດ
ໃນເວລາທີ່ແລ່ນການທົດສອບການຜ່ານເຄືອຂ່າຍທີ່ມີການສະຕຣີມ / ກະທູ້ດຽວ (ເຊັ່ນ:ample: P1), ໂປເຊດເຊີ AMD ອາດຈະບໍ່ສະຫນອງການສົ່ງຜ່ານທີ່ຄາດໄວ້, ໂດຍສະເພາະແບນວິດທີ່ສູງຂຶ້ນ
NICs (ຖ້າຄວາມໄວແມ່ນ >= ແບນວິດ 25G). ດັ່ງນັ້ນ, ການປັກໝຸດແອັບພລິເຄຊັນໃສ່ກັບຫຼັກສະເພາະແມ່ນຈຳເປັນເພື່ອບັນລຸການສົ່ງທີ່ສູງຂຶ້ນ. ເບິ່ງການຕັ້ງຄ່າແອັບພລິເຄຊັນໃນໜ້າ 22 ແລະ AMD EPYC ໃນໜ້າ 26.
3.1.3 netperf
ເຄື່ອງມື netperf ເປັນທາງເລືອກທີ່ເຂັ້ມແຂງສໍາລັບການທົດສອບຜ່ານແລະ latency.
- ການທົດສອບ TCP_STREAM ໃນ netperf ວັດແທກຄວາມສາມາດຜ່ານຂອງອຸປະກອນ. ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example: netserver Client command example: netperf -t TCP_STREAM -l 30 -H
- ການທົດສອບ TCP_RR ໃນ netperf ກັບຄືນມາ latency ໃນມູນຄ່າຂອງທຸລະກໍາ / ວິນາທີ. ນີ້ແມ່ນຕົວເລກໄປກັບ. ຂໍແນະນຳໃຫ້ໃຊ້ຕົວເລືອກ -T x,x, were x ແມ່ນ CPU ຢູ່ໃນເຄື່ອງ. ການຕອບສະໜອງທາງດຽວສາມາດຄິດໄລ່ໄດ້ໂດຍໃຊ້: Latency(usec)=(1⁄2)/ [Transactions/sec]*1,000,\ Server command example: netserver
ຄໍາສັ່ງລູກຄ້າ example: netperf -t TCP_RR -l 30 -H -T x,x - ເພື່ອເລີ່ມຕົ້ນຫຼາຍໆຕົວຢ່າງ (ກະທູ້) ຂອງ netperf, ຄໍາແນະນໍາແມ່ນໃຊ້ for-loop ເພື່ອສ້າງແຜນທີ່ກະທູ້ກັບພອດ TCP ແລະດໍາເນີນການ netperf ໃນພື້ນຫລັງໂດຍໃຊ້ & ເພື່ອສ້າງຂະບວນການຫຼາຍຂະຫນານ.
ຄໍາສັ່ງຂອງເຄື່ອງແມ່ຂ່າຍ example, ເລີ່ມ 8 ກະທູ້:
port =””; ສໍາລັບ i ໃນ {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; ເຮັດແລ້ວ;
ຄໍາສັ່ງລູກຄ້າ example, ເລີ່ມ 8 ກະທູ້: port =””; ສໍາລັບ i ໃນ {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; ເຮັດແລ້ວ;
3.2 ວິທີການປັບສຽງ
ສຸມໃສ່ການປ່ຽນແປງການປັບແຕ່ງເທື່ອລະອັນເພື່ອໃຫ້ທ່ານຮູ້ວ່າແຕ່ລະການປ່ຽນແປງເຮັດໃຫ້ການທົດສອບຂອງທ່ານມີຜົນກະທົບແນວໃດ. ຍິ່ງເຈົ້າຢູ່ໃນຂັ້ນຕອນການປັບດ້ວຍວິທີການຫຼາຍເທົ່າໃດ, ມັນຈະງ່າຍຂຶ້ນໃນການກໍານົດ ແລະແກ້ໄຂສາເຫດຂອງຂໍ້ບົກຜ່ອງຂອງການປະຕິບັດ.
ການປັບຄ່າ i40e Driver
4.1 IRQ Affinity
ການຕັ້ງຄ່າ IRQ affinity ດັ່ງນັ້ນການຂັດຂວາງສໍາລັບແຖວເຄືອຂ່າຍທີ່ແຕກຕ່າງກັນແມ່ນຕິດພັນກັບ CPU cores ທີ່ແຕກຕ່າງກັນສາມາດມີຜົນກະທົບອັນໃຫຍ່ຫຼວງຕໍ່ການປະຕິບັດ, ໂດຍສະເພາະການທົດສອບຜ່ານ multithread.
ເພື່ອກຳນົດຄ່າ IRQ affinity, ໃຫ້ຢຸດ irqbalance ແລະຫຼັງຈາກນັ້ນໃຫ້ໃຊ້ script set_irq_affinity ຈາກແພັກເກັດແຫຼ່ງ i40e ຫຼື pin queues ດ້ວຍຕົນເອງ. ປິດໃຊ້ງານຕົວດຸ່ນດ່ຽງ IRQ ພື້ນທີ່ຜູ້ໃຊ້ເພື່ອເປີດໃຊ້ການປັກໝຸດຄິວ:
- systemctl ປິດການໃຊ້ງານ irqbalance
- systemctl ຢຸດ irqbalance
ການນໍາໃຊ້ script set_irq_affinity ຈາກຊຸດແຫຼ່ງ i40e (ແນະນໍາ): - ການນໍາໃຊ້ຫຼັກການທັງຫມົດ:
[path-to-i40epackage]/scripts/set_irq_affinity -X ທັງໝົດ ethX - ເພື່ອໃຊ້ພຽງແຕ່ແກນຢູ່ໃນຊັອກເກັດ NUMA ທ້ອງຖິ່ນ: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- ນອກນັ້ນທ່ານຍັງສາມາດເລືອກລະດັບຂອງແກນ. ຫຼີກເວັ້ນການໃຊ້ cpu0 ເພາະວ່າມັນເຮັດວຽກງານຈັບເວລາ. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
ໝາຍເຫດ
script affinity ເປີດໃຊ້ Transmit Packet Steering (XPS) ເປັນສ່ວນຫນຶ່ງຂອງຂະບວນການ pinning ເມື່ອຕົວເລືອກ -x ຖືກລະບຸ. ເມື່ອ XPS ຖືກເປີດໃຊ້, Intel ແນະນໍາໃຫ້ທ່ານປິດການໃຊ້ງານ irqbalance, ເນື່ອງຈາກວ່າ kernel balancer ກັບ XPS ສາມາດເຮັດໃຫ້ເກີດການປະຕິບັດທີ່ບໍ່ສາມາດຄາດເດົາໄດ້. script affinity ປິດ XPS ເມື່ອຕົວເລືອກ -X ຖືກລະບຸ. ການປິດການໃຊ້ງານ XPS ແລະເປີດໃຊ້ຄິວ symmetric ແມ່ນເປັນປະໂຫຍດສໍາລັບວຽກທີ່ການປະຕິບັດທີ່ດີທີ່ສຸດແມ່ນບັນລຸໄດ້ໃນເວລາທີ່ການຈະລາຈອນ Tx ແລະ Rx ໄດ້ຮັບການບໍລິການຢູ່ໃນຄູ່ຄິວດຽວກັນ.
ການຕັ້ງຄ່າຄິວທີ່ສົມມາຕຣິກໃນ Linux ກ່ຽວຂ້ອງກັບການປັບຕົວພາຣາມີເຕີໄດເວີອິນເຕີເຟດເຄືອຂ່າຍເພື່ອເປີດໃຊ້ຄິວຮັບສາຍ (Rx) ແລະຄິວສົ່ງສະສົມ (Tx) ສໍາລັບອະແດບເຕີເຄືອຂ່າຍທີ່ຮອງຮັບ.
ໝາຍເຫດ
- Symmetric queues ເປັນຄຸນສົມບັດເຄືອຂ່າຍຂັ້ນສູງ, ແລະບໍ່ແມ່ນຕົວປັບເຄືອຂ່າຍ ຫຼືໄດເວີທັງໝົດ 700 ຊຸດທີ່ຮອງຮັບພວກມັນ.
- ໃຫ້ແນ່ໃຈວ່າທ່ານມີໄດເວີທີ່ຈໍາເປັນແລະສະຫນັບສະຫນູນຮາດແວກ່ອນທີ່ຈະພະຍາຍາມຕັ້ງຄ່າຄິວທີ່ສົມມາດ.
ເພື່ອຕັ້ງຄ່າຄິວທີ່ສົມມາຕຣິກ, ປະຕິບັດຕາມຂັ້ນຕອນທົ່ວໄປເຫຼົ່ານີ້:
- ແກ້ໄຂການຕັ້ງຄ່າການໂຕ້ຕອບເຄືອຂ່າຍ File: ໃຊ້ຕົວແກ້ໄຂຂໍ້ຄວາມ (ສໍາລັບຕົວຢ່າງample, vi, nano, ຫຼື gedit) ເພື່ອແກ້ໄຂການຕັ້ງຄ່າການໂຕ້ຕອບເຄືອຂ່າຍ file. ໄດ້ file ໂດຍປົກກະຕິແມ່ນຕັ້ງຢູ່ພາຍໃຕ້ /etc/sysconfig/network-scripts/ directory ແລະມີຊື່ເຊັ່ນ ifcfg-ethX, ບ່ອນທີ່ ethX ແມ່ນຊື່ຂອງການໂຕ້ຕອບເຄືອຂ່າຍຂອງທ່ານ.
- ເພີ່ມຕົວກໍານົດການຄິວສົມມາດ. ເພີ່ມສາຍຕໍ່ໄປນີ້ໃສ່ການຕັ້ງຄ່າສ່ວນຕິດຕໍ່ເຄືອຂ່າຍ file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
- ຣີສະຕາດບໍລິການເຄືອຂ່າຍ.
ຫຼັງຈາກເຮັດການປ່ຽນແປງ, ເປີດບໍລິການເຄືອຂ່າຍຄືນໃໝ່ເພື່ອນຳໃຊ້ການຕັ້ງຄ່າໃໝ່. sudo systemctl ເປີດເຄືອຂ່າຍຄືນໃໝ່
ດ້ວຍຕົນເອງ:
-
ຊອກຫາໂປເຊດເຊີທີ່ຕິດກັບແຕ່ລະ node ໂດຍໃຊ້: numactl –hardware lscpu
-
ຊອກຫາໜ້າກາກບິດສຳລັບແຕ່ລະໂປເຊດເຊີ:
- ສົມມຸດວ່າ cores 0-11 ສໍາລັບ node 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- ຊອກຫາ IRQs ໃຫ້ກັບພອດທີ່ຖືກມອບຫມາຍ: grep ethX / proc/interrupts ແລະສັງເກດຄ່າ IRQ ສໍາລັບ ex.ample, 181-192 ສໍາລັບ 12 vectors loaded.
- ສະທ້ອນຄ່າ SMP affinity ເຂົ້າໄປໃນ IRQ ທີ່ສອດຄ້ອງກັນ. ໃຫ້ສັງເກດວ່າອັນນີ້ຕ້ອງເຮັດສໍາລັບແຕ່ລະລາຍການ IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity ສະແດງ IRQ affinity:
- ເພື່ອສະແດງໃຫ້ເຫັນຄວາມໃກ້ຊິດຂອງ IRQ ສໍາລັບຫຼັກທັງຫມົດ: /scripts/set_irq_affinity -s ethX
- ເພື່ອສະແດງພຽງແຕ່ຫຼັກຢູ່ໃນຊັອກເກັດ NUMA ທ້ອງຖິ່ນ: /scripts/set_irq_affinity -s local ethX
- ນອກນັ້ນທ່ານຍັງສາມາດເລືອກລະດັບຂອງແກນ: /scripts/set_irq_affinity -s 40-0-8,16 ethX
ໝາຍເຫດ
ສະຄຣິບ set_irq_affinity ຮອງຮັບທຸງ -s ໃນໄດເວີ i40e ເວີຊັນ 2.16.11 ແລະຕໍ່ມາ.
4.2 ຄິວ Tx/Rx
ຈໍານວນຄິວເລີ່ມຕົ້ນທີ່ເປີດໃຊ້ສໍາລັບແຕ່ລະພອດ Ethernet ໂດຍໄດເວີໃນຕອນເລີ່ມຕົ້ນແມ່ນເທົ່າກັບຈໍານວນ CPU ທັງຫມົດທີ່ມີຢູ່ໃນເວທີ. ນີ້ເຮັດວຽກໄດ້ດີສໍາລັບຫຼາຍແພລະຕະຟອມແລະການຕັ້ງຄ່າວຽກ. ຢ່າງໃດກໍຕາມ, ໃນເວທີທີ່ມີຈໍານວນຫຼັກສູງແລະ / ຫຼືຄວາມຫນາແຫນ້ນຂອງພອດ Ethernet ສູງ, ການຕັ້ງຄ່ານີ້ສາມາດເຮັດໃຫ້ເກີດການຂັດແຍ້ງດ້ານຊັບພະຍາກອນ. ດັ່ງນັ້ນ, ມັນອາດຈະມີຄວາມຈໍາເປັນໃນບາງກໍລະນີທີ່ຈະດັດແປງຄ່າເລີ່ມຕົ້ນສໍາລັບແຕ່ລະພອດໃນລະບົບ.
ຈໍານວນຄ່າເລີ່ມຕົ້ນຂອງແຖວ Tx/Rx ສາມາດແຕກຕ່າງກັນຂຶ້ນກັບຮູບແບບສະເພາະໃດຫນຶ່ງແລະສະບັບຂອງຄົນຂັບ. ຈໍານວນຄິວສາມາດປັບໄດ້ໂດຍໃຊ້ຄໍາສັ່ງ ethtool -L ທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້.
ໝາຍເຫດ
ໃນກໍລະນີເຫຼົ່ານີ້, Intel ແນະນໍາໃຫ້ທ່ານຫຼຸດຜ່ອນການນັບແຖວເລີ່ມຕົ້ນສໍາລັບແຕ່ລະພອດໃຫ້ບໍ່ເກີນຈໍານວນ CPU ທີ່ມີຢູ່ໃນ NUMA node ທ້ອງຖິ່ນໄປຫາພອດອະແດບເຕີ. ໃນບາງກໍລະນີ, ເມື່ອພະຍາຍາມດຸ່ນດ່ຽງຊັບພະຍາກອນໃນການປະຕິບັດການນັບພອດສູງ, ມັນອາດຈະຈໍາເປັນຕ້ອງຫຼຸດຜ່ອນຕົວເລກນີ້ຕື່ມອີກ.
ເພື່ອແກ້ໄຂການຕັ້ງຄ່າແຖວ:
ຕໍ່ໄປນີ້ example ກໍານົດພອດເປັນ 32 Tx/Rx ຄິວ: ethtool -L ethX ລວມ 32
Example ຜົນຜະລິດ:
ethtool -l ethX
ພາຣາມິເຕີຊ່ອງສໍາລັບ ethX: ສູງສຸດທີ່ກໍານົດໄວ້ລ່ວງຫນ້າ:
RX: 96
TX: 96
ອື່ນໆ: 1
ລວມກັນ: 96
ການຕັ້ງຄ່າຮາດແວປະຈຸບັນ:
RX: 0
TX: 0
ອື່ນໆ: 1
ລວມກັນ: 32
4.3 Interrupt Moderation
ການປານກາງການລົບກວນແບບປັບຕົວແມ່ນເປີດເປັນຄ່າເລີ່ມຕົ້ນ, ແລະຖືກອອກແບບເພື່ອໃຫ້ມີວິທີການທີ່ສົມດູນລະຫວ່າງການໃຊ້ CPU ຕໍ່າ ແລະປະສິດທິພາບສູງ. ແນວໃດກໍ່ຕາມ, ທ່ານອາດຈະລອງປັບການຕັ້ງຄ່າລົບກວນດ້ວຍຕົນເອງເພື່ອໃຫ້ເຫມາະສົມກັບກໍລະນີການນໍາໃຊ້ຂອງທ່ານ.
ໄລຍະ 0-235 microseconds ສະຫນອງລະດັບປະສິດທິພາບຂອງ 4,310 ຫາ 250,000 interrupts ຕໍ່ວິນາທີ. ມູນຄ່າຂອງ rx-μsecs-high ສາມາດຖືກກໍານົດເປັນເອກະລາດຂອງ rx-μsecs ແລະ tx-μsecs ໃນຄໍາສັ່ງ ethtool ດຽວກັນ, ແລະຍັງເປັນເອກະລາດຂອງ algorithm moderation interrupt ທີ່ສາມາດປັບຕົວໄດ້. ຮາດແວທີ່ຕິດພັນຮອງຮັບການຍ່ອຍສະຫຼາຍໃນໄລຍະ 2microsecond, ດັ່ງນັ້ນຄ່າທີ່ຢູ່ໃກ້ຄຽງອາດສົ່ງຜົນໃຫ້ອັດຕາການລົບກວນຄືກັນ.
- ເພື່ອປິດການປານກາງການລົບກວນແບບປັບຕົວໄດ້: ethtool -C ethX adaptive-rx off adaptive-tx ປິດ
- ເພື່ອເປີດໃຊ້ການປັບຕົວລົບກວນແບບປັບຕົວໄດ້: ethtool -C ethX adaptive-rx ເທິງ adaptive-tx ເປີດ
ສະຖານທີ່ທີ່ດີທີ່ຈະເລີ່ມຕົ້ນສໍາລັບການປັບທົ່ວໄປແມ່ນ 84 μs, ຫຼື ~ 12000 interrupts/s. ຖ້າທ່ານເຫັນ rx_dropped counters ກໍາລັງແລ່ນໃນລະຫວ່າງການຈະລາຈອນ (ໃຊ້ ethtool -S ethX) ຫຼັງຈາກນັ້ນ, ທ່ານອາດຈະມີ CPU ຊ້າເກີນໄປ, ບໍ່ພຽງພໍ buffers ຈາກຂະຫນາດວົງຂອງອະແດບເຕີ (ethtool -G) ທີ່ຈະຖືແພັກເກັດສໍາລັບ 84 μsຫຼືຕ່ໍາຂອງອັດຕາການຂັດຂວາງ.
- ເພື່ອກໍານົດການລົບກວນການລົບກວນເປັນອັດຕາລົບກວນຄົງທີ່ຂອງ 84 μsລະຫວ່າງ interrupts (12000 interrupts/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 ມູນຄ່າຕໍ່ໄປທີ່ຈະພະຍາຍາມ, ຖ້າທ່ານບໍ່ໄດ້ເພີ່ມສູງສຸດໃນການນໍາໃຊ້ CPU μs, ແມ່ນ 62 μs. ອັນນີ້ໃຊ້ CPU ຫຼາຍກວ່າ, ແຕ່ມັນບໍລິການ buffers ໄວກວ່າ, ແລະຕ້ອງການຕົວອະທິບາຍໜ້ອຍລົງ (ຂະໜາດແຫວນ, ethtool -G).
- ເພື່ອຕັ້ງຄ່າການລົບກວນການລົບກວນເປັນອັດຕາການລົບກວນຄົງທີ່ຂອງ 62 usecs ລະຫວ່າງ interrupts (16000 interrupts/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
ຖ້າ rx_dropped counters ເພີ່ມຂຶ້ນໃນລະຫວ່າງການຈະລາຈອນ (ການນໍາໃຊ້ ethtool -S ethX), ທ່ານອາດຈະມີ CPU ຊ້າເກີນໄປ, ບໍ່ພຽງພໍ buffers ຈາກຂະຫນາດວົງຂອງອະແດບເຕີ (ethtool -G), ຫຼືຕ່ໍາເກີນໄປຂອງອັດຕາການລົບກວນ. ຖ້າທ່ານບໍ່ໄດ້ເພີ່ມສູງສຸດໃນການນໍາໃຊ້ CPU, ທ່ານສາມາດເພີ່ມອັດຕາການຂັດຂວາງໂດຍການຫຼຸດຄ່າ ITR. ອັນນີ້ໃຊ້ CPU ຫຼາຍຂຶ້ນ, ແຕ່ບໍລິການຕ່າງໆຈະໄວຂຶ້ນ, ແລະຕ້ອງການຕົວອະທິບາຍໜ້ອຍລົງ (ຂະໜາດແຫວນ, ethtool -G).
If your CPU is at 100%, then increasing the interrupt rate is not advised. In certain circumstances such as a CPU bound workload, you might want to increase the μs value to enable more CPU time for other applications.
ຖ້າເຈົ້າຕ້ອງການປະສິດທິພາບການຕອບສະໜອງຕໍ່າ ແລະ/ຫຼືມີ CPU ຫຼາຍພໍທີ່ຈະອຸທິດໃຫ້ກັບການປະມວນຜົນເຄືອຂ່າຍ, ທ່ານສາມາດປິດການລົບກວນການລົບກວນທັງໝົດໄດ້, ເຊິ່ງເຮັດໃຫ້ການລົບກວນສາມາດດັບໄຟໄດ້ໄວເທົ່າທີ່ຈະໄວໄດ້. - ເພື່ອປິດການຂັດຂວາງການປານກາງ ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
ໝາຍເຫດ
ເມື່ອແລ່ນດ້ວຍການລົບກວນການລົບກວນຖືກປິດໄວ້, ອັດຕາການຂັດຂວາງໃນແຕ່ລະຄິວສາມາດສູງຫຼາຍ. ພິຈາລະນາລວມເອົາພາລາມິເຕີ rx-usec-high ເພື່ອກໍານົດຂອບເຂດສູງສຸດກ່ຽວກັບອັດຕາການຂັດຂວາງ. ຄໍາສັ່ງຕໍ່ໄປນີ້ປິດການປັບຕົວ interrupt moderation ແລະອະນຸຍາດໃຫ້ສູງສຸດ 5 microseconds ກ່ອນທີ່ຈະຊີ້ບອກວ່າການຮັບຫຼືສົ່ງສໍາເລັດ. ແທນທີ່ຈະເຮັດໃຫ້ຫຼາຍເຖິງ 200,000 ຂັດຂວາງຕໍ່ວິນາທີ, ມັນຈໍາກັດການຂັດຂວາງທັງຫມົດຕໍ່ວິນາທີເຖິງ 50,000 ຜ່ານພາລາມິເຕີ rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 ລອງປັບຕົວຈັບເວລາການສົ່ງ/ຮັບ/ການປະສານຄວາມສຳຄັນສູງ (80/100/150/200) ຫຼືຕ່ຳກວ່າ (25/20/10/5) ເພື່ອຊອກຄ່າທີ່ເໝາະສົມ.
4.4 ຂະຫນາດວົງ
ຖ້າທ່ານກໍາລັງເຫັນຕົວນັບ rx_dropped ໃນ ethtool -S ethX (rx_dropped, rx_dropped.nic), ຫຼືສົງໃສວ່າຄວາມກົດດັນ cache ທີ່ມີຫຼາຍຄິວເຮັດວຽກ, ທ່ານອາດຈະລອງປັບຂະຫນາດແຫວນຈາກຄ່າເລີ່ມຕົ້ນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 512, ສູງສຸດແມ່ນ 4096.
- ເພື່ອກວດສອບຄ່າປັດຈຸບັນ: ethtool -g ethX
ຖ້າມັນສົງໃສວ່າການຂາດ buffering ເຮັດໃຫ້ເກີດການຫຼຸດລົງໃນອັດຕາການຂັດຂວາງໃນປະຈຸບັນ, ທ່ານອາດຈະພະຍາຍາມສູງສຸດກ່ອນ, ຫຼັງຈາກນັ້ນຕໍາ່ສຸດທີ່, ຫຼັງຈາກນັ້ນສືບຕໍ່ໃນການຄົ້ນຫາຄູ່ຈົນກ່ວາທ່ານຈະເຫັນປະສິດທິພາບທີ່ດີທີ່ສຸດ.
ຖ້າຫາກວ່າຄວາມກົດດັນຂອງຖານຄວາມຈໍາເປັນຕ້ອງສົງໃສ (ຫຼາຍຄິວທີ່ມີການເຄື່ອນໄຫວ) ການຫຼຸດຜ່ອນ buffers ຈາກຄ່າເລີ່ມຕົ້ນສາມາດຊ່ວຍໃຫ້ Intel ® Data Direct I/O (Intel ® DDIO) ປະຕິບັດຢ່າງມີປະສິດທິພາບທີ່ດີກວ່າ. Intel ແນະນໍາໃຫ້ພະຍາຍາມ 128 ຫຼື 256 ຕໍ່ຄິວ, ໂດຍຮູ້ວ່າການເພີ່ມຂຶ້ນຂອງອັດຕາການຂັດຂວາງຜ່ານ ethtool -C ອາດຈະເປັນສິ່ງຈໍາເປັນເພື່ອຫຼີກເວັ້ນການເພີ່ມຂຶ້ນໃນ rx_dropped. - ເພື່ອກໍານົດຂະຫນາດວົງເປັນມູນຄ່າຄົງທີ່: ethtool -G eth12 rx 256 tx 256
ໝາຍເຫດ
To fix Rx packet drops found with ethtool -S ethX|grep drop, consider increasing the ring size to 4096. Experiment to find the best setting for the workload but watch out for excessive memory usage with higher values.
4.5 ການຄວບຄຸມການໄຫຼເຂົ້າ
ການຄວບຄຸມການໄຫຼຂອງຊັ້ນ 2 ສາມາດສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ TCP ຢ່າງຫຼວງຫຼາຍແລະຖືກແນະນໍາໃຫ້ປິດການໃຊ້ງານສໍາລັບວຽກສ່ວນໃຫຍ່. ຂໍ້ຍົກເວັ້ນທີ່ເປັນໄປໄດ້ແມ່ນການຈະລາຈອນທີ່ແຕກຫັກທີ່ການລະເບີດບໍ່ດົນ.
ການຄວບຄຸມການໄຫຼເຂົ້າຖືກປິດໃຊ້ງານໂດຍຄ່າເລີ່ມຕົ້ນ.
- ເພື່ອເປີດໃຊ້ການຄວບຄຸມການໄຫຼເຂົ້າ: ethtool -A ethX rx on tx on
- ເພື່ອປິດການຄວບຄຸມການໄຫຼເຂົ້າ: ethtool -A ethX rx off tx off
ໝາຍເຫດ
ທ່ານຕ້ອງມີຄູ່ຮ່ວມງານເຊື່ອມຕໍ່ທີ່ສາມາດຄວບຄຸມການໄຫຼເຂົ້າເພື່ອໃຫ້ສາມາດຄວບຄຸມການໄຫຼໄດ້ຢ່າງສໍາເລັດຜົນ.
4.6 ຂອບ Jumbo
ເມື່ອສະພາບແວດລ້ອມການຈະລາຈອນທີ່ຄາດວ່າຈະປະກອບດ້ວຍຂໍ້ມູນຂະຫນາດໃຫຍ່ທີ່ຖືກໂອນ, ມັນອາດຈະເປັນປະໂຫຍດທີ່ຈະເປີດໃຊ້ຄຸນນະສົມບັດ jumbo frame. ການສະຫນັບສະຫນູນ Jumbo Frames ຖືກເປີດໃຊ້ໂດຍການປ່ຽນຫນ່ວຍສົ່ງຂໍ້ມູນສູງສຸດ (MTU) ເປັນຄ່າທີ່ໃຫຍ່ກວ່າຄ່າເລີ່ມຕົ້ນຂອງ 1500. ນີ້ອະນຸຍາດໃຫ້ອຸປະກອນສາມາດໂອນຂໍ້ມູນໃນແພັກເກັດທີ່ໃຫຍ່ກວ່າພາຍໃນສະພາບແວດລ້ອມເຄືອຂ່າຍ. ການຕັ້ງຄ່ານີ້ອາດຈະປັບປຸງການສົ່ງຜ່ານ ແລະຫຼຸດຜ່ອນການໃຊ້ CPU ສໍາລັບວຽກ I/O ຂະຫນາດໃຫຍ່. ແນວໃດກໍ່ຕາມ, ມັນອາດຈະສົ່ງຜົນກະທົບຕໍ່ຊຸດນ້ອຍໆ ຫຼືວຽກທີ່ອ່ອນໄຫວຕໍ່ເວລາແພັກເກັດ.
ໝາຍເຫດ
ຂອບ Jumbo ຫຼືການຕັ້ງຄ່າ MTU ທີ່ໃຫຍ່ກວ່າຈະຕ້ອງຖືກຕັ້ງຄ່າຢ່າງຖືກຕ້ອງໃນທົ່ວສະພາບແວດລ້ອມເຄືອຂ່າຍຂອງທ່ານ.
ໃຊ້ຄໍາສັ່ງ ifconfig ເພື່ອເພີ່ມຂະຫນາດ MTU. ຕົວຢ່າງample, ໃສ່ຕໍ່ໄປນີ້, ບ່ອນທີ່ ແມ່ນໝາຍເລກການໂຕ້ຕອບ: ifconfig mtu 9000 ຂຶ້ນໄປ
ອີກທາງເລືອກ, ທ່ານສາມາດນໍາໃຊ້ຄໍາສັ່ງ ip ດັ່ງຕໍ່ໄປນີ້: ip link set mtu 9000 dev ip link ຕັ້ງຄ່າ dev
ການປັບແຕ່ງເວທີ (i40e ບໍ່ສະເພາະ)
5.1 ການຕັ້ງຄ່າ BIOS
- ເປີດໃຊ້ Intel® VT-d ສໍາລັບວຽກ virtualization.
- Hyper-threading (ໂປເຊດເຊີຢ່າງມີເຫດຜົນ) ສາມາດສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ. ທົດລອງເປີດ ຫຼືປິດສຳລັບວຽກຂອງເຈົ້າ.
- Intel® Turbo Boost ອະນຸຍາດໃຫ້ແກນ CPU ເຮັດວຽກໃນຄວາມຖີ່ທີ່ສູງກວ່າຄວາມຖີ່ພື້ນຖານຂອງ CPU. ການເປີດໃຊ້ Intel® Turbo Boost ສາມາດປັບປຸງປະສິດທິພາບສໍາລັບວຽກຈໍານວນຫຼາຍແຕ່ໃຊ້ພະລັງງານຫຼາຍເພື່ອຮັກສາແກນຢູ່ໃນຄວາມຖີ່ທີ່ສູງຂຶ້ນ. ທົດລອງກັບ Turbo Boost off/on ສໍາລັບວຽກຂອງທ່ານ.
ໝາຍເຫດ
ຄວາມຖີ່ຂອງ Turbo ບໍ່ໄດ້ຮັບການຮັບປະກັນຖ້າແພລະຕະຟອມກໍາລັງປະສົບກັບການນໍາໃຊ້ CPU ໂດຍລວມສູງ. ຄວາມຖີ່ turbo ຫຼັກທີ່ສູງຂຶ້ນແມ່ນຫຼຸດລົງຍ້ອນວ່າການນໍາໃຊ້ CPU ໂດຍລວມເພີ່ມຂຶ້ນ.
5.2 ການຄຸ້ມຄອງພະລັງງານ
ການຄຸ້ມຄອງພະລັງງານສາມາດສົ່ງຜົນກະທົບການປະຕິບັດ, ໂດຍສະເພາະແມ່ນໃນການເຮັດວຽກ latency ຕໍ່າ. ຖ້າການປະຕິບັດແມ່ນບູລິມະສິດສູງກວ່າການຫຼຸດຜ່ອນການໃຊ້ພະລັງງານ, Intel ແນະນໍາໃຫ້ທ່ານທົດລອງການຈໍາກັດຜົນກະທົບຂອງການຄຸ້ມຄອງພະລັງງານ. ມີຫຼາຍວິທີທີ່ແຕກຕ່າງກັນເພື່ອຈໍາກັດການຄຸ້ມຄອງພະລັງງານ, ໂດຍຜ່ານເຄື່ອງມືຂອງລະບົບປະຕິບັດການ, ການຕັ້ງຄ່າ BIOS, ແລະຕົວກໍານົດການ boot kernel. ເລືອກວິທີການທີ່ດີທີ່ສຸດແລະລະດັບທີ່ເຫມາະສົມກັບສະພາບແວດລ້ອມຂອງທ່ານ.
5.2.1 ການຄວບຄຸມ C-State
ການຈໍາກັດການເຂົ້າມາຂອງ C-state ກັບ CO ຫຼື C1 ປັບປຸງການປະຕິບັດແລະເພີ່ມການໃຊ້ພະລັງງານ.
ການປິດການນຳໃຊ້ CPU Package C6 state ສາມາດປັບປຸງປະສິດທິພາບເຄືອຂ່າຍ. ຢ່າງໃດກໍຕາມ, ນີ້ເພີ່ມການນໍາໃຊ້ພະລັງງານ.
ຕົວເລືອກຕໍ່ໄປນີ້ແມ່ນມີຢູ່:
- ຄວບຄຸມການເຂົ້າລັດ C ແບບໄດນາມິກ:
ເປີດ
/dev/cpu_dma_latency ແລະຂຽນເວລາ latency ສູງສຸດທີ່ອະນຸຍາດໃຫ້ມັນ.
ໝາຍເຫດ
ມີໂຄງການຂະຫນາດນ້ອຍທີ່ເອີ້ນວ່າ cpudmalatency.c ທີ່ສາມາດດາວໂຫຼດໄດ້ຈາກຊຸມຊົນແຫຼ່ງເປີດ, ລວບລວມແລະດໍາເນີນການຈາກເສັ້ນຄໍາສັ່ງເພື່ອເຮັດແນວນີ້ຢ່າງແທ້ຈິງ.
ຕໍ່ໄປນີ້ example ອະນຸຍາດໃຫ້ຫ້າμsຂອງເວລາຕື່ນ, ແລະດັ່ງນັ້ນຈຶ່ງອະນຸຍາດໃຫ້ເຂົ້າ C1: cpudmalatency 5 &
- ຈໍາກັດ C-state ສູງສຸດໃນການຕັ້ງຄ່າ kernel boot:
ສໍາລັບ CPU Intel: intel_idle.max_cstates=1
ສຳລັບ CPU ທີ່ບໍ່ແມ່ນ Intel: processor.max_cstates=1 - ໃຊ້ຄຳສັ່ງ cpupower ເພື່ອກວດສອບ ແລະປິດສະຖານະ CPU C6: ກວດເບິ່ງ: cpupower monitor ຫຼື cpupower idle-info
ປິດການໃຊ້ງານ C6: cpupower idle-set -d3 ຫຼື
ປິດໃຊ້ງານ C-States: cpupower idle-set -D0
ໝາຍເຫດ:
- ປິດໃຊ້ງານ C-states ໃນ CPU ຖ້າເຊີບເວີມີ Intel® 4th Gen Intel® Xeon® Scalable Processor(s). ເມື່ອ Hyper Threading ຖືກເປີດໃຊ້ຫຼືປິດການໃຊ້ງານ, ການປິດການໃຊ້ງານລັດ idle (-D0) ປ້ອງກັນບໍ່ໃຫ້ cores ເຂົ້າໄປໃນລັດພະລັງງານຕ່ໍາໃນລະຫວ່າງໄລຍະເວລາ idle ແລະຫຼຸດຜ່ອນການ latency ສໍາລັບ CPU ໃນການປ່ຽນລະຫວ່າງລັດ idle ແລະ active.
- ການຈັດການພະລັງງານຂອງ Intel® 4th Gen Intel® Xeon® Scalable Processor ແມ່ນມີຄວາມຮຸກຮານທີ່ສຸດ. ເພື່ອຫຼີກເວັ້ນການ cores ຈາກການເຂົ້າໄປໃນລັດພະລັງງານຕ່ໍາ, ພະຍາຍາມຫຼຸດຜ່ອນຈໍານວນຂອງ cores ໃນການນໍາໃຊ້ເພື່ອເຮັດໃຫ້ເຂົາເຈົ້າຕື່ນຕົວໄດ້ດົນຂຶ້ນ (ethtool -L ລວມກັນ ). ນອກຈາກນີ້, ຜູກມັດການຂັດຂວາງກັບແກນສະເພາະໂດຍໃຊ້ການຕັ້ງຄ່າ irq affinity (ສ່ວນຫຼາຍມັກຈະມີ -x ທ້ອງຖິ່ນຫຼືລາຍຊື່ຂອງ CPU cores), ແລະຮັບປະກັນວ່າວຽກເຮັດວຽກຢູ່ໃນແກນດຽວກັນກັບຊຸດວຽກຫຼື numactl. ນີ້ປັບປຸງປະສິດທິພາບໂດຍການຮັກສາ cores ການເຄື່ອນໄຫວແລະເພີ່ມປະສິດທິພາບການຈັດການຂັດຂວາງ.
ເປີດໃຊ້ C6:
cpupower idle-set -d3
ເປີດໃຊ້ C-States:
cpupower idle-set -E
- ອີກວິທີ ໜຶ່ງ ແມ່ນການໃຊ້ເຄື່ອງມືທີ່ປັບແຕ່ງ (ລວມທັງການແຈກຢາຍ Linux ຫຼາຍໆຢ່າງ) ເພື່ອຕັ້ງຄ່າການເພີ່ມປະສິດທິພາບ.file. ເຫຼົ່ານີ້ສົ່ງເສີມfiles ແກ້ໄຂການຕັ້ງຄ່າ OS ຫຼາຍອັນທີ່ສາມາດສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດໃນທົ່ວຫຼາຍຄໍາຮ້ອງສະຫມັກ. ມັນໄດ້ຖືກພົບເຫັນວ່າເຄືອຂ່າຍຜ່ານ profile ສະຫນອງການປັບປຸງວຽກງານສ່ວນໃຫຍ່.
ກວດສອບ:
tuned-adm active
ຕັ້ງ:
tuned-adm profile ເຄືອຂ່າຍຜ່ານ
ໝາຍເຫດ
ການບໍລິການ Tuned ຕ້ອງແລ່ນສໍາລັບຄໍາສັ່ງຂ້າງເທິງ. ເພື່ອກວດສອບ/ຣີສະຕາດ, ປັບ: ສະຖານະ systemctl tuned systemctl restart tuned
ນອກນັ້ນທ່ານຍັງສາມາດບໍ່ອະນຸຍາດໃຫ້ມີ C-state ໃດໆໂດຍການເພີ່ມສິ່ງຕໍ່ໄປນີ້ໃສ່ເສັ້ນບູດຂອງ kernel:
idle=ແບບສຳຫຼວດ - ຈໍາກັດ C-state ຜ່ານການຕັ້ງຄ່າການຈັດການພະລັງງານຂອງ BIOS ຂອງລະບົບ, ເຊິ່ງອາດຈະມີການປະຕິບັດທີ່ສະຫນັບສະຫນູນfile ມີໃຫ້.
ເຄື່ອງມືເຊັ່ນ: turbostat ຫຼື x86_energy_perf_policy ສາມາດຖືກນໍາໃຊ້ເພື່ອກວດສອບຫຼືຕັ້ງຄ່າການຈັດການພະລັງງານ.
5.2.2 ການຄຸ້ມຄອງພະລັງງານ PCIe
Active-State Power Management (ASPM) ເປີດໃຊ້ສະຖານະພະລັງງານຕ່ໍາສໍາລັບການເຊື່ອມຕໍ່ PCIe ໃນເວລາທີ່ພວກເຂົາບໍ່ໄດ້ຢູ່ໃນການເຄື່ອນໄຫວ. ນີ້ສາມາດເຮັດໃຫ້ເກີດຄວາມລ່າຊ້າທີ່ສູງຂຶ້ນໃນອຸປະກອນເຄືອຂ່າຍ PCIe, ດັ່ງນັ້ນ Intel ແນະນໍາໃຫ້ທ່ານປິດການໃຊ້ງານ ASPM ສໍາລັບການເຮັດວຽກທີ່ມີຄວາມອ່ອນໄຫວ latency. ປິດການໃຊ້ງານ ASPM ໂດຍການເພີ່ມສິ່ງຕໍ່ໄປນີ້ໃສ່ kernel boot line: pcie_aspm=off
5.2.3 ການປັບຂະໜາດຄວາມຖີ່ CPU
ການຂະຫຍາຍຄວາມຖີ່ຂອງ CPU (ຫຼືການຂະຫຍາຍຄວາມໄວ CPU) ເປັນເຕັກນິກການຄຸ້ມຄອງພະລັງງານ Linux ທີ່ການປັບຄວາມໄວໂມງຂອງລະບົບໃນການບິນເພື່ອປະຢັດພະລັງງານແລະຄວາມຮ້ອນ. ຄືກັນກັບ C-states, ນີ້ສາມາດເຮັດໃຫ້ເກີດຄວາມລ່າຊ້າທີ່ບໍ່ຕ້ອງການໃນການເຊື່ອມຕໍ່ເຄືອຂ່າຍ.
ເຄື່ອງມື cpupower ຍັງສາມາດຖືກນໍາໃຊ້ເພື່ອກວດກາເບິ່ງແລະປັບປຸງການເລີ່ມຕົ້ນການປະຕິບັດ CPU ແລະຂໍ້ຈໍາກັດ:
- ກວດສອບ: cpupower monitor ຫຼື
- ຕັ້ງຄ່າ CPU ໃຫ້ເປັນໂໝດປະສິດທິພາບ: cpupower frequency-set -g performance
ໝາຍເຫດ
ການດັດແປງການຈຳກັດຄວາມຖີ່ຂອງ CPU ສາມາດສົ່ງຜົນກະທົບຕໍ່ຫຼາຍວຽກ ແລະອາດຈະປິດການໃຊ້ງານຄຸນສົມບັດອື່ນໆ ເຊັ່ນ: CPU turbo mode.
ເພື່ອປິດການຂະຫຍາຍຄວາມຖີ່ຂອງ CPU, ປິດການບໍລິການພະລັງງານ CPU ໂດຍຄໍາສັ່ງຕໍ່ໄປນີ້:
systemctl ຢຸດ cpupower.service
systemctl ປິດໃຊ້ງານ cpupower.service
5.2.4 ຄຳແນະນຳການຄຸ້ມຄອງພະລັງງານເພີ່ມເຕີມ
ລາຍລະອຽດເພີ່ມເຕີມແມ່ນໃຫ້ຢູ່ໃນລະດັບສູງນີ້view ຂອງຫຼາຍລັກສະນະການຈັດການພະລັງງານຢູ່ໃນໂປເຊດເຊີ Intel® Xeon® Scalable ຮຸ່ນທີ 3, ເຊັ່ນດຽວກັນກັບຄໍາແນະນໍາກ່ຽວກັບວິທີການລັກສະນະເຫຼົ່ານີ້ສາມາດປະສົມປະສານໃນລະດັບເວທີ: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost ເຮັດໃຫ້ໂປເຊດເຊີໄວຂຶ້ນເມື່ອຕ້ອງການ ແຕ່ສາມາດບໍລິໂພກພະລັງງານເພີ່ມເຕີມໄດ້. ການປິດ Turbo Boost ຈະເຮັດໃຫ້ໂປເຊດເຊີຢູ່ໃນຄວາມໄວທີ່ຄົງທີ່, ໃຫ້ທ່ານມີລະດັບການປະຕິບັດທີ່ສອດຄ່ອງສໍາລັບວຽກສະເພາະ.
5.4 Firewalls
Firewalls ສາມາດສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ, ໂດຍສະເພາະການປະຕິບັດການ latency.
ປິດໃຊ້ງານ iptables/firewalld ຖ້າບໍ່ຕ້ອງການ.
5.5 ການຕັ້ງຄ່າແອັບພລິເຄຊັນ
ເລື້ອຍໆກະທູ້ດຽວ (ເຊິ່ງກົງກັບແຖວເຄືອຂ່າຍດຽວ) ບໍ່ພຽງພໍທີ່ຈະບັນລຸແບນວິດສູງສຸດ. ບາງສະຖາປັດຕະຍະກໍາຂອງແພລະຕະຟອມ, ເຊັ່ນ AMD, ມີແນວໂນ້ມທີ່ຈະລຸດຊຸດ Rx ຫຼາຍຂຶ້ນດ້ວຍກະທູ້ດຽວເມື່ອທຽບກັບເວທີທີ່ມີໂປເຊດເຊີ Intel.
ພິຈາລະນາໃຊ້ເຄື່ອງມືເຊັ່ນຊຸດວຽກ ຫຼື numactl ເພື່ອປັກໝຸດແອັບພລິເຄຊັນໃສ່ NUMA node ຫຼື CPU cores ກັບອຸປະກອນເຄືອຂ່າຍ. ສໍາລັບບາງວຽກເຊັ່ນ: ການເກັບຮັກສາ I/O, ການຍ້າຍແອັບພລິເຄຊັນໄປຫາ node ທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນໃຫ້ຜົນປະໂຫຍດ.
Experiment with increasing the number of threads used by your application if possible.
5.6 ລຸ້ນ Kernel
ແກ່ນໃນກ່ອງທີ່ທັນສະໄຫມສ່ວນໃຫຍ່ຖືກປັບປຸງໃຫ້ເຫມາະສົມກັບປະສິດທິພາບແຕ່, ຂຶ້ນກັບກໍລະນີການນໍາໃຊ້ຂອງທ່ານ, ການປັບປຸງແກ່ນອາດຈະໃຫ້ປະສິດທິພາບການປັບປຸງ. ການດາວໂຫຼດແຫຼ່ງທີ່ມາຍັງເຮັດໃຫ້ທ່ານສາມາດເປີດ/ປິດຄຸນສົມບັດບາງຢ່າງກ່ອນທີ່ຈະສ້າງແກ່ນໄດ້.
5.7 ການຕັ້ງຄ່າລະບົບປະຕິບັດການ / Kernel
ປຶກສາຫາລືຄູ່ມືການປັບລະບົບປະຕິບັດການ, ເຊັ່ນ Red Hat Enterprise Linux Network Tuning Guide, ສໍາລັບຄວາມເຂົ້າໃຈເພີ່ມເຕີມກ່ຽວກັບການປັບລະບົບປະຕິບັດງານທົ່ວໄປ.
Some common parameters to tune are listed in the following table. Note that these are only suggested starting points, and changing them from the defaults might increase the resources used on the system. Though increasing the values can help improve performance, it is necessary to experiment with different values to determine what works best for a given system, workload and traffic type.
ຕົວກໍານົດການ kernel ແມ່ນສາມາດຕັ້ງຄ່າໄດ້ໂດຍໃຊ້ sysctl utility ໃນ Linux ຕາມທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້.
ເຖິງ 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
ຂະຫນາດ socket buffer, ເຊິ່ງເອີ້ນກັນວ່າ receive buffer (rmem) ແລະ transmit buffer (wmem), ແມ່ນຕົວກໍານົດການຂອງລະບົບທີ່ລະບຸຈໍານວນຫນ່ວຍຄວາມຈໍາທີ່ສະຫງວນໄວ້ສໍາລັບການຈະລາຈອນເຄືອຂ່າຍຂາເຂົ້າແລະຂາອອກ.
ແລ່ນ sysctl ໂດຍບໍ່ມີການ argument -w ລາຍຊື່ພາລາມິເຕີດ້ວຍການຕັ້ງຄ່າປະຈຸບັນຂອງມັນ.
| ການຕັ້ງຄ່າ stack | ລາຍລະອຽດ |
| net.core.rmem_default | ຂະໜາດໜ້າຕ່າງຮັບຄ່າເລີ່ມຕົ້ນ |
| net.core.wmem_default | ຂະໜາດໜ້າຈໍສົ່ງເລີ່ມຕົ້ນ |
| net.core.rmem_max | ຂະໜາດໜ້າຈໍຮັບສູງສຸດ |
| net.core.wmem_max | ຂະໜາດໜ້າຈໍສົ່ງສູງສຸດ |
| net.core.optmem_max | ຕົວເລືອກສູງສຸດຂອງໜ່ວຍຄວາມຈຳ Buffers |
| net.core.netdev_max_backlog | Backlog ຂອງແພັກເກັດທີ່ບໍ່ໄດ້ປຸງແຕ່ງກ່ອນທີ່ kernel ຈະເລີ່ມຫຼຸດລົງ |
| net.ipv4.tcp_rmem | ສະຫງວນຄວາມຈໍາສໍາລັບ TCP ອ່ານ buffers |
| net.ipv4.tcp_wmem | ສະຫງວນຄວາມຈໍາສໍາລັບ TCP ສົ່ງ buffers |
Kernel, stack network, memory handler, CPU speed, and power management parameters can have a large impact on network performance. ຄໍາແນະນໍາທົ່ວໄປແມ່ນເພື່ອນໍາໃຊ້ກັບເຄືອຂ່າຍ throughput profile ການນໍາໃຊ້ຄໍາສັ່ງ tuned. ນີ້ແກ້ໄຂການຕັ້ງຄ່າ OS ຈໍານວນຫນ້ອຍເພື່ອສະຫນອງການຕັ້ງຄ່າໃຫ້ກັບແອັບພລິເຄຊັນເຄືອຂ່າຍ.
ກວດສອບ:
tuned-adm active
ຕັ້ງ:
tuned-adm profile ເຄືອຂ່າຍຜ່ານ
5.8 Network Device Backlog
ຄຸນສົມບັດນີ້ຊ່ວຍປັບປຸງປະສິດທິພາບຂອງເຄືອຂ່າຍໂດຍການຈັດການການຈະລາຈອນຂາເຂົ້າຢ່າງມີປະສິດທິພາບ, ຫຼຸດຜ່ອນການສູນເສຍແພັກເກັດ, ຫຼຸດເວລາແພັກເກັດ ແລະເພີ່ມການສົ່ງຂໍ້ມູນ. ນີ້ເຮັດໃຫ້ປະສົບການຂອງຜູ້ໃຊ້ທີ່ດີກວ່າແລະການຕອບສະຫນອງຂອງລະບົບໄວຂຶ້ນ.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ມັນຖືກເປີດໃຊ້ໃນລະບົບປະຕິບັດການ Linux ສ່ວນໃຫຍ່. ເພື່ອກວດເບິ່ງຄ່າເລີ່ມຕົ້ນ:
sysctl net.core.netdev_max_backlog
ຄ່າສູງສຸດຂອງ netdev_max_backlog ສາມາດແຕກຕ່າງກັນໄປຕາມປັດໃຈເຊັ່ນ: ລຸ້ນຂອງ kernel, ຮາດແວ, ໜ່ວຍຄວາມຈຳ ແລະ ປະລິມານວຽກ. ໃນຫຼາຍໆກໍລະນີ, 8192 ແມ່ນເຫັນວ່າເປັນມູນຄ່າທີ່ດີ. sysctl -w net.core.netdev_max_backlog=8192
5.9 ການຕັ້ງຄ່າສະເພາະເວທີ ແລະ ການປັບແຕ່ງ
5.9.1 ຮຸ່ນທີ 4 Intel® Xeon® Scalable Processors
ການຈັດການພະລັງງານຂອງໂປເຊດເຊີ Intel® 4th Generation Intel® Xeon® Scalable ແມ່ນມີຄວາມຮຸກຮານທີ່ສຸດເມື່ອທຽບໃສ່ກັບໂປເຊດເຊີ Intel® Xeon® Scalable ຮຸ່ນທີ 3. ເພື່ອຫຼີກເວັ້ນແກນຈາກການເຂົ້າໄປໃນລັດທີ່ມີພະລັງງານຕ່ໍາ, ລອງຫຼຸດຈໍານວນແກນທີ່ໃຊ້ຢູ່ເພື່ອເຮັດໃຫ້ພວກມັນຕື່ນຕົວດົນຂຶ້ນ.
ແນະນຳການຕັ້ງຄ່າ Bios ສໍາລັບປະສິດທິພາບສູງສຸດ
- Hyper-threading ເປີດ/ປິດໃຊ້ງານ (ອີງຕາມຄວາມຕ້ອງການວຽກ ແລະເປົ້າໝາຍປະສິດທິພາບ) ໃນ CPU.
- ກໍານົດລະບົບ profile ເພື່ອປະສິດທິພາບສູງສຸດ.
ໝາຍເຫດ
ນີ້ເຮັດໃຫ້ການບໍລິໂພກພະລັງງານສູງຂຶ້ນ - ຕັ້ງຄ່າການຈັດການພະລັງງານຂອງ CPU ເປັນປະສິດທິພາບສູງສຸດເພື່ອຈັດລໍາດັບຄວາມສໍາຄັນຂອງປະສິດທິພາບ CPU ສູງສຸດຫຼາຍກວ່າປະສິດທິພາບພະລັງງານ.
- Enable Turbo Boost. Disabling Turbo Boost in the system BIOS settings typically prevents the CPU from dynamically increasing its clock speed beyond its base frequency.
- ໝາຍເຫດ
ການປິດການໃຊ້ງານ Turbo Boost ອາດຈະເໝາະສົມກັບກໍລະນີການນຳໃຊ້ທີ່ສອດຄ່ອງກັນ, ປະສິດທິພາບພະລັງງານ, ຫຼືການຈັດການຄວາມຮ້ອນແມ່ນໃຫ້ຄວາມສຳຄັນຫຼາຍກວ່າປະສິດທິພາບສູງສຸດ. - ປິດຄຸນສົມບັດ Single Root I/O Virtualization (SR-IOV), ຖ້າລະບົບບໍ່ໄດ້ໃຊ້ເຕັກໂນໂລຊີ virtualization.
- ປິດການໃຊ້ງານ C-states ເພື່ອສັ່ງໃຫ້ CPU ເຮັດວຽກຢູ່ ແລະປ້ອງກັນການເຂົ້າສູ່ສະຖານະທີ່ບໍ່ເຮັດວຽກທີ່ເລິກເຊິ່ງກວ່າ.
- ປິດການໃຊ້ງານ C1E, ເພື່ອຮັບປະກັນວ່າ CPU ຍັງເຮັດວຽກຢູ່ ແລະບໍ່ໄດ້ເຂົ້າໄປໃນສະຖານະ C1E idle.
- ຕັ້ງຄວາມຖີ່ uncore ສູງສຸດເພື່ອສັ່ງໃຫ້ລະບົບເຮັດວຽກຢູ່ໃນຄວາມຖີ່ສູງສຸດທີ່ມີຢູ່.
- ໃນແພລດຟອມຂອງ Dell, ໃຫ້ຕັ້ງການຈໍາລອງຫຼັກ APIC ຫຼາຍໆອັນ (MADT) ເປັນ Linear (ຫຼື Round-Robin ຂຶ້ນກັບ BIOS) ເພື່ອໃຫ້ມີແຜນທີ່ທີ່ຊັດເຈນ ແລະສາມາດຄາດເດົາໄດ້ຂອງແກນ CPU.
ການປັບລະດັບ OS ທີ່ແນະນຳເພື່ອປະສິດທິພາບທີ່ເໝາະສົມ
- ຕັ້ງຄ່າຜູ້ປົກຄອງການຂະຫຍາຍຄວາມຖີ່ຂອງ CPU ເພື່ອປະສິດທິພາບ. cpupower frequency-set -g ປະສິດທິພາບ cpupower frequency-info
- ປິດການໃຊ້ງານ C-States. cpupower idle-set -D0
- ຕັ້ງ core Rx (rmem) ແລະ Tx (wmem) buffers ເປັນຄ່າສູງສຸດ. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- ຕັ້ງຄ່າ backlog ອຸປະກອນເຄືອຂ່າຍ. sysctl -w net.core.netdev_max_backlog=8192
- ຕັ້ງຄ່າ tuned profile (ປະລິມານວຽກຂຶ້ນກັບການສົ່ງຜ່ານ/ການເລັ່ງເວລາ).
tuned-adm profile ເຄືອຂ່າຍຜ່ານ
ການປັບລະດັບອະແດບເຕີທີ່ແນະນຳເພື່ອປະສິດທິພາບທີ່ເໝາະສົມ
- ຈໍາກັດຈໍານວນຂອງຄິວທີ່ຈະນໍາໃຊ້ສໍາລັບການຈະລາຈອນຂອງຄໍາຮ້ອງສະຫມັກ. ໃຊ້ຈໍານວນຄິວຕໍາ່ສຸດທີ່ຕ້ອງໃຊ້ເພື່ອຮັກສາແກນ CPU ທີ່ກ່ຽວຂ້ອງເພື່ອປ້ອງກັນບໍ່ໃຫ້ພວກມັນເຂົ້າໄປໃນສະຖານະທີ່ບໍ່ເຮັດວຽກທີ່ເລິກເຊິ່ງກວ່າ (ປັບຄ່າວຽກ): ethtool -L ລວມ 32
- ກໍານົດອັດຕາການຂັດຂວາງການຂັດຂວາງ. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
ລອງປັບຕົວຈັບເວລາການສົ່ງ/ຮັບ/ການປະສານຄວາມສຳຄັນສູງໃຫ້ສູງຂຶ້ນ (80/100/150/200) ຫຼືຕ່ຳກວ່າ (25/20/10/5) ເພື່ອຊອກຫາຄ່າທີ່ເໝາະສົມກັບປະລິມານວຽກ. - ກໍານົດຂະຫນາດແຫວນ Rx/Tx. ethtool -G rx 4096 tx 4096
ໝາຍເຫດ
ຖ້າທ່ານເຫັນແພັກເກັດ Rx ຫຼຸດລົງດ້ວຍ ethtool -S| grep ຫຼຸດລົງ, ລອງຫຼຸດຂະໜາດແຫວນລົງເປັນ <4096. ພະຍາຍາມຊອກຫາຄ່າທີ່ດີທີ່ສຸດສໍາລັບວຽກທີ່ແພັກເກັດບໍ່ໄດ້ຖືກຫຼຸດລົງ. - ຕັ້ງຄ່າ IRQ Affinity. ໃຊ້ cores local to NIC, ຫຼືການສ້າງແຜນທີ່ຫຼັກສະເພາະ (ບ່ອນທີ່ # cores ເທົ່າກັບຈໍານວນຄິວທີ່ກໍານົດໄວ້ໃນ 1 ໃນຫນ້າ 26. systemctl ຢຸດ irqbalance set_irq_affinity -X local ຫຼື set_irq_affinity -X
5.9.2 AMD EPYC
ໂປເຊດເຊີ AMD EPYC ແມ່ນ CPU ທີ່ມີປະສິດທິພາບທີ່ສ້າງຂຶ້ນສໍາລັບເຄື່ອງແມ່ຂ່າຍແລະສູນຂໍ້ມູນ, ສ້າງຂຶ້ນໃນສະຖາປັດຕະຍະກໍາ Zen ຂອງ AMD. ການຕັ້ງຄ່າຂ້າງລຸ່ມນີ້ແມ່ນມາຈາກຊຸດ EPYC ລຸ້ນທີ 4 ຂອງ AMD.
ແນະນໍາການຕັ້ງຄ່າ BIOS ສໍາລັບປະສິດທິພາບສູງສຸດ
- ເປີດໃຊ້ໂໝດກຳນົດເອງເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດປັບປະສິດທິພາບ CPU, ການໃຊ້ພະລັງງານ ແລະການຕັ້ງຄ່າອື່ນໆ. ນີ້ຊ່ວຍໃນການປັບລະບົບສໍາລັບການດຸ່ນດ່ຽງທີ່ດີທີ່ສຸດລະຫວ່າງປະສິດທິພາບແລະປະສິດທິພາບພະລັງງານ.
- ເປີດໃຊ້ການເພີ່ມປະສິດທິພາບຫຼັກເພື່ອໃຫ້ CPU ເພີ່ມຄວາມໄວໂດຍອັດຕະໂນມັດໃນການຈັດການວຽກທີ່ເຂັ້ມຂຸ້ນຂຶ້ນ, ປັບປຸງປະສິດທິພາບໂດຍລວມ.
- ປິດການໃຊ້ງານການຄວບຄຸມລັດ C ທົ່ວໂລກ, ເພື່ອປ້ອງກັນບໍ່ໃຫ້ CPU ເຂົ້າສູ່ລັດປະຢັດພະລັງງານທີ່ເລິກເຊິ່ງກວ່າທີ່ເອີ້ນວ່າ C-states, ເຊິ່ງສາມາດຮັກສາການຕອບສະໜອງໄດ້.
ໝາຍເຫດ
ການປິດການນຳໃຊ້ສະຖານະ C ສາມາດເຮັດໃຫ້ເກີດການໃຊ້ພະລັງງານເພີ່ມເຕີມ ແລະເພີ່ມອຸນຫະພູມຄວາມຮ້ອນ. ຕິດຕາມກວດກາທັງສອງສໍາລັບການເຮັດວຽກ. - ເປີດ/ປິດການໃຊ້ງານ Simultaneous Multithreading (SMT) ໃນ CPU, ໂດຍອີງໃສ່ຄວາມຕ້ອງການວຽກ ແລະເປົ້າໝາຍການປະຕິບັດ. SMT ແມ່ນທຽບເທົ່າກັບ Hyper Threading ໃນ CPU Intel.
ໝາຍເຫດ
ສໍາລັບການປະຕິບັດການເພີ່ມປະສິດທິພາບ, ອ້າງອີງເຖິງ Tuning i40e Driver Settings ໃນຫນ້າ 13 ແລະ Platform Tuning (i40e Non-Specific) ໃນຫນ້າ 19 ສໍາລັບການປັບລະດັບ OS ແລະອະແດບເຕີທີ່ແນະນໍາ.
ການຜູກມັດອະແດບເຕີ
ການຜູກມັດ Linux ແມ່ນຄຸນສົມບັດທີ່ມີປະສິດທິພາບທີ່ສາມາດປັບປຸງປະສິດທິພາບເຄືອຂ່າຍ, ການຊໍ້າຊ້ອນ, ແລະຄວາມທົນທານຕໍ່ຄວາມຜິດໃນສະພາບແວດລ້ອມຂອງເຄື່ອງແມ່ຂ່າຍ. ຢ່າງໃດກໍ່ຕາມ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າມັນຮຽກຮ້ອງໃຫ້ມີຮາດແວເຄືອຂ່າຍທີ່ເຂົ້າກັນໄດ້ແລະການຕັ້ງຄ່າທີ່ເຫມາະສົມທັງເຄື່ອງແມ່ຂ່າຍແລະສະຫຼັບເພື່ອເຮັດວຽກຢ່າງຖືກຕ້ອງ.
ໄດເວີການຜູກມັດໃນ Linux ຊ່ວຍໃຫ້ທ່ານສາມາດລວບລວມການໂຕ້ຕອບເຄືອຂ່າຍທາງດ້ານຮ່າງກາຍຫຼາຍອັນເຂົ້າໄປໃນການໂຕ້ຕອບທີ່ຜູກມັດ. ການໂຕ້ຕອບທີ່ຜູກມັດນີ້ປາກົດເປັນການໂຕ້ຕອບເຄືອຂ່າຍ virtual ດຽວກັບລະບົບປະຕິບັດການແລະແອັບພລິເຄຊັນ.
ໝາຍເຫດ
ພັນທະບັດແມ່ນການໂຕ້ຕອບຢ່າງມີເຫດຜົນ, ດັ່ງນັ້ນມັນບໍ່ສາມາດກໍານົດຄວາມໃກ້ຊິດຂອງ CPU ໂດຍກົງໃນການໂຕ້ຕອບພັນທະບັດ (ສໍາລັບ ex.ample, bond0). ນັ້ນແມ່ນ, ມັນບໍ່ມີການຄວບຄຸມໂດຍກົງຕໍ່ການຈັດການຂັດຂວາງຫຼືຄວາມໃກ້ຊິດຂອງ CPU. ຄວາມສຳພັນຂອງ CPU ຈະຕ້ອງຖືກກຳນົດຄ່າສຳລັບສ່ວນຕິດຕໍ່ທີ່ຕິດພັນເຊິ່ງເປັນສ່ວນໜຶ່ງຂອງພັນທະບັດ.
ພັນທະບັດສະຫນອງຫຼາຍຮູບແບບຂອງການດໍາເນີນງານ, ແຕ່ລະຄົນມີລັກສະນະຂອງຕົນເອງ.
| ໂໝດ | ປະເພດ |
| 0 | ຮອບ ໂຣບິນ |
| 1 | Active Backup |
| 2 | XOR |
| 3 | ອອກອາກາດ |
| 4 | LACP |
| 5 | ສົ່ງຍອດການໂຫຼດ |
| 6 | ການດຸ່ນດ່ຽງການໂຫຼດແບບປັບຕົວໄດ້ |
ມີວິທີການທີ່ແຕກຕ່າງກັນໃນການສ້າງຄວາມຜູກພັນໃນ Linux. ຫນຶ່ງໃນວິທີການທົ່ວໄປທີ່ສຸດແມ່ນການນໍາໃຊ້ການຕັ້ງຄ່າເຄືອຂ່າຍ files (ສໍາລັບການຍົກຕົວຢ່າງample, /etc/network/ interfaces ຫຼື /etc/sysconfig/network-scripts/ifcfg-bondX).
ການຕັ້ງຄ່າການນໍາໃຊ້ການຕັ້ງຄ່າເຄືອຂ່າຍ Files
ຂັ້ນຕອນຕໍ່ໄປນີ້ສ້າງການຜູກມັດຜ່ານການຕັ້ງຄ່າເຄືອຂ່າຍ files.
- ເລືອກສອງພອດ NIC ຫຼືຫຼາຍກວ່ານັ້ນສໍາລັບການຜູກມັດ (ຕົວຢ່າງample, ethX ແລະ ethY)
- ເປີດ NIC Configuration Files ພາຍໃຕ້ /etc/sysconfig/network-scripts/ ສໍາລັບການໂຕ້ຕອບ NIC ທີ່ຕ້ອງການ (ສໍາລັບ example, vi ifcfg-ethX ແລະ vi ifcfg-ethY) ແລະຕໍ່ທ້າຍຂໍ້ຄວາມຕໍ່ໄປນີ້:
MASTER=bondN [ໝາຍເຫດ: N ແມ່ນຈຳນວນເຕັມທີ່ຈະກ່າວເຖິງຕົວເລກພັນທະບັດ.] SLAVE=yes - ສ້າງສະຄຣິບເຄືອຂ່າຍພັນທະບັດ file ໂດຍໃຊ້ vi /etc/sysconfig/networkscripts/ifcfg-bondN ແລະໃສ່ຂໍ້ຄວາມຕໍ່ໄປນີ້:
DEVICE=bondN [ໝາຍເຫດ: N ເປັນຈຳນວນເຕັມທີ່ກ່າວເຖິງຕົວເລກພັນທະບັດ] ONBOOT=yes USERCTL=no BOOTPROTO=dhcp (ຫຼື) none
IPADDR=200.20.2.4 [ຕ້ອງການຖ້າ BOOTPROTO=none] NETMASK=255.255.255.0 [ຕ້ອງການຖ້າ BOOTPROTO=none] NETWORK=200.20.2.0 [ຕ້ອງການຖ້າ BOOTPROTO=none] Bquired.200.20.2.255re1. BOOTPROTO=none] BONDING_OPTS=”mode=100 miimon=XNUMX″
ໝາຍເຫດ
ໂໝດສາມາດເປັນຈຳນວນເຕັມຈາກ 0 ຫາ 6 ໂດຍອີງໃສ່ຄວາມຕ້ອງການ. - ຣີສະຕາດບໍລິການເຄືອຂ່າຍໂດຍໃຊ້ການຣີສະຕາດເຄືອຂ່າຍບໍລິການ ຫຼື systemctl restart NetworkManager.service
ການແກ້ໄຂບັນຫາປະສິດທິພາບ
7.1 ການນຳໃຊ້ CPU
ກວດເບິ່ງການໃຊ້ CPU ຕໍ່ຫຼັກ ໃນຂະນະທີ່ກຳລັງເຮັດວຽກຢູ່.
ໃຫ້ສັງເກດວ່າການນໍາໃຊ້ຕໍ່ຫຼັກແມ່ນກ່ຽວຂ້ອງກັບການປະຕິບັດຫຼາຍກ່ວາການນໍາໃຊ້ CPU ໂດຍລວມນັບຕັ້ງແຕ່ມັນສະຫນອງຄວາມຄິດຂອງການນໍາໃຊ້ CPU ຕໍ່ແຖວເຄືອຂ່າຍ. ຖ້າທ່ານມີພຽງແຕ່ສອງສາມກະທູ້ທີ່ແລ່ນການຈະລາຈອນເຄືອຂ່າຍ, ຫຼັງຈາກນັ້ນທ່ານອາດຈະມີພຽງແຕ່ສອງສາມແກນຖືກນໍາໃຊ້. ຢ່າງໃດກໍຕາມ, ຖ້າແກນເຫຼົ່ານັ້ນຢູ່ທີ່ 100%, ຫຼັງຈາກນັ້ນ, ການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງເຈົ້າອາດຈະຖືກຈໍາກັດໂດຍການນໍາໃຊ້ CPU ແລະມັນເຖິງເວລາທີ່ຈະປະຕິບັດດັ່ງຕໍ່ໄປນີ້:
- ປັບແຕ່ງ IRQ moderation/ring size ຕາມລາຍລະອຽດໃນການລົບກວນ Interrupt Moderation.
- ເພີ່ມຈໍານວນຂອງຫົວຂໍ້ຄໍາຮ້ອງສະຫມັກເພື່ອແຜ່ຂະຫຍາຍການໂຫຼດ CPU ໃນໄລຍະ cores ຫຼາຍ. ຖ້າແກນທັງຫມົດເຮັດວຽກຢູ່ທີ່ 100% ຫຼັງຈາກນັ້ນແອັບພລິເຄຊັນຂອງທ່ານອາດຈະຖືກຜູກມັດ CPU ແທນທີ່ຈະເປັນເຄືອຂ່າຍ.
ເຄື່ອງມືທີ່ມີຢູ່ທົ່ວໄປ:
- ເທິງ
— ກົດ 1 ເພື່ອຂະຫຍາຍລາຍຊື່ຂອງ CPU ແລະກວດເບິ່ງວ່າອັນໃດກຳລັງຖືກໃຊ້.
- ສັງເກດລະດັບການນໍາໃຊ້.
— ໃຫ້ສັງເກດວ່າຂະບວນການໃດຖືກລະບຸໄວ້ເປັນການເຄື່ອນໄຫວຫຼາຍທີ່ສຸດ (ເທິງຂອງບັນຊີລາຍການ). - mpstat
ຕໍ່ໄປນີ້ example ເສັ້ນຄໍາສັ່ງໄດ້ຖືກທົດສອບໃນ Red Hat Enterprise Linux 7.x.
ມັນສະແດງການນໍາໃຊ້ CPU ຕໍ່ຫຼັກ (ໂດຍການຊອກຫາສ່ວນຮ້ອຍທັງຫມົດທີ່ບໍ່ມີປະໂຫຍດແລະລົບອອກຈາກ 100) ແລະເນັ້ນໃສ່ຄ່າຂ້າງເທິງ 80% ເປັນສີແດງ. mpstat -P ALL 1 1 | grep -v ສະເລ່ຍ | ຫາງ -n +5 | head -n -1 | awk '{ ພິມ (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | ຖັນ - perf top ຊອກຫາບ່ອນທີ່ຮອບວຽນຖືກໃຊ້.
7.2 i40e Counters
ໄດເວີ i40e ສະຫນອງບັນຊີລາຍຊື່ຍາວຂອງຕົວนับສໍາລັບການດີບັກການໂຕ້ຕອບແລະການຕິດຕາມໂດຍຜ່ານຄໍາສັ່ງ ethtool -S ethX. ມັນສາມາດເປັນປະໂຫຍດໃນການສັງເກດເບິ່ງຜົນຜະລິດໃນຂະນະທີ່ກໍາລັງເຮັດວຽກແລະ / ຫຼືປຽບທຽບຄ່າ counter ກ່ອນແລະຫຼັງຈາກການເຮັດວຽກ.
- ເພື່ອໃຫ້ໄດ້ຮັບການ dump ເຕັມຂອງ i40e counters: ethtool -S ethX
- ເພື່ອສັງເກດເບິ່ງພຽງແຕ່ຕົວນັບທີ່ບໍ່ແມ່ນສູນ: ເບິ່ງ -d (ethtool -S ethX) | egreg -v :\ 0 | ຖັນ
ບາງສິ່ງທີ່ຕ້ອງຊອກຫາ: - rx_dropped ຫມາຍຄວາມວ່າ CPU ບໍ່ໄດ້ໃຫ້ບໍລິການ buffers ໄວພຽງພໍ.
- port.rx_dropped ຫມາຍຄວາມວ່າບາງສິ່ງບາງຢ່າງບໍ່ໄວພຽງພໍໃນສະລັອດຕິງ / ຫນ່ວຍຄວາມຈໍາ / ລະບົບ.
7.3 ເຄົາເຕີເຄືອຂ່າຍ
ກວດເບິ່ງ netstat -s ກ່ອນ/ຫຼັງການແລ່ນວຽກ.
Netstat ເກັບກຳຂໍ້ມູນເຄືອຂ່າຍຈາກອຸປະກອນເຄືອຂ່າຍທັງໝົດໃນລະບົບ. ດັ່ງນັ້ນ, ຜົນໄດ້ຮັບອາດຈະໄດ້ຮັບຜົນກະທົບຈາກເຄືອຂ່າຍອື່ນທີ່ບໍ່ແມ່ນເຄືອຂ່າຍທີ່ກໍາລັງທົດສອບ. ຜົນຜະລິດຈາກ netstat -s ສາມາດເປັນຕົວຊີ້ວັດທີ່ດີຂອງບັນຫາການປະຕິບັດໃນລະບົບປະຕິບັດການ Linux ຫຼື kernel. ປຶກສາຫາລືຄູ່ມືການປັບແຕ່ງລະບົບປະຕິບັດງານ, ເຊັ່ນ Red Hat Enterprise Linux Network Tuning Guide, ສໍາລັບຄວາມເຂົ້າໃຈເພີ່ມເຕີມກ່ຽວກັບການປັບລະບົບປະຕິບັດງານທົ່ວໄປ.
7.4 ບັນທຶກລະບົບ
ກວດເບິ່ງບັນທຶກຂອງລະບົບສໍາລັບຄວາມຜິດພາດ ແລະຄໍາເຕືອນ (/var/log/messages, dmesg).
7.5 ເຄື່ອງມືຂໍ້ມູນ Intel svr
Intel ໃຫ້ເຄື່ອງມືຂໍ້ມູນ svr (ເບິ່ງ https://github.com/intel/svr-info) ສໍາລັບ Linux ທີ່ບັນທຶກລາຍລະອຽດຮາດແວ ແລະຊອບແວທີ່ກ່ຽວຂ້ອງຈາກເຊີບເວີ. ຜົນຜະລິດຂໍ້ມູນ svr ສາມາດເປັນປະໂຫຍດທີ່ສຸດໃນການກໍານົດການກະຕຸກຂອງລະບົບຫຼືການຕັ້ງຄ່າ / ການປັບທີ່ບໍ່ໄດ້ເຫມາະສໍາລັບການເຮັດວຽກ. ເມື່ອເປີດກໍລະນີສະຫນັບສະຫນູນກັບ Intel ສໍາລັບບັນຫາການປະຕິບັດທີ່ກ່ຽວຂ້ອງກັບອີເທີເນັດ, ໃຫ້ແນ່ໃຈວ່າຈະລວມເອົາຜົນຜະລິດຂໍ້ມູນ svr (ຂໍ້ຄວາມ. file) ສໍາລັບແຕ່ລະເຊີບເວີ Linux ໃນການຕັ້ງຄ່າການທົດສອບ.
- ດາວໂຫລດແລະຕິດຕັ້ງ svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - ເກັບກໍາຜົນໄດ້ຮັບ:
./svr-info > hostname.txt - ແນບຫນຶ່ງຂໍ້ຄວາມ (.txt) file ສໍາລັບແຕ່ລະເຄື່ອງແມ່ຂ່າຍກັບກໍລະນີສະຫນັບສະຫນູນ Intel ຂອງທ່ານເພື່ອການວິເຄາະ.
ຄໍາແນະນໍາສໍາລັບສະຖານະການປະຕິບັດທົ່ວໄປ
8.1 IP Forwarding
- ອັບເດດ kernel.
ບາງ kernels in-distro ບໍ່ດົນມານີ້ໄດ້ຫຼຸດລົງການປະຕິບັດເສັ້ນທາງເນື່ອງຈາກການປ່ຽນແປງຂອງ kernel ໃນລະຫັດເສັ້ນທາງເລີ່ມຕົ້ນດ້ວຍການຖອນ cache ຂອງເສັ້ນທາງເນື່ອງຈາກຄວາມປອດໄພ. ເມັດທີ່ອອກຈາກລະບົບ distro ທີ່ຜ່ານມາຄວນມີ patches ທີ່ຫຼຸດຜ່ອນຜົນກະທົບດ້ານການປະຕິບັດຂອງການປ່ຽນແປງເຫຼົ່ານີ້ແລະອາດຈະສະຫນອງການປັບປຸງປະສິດທິພາບ. - ປິດໃຊ້ງານ hyper-threading (ຫຼັກໂລຈິກ).
- ແກ້ໄຂຕົວກໍານົດການ boot kernel.
— ບັງຄັບ iommu off (intel_iommu=off ຫຼື iommu=off) ຈາກ kernel boot line ເວັ້ນເສຍແຕ່ຕ້ອງການສໍາລັບການ virtualization
— ປິດການຈັດການພະລັງງານ: processor.max_cstates=1 idle=poll pcie_aspm=off - ຈໍາກັດຈໍານວນຂອງຄິວໃຫ້ເທົ່າກັບຈໍານວນຂອງ cores ໃນ socket ທ້ອງຖິ່ນ (12 ໃນ ex ນີ້ample). ethtool -L ethX ລວມ 12
- ປັກໝຸດລົບກວນໃສ່ຊັອກເກັດທ້ອງຖິ່ນເທົ່ານັ້ນ. set_irq_affinity -X local ethX OR set_irq_affinity -X local ethX
ໝາຍເຫດ
-X ຫຼື -x ແມ່ນສາມາດນໍາໃຊ້ຂຶ້ນກັບການເຮັດວຽກ. - ປ່ຽນຂະໜາດວົງແຫວນ Tx ແລະ Rx ຕາມຄວາມຕ້ອງການ. ມູນຄ່າທີ່ໃຫຍ່ກວ່າຈະໃຊ້ຊັບພະຍາກອນຫຼາຍ ແຕ່ສາມາດໃຫ້ອັດຕາການສົ່ງຕໍ່ໄດ້ດີກວ່າ. ethtool -G ethX rx 4096 tx 4096
- ປິດການນຳໃຊ້ GRO ເມື່ອກຳນົດເສັ້ນທາງ.
ເນື່ອງຈາກບັນຫາ kernel ທີ່ຮູ້ຈັກ, GRO ຕ້ອງຖືກປິດໃນເວລາສົ່ງຕໍ່/ສົ່ງຕໍ່. ethtool -K ethX gro off ບ່ອນທີ່ ethX ແມ່ນການໂຕ້ຕອບ Ethernet ທີ່ຈະແກ້ໄຂ. - ປິດການປັບຕົວລົບກວນການປານກາງ ແລະຕັ້ງຄ່າຄົງທີ່. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
ໝາຍເຫດ
ອີງຕາມປະເພດຂອງໂປເຊດເຊີແລະປະລິມານການເຮັດວຽກ, ຕົວກໍານົດການ coalescing ສໍາລັບ RX ແລະ TX ສາມາດຖືກປັບສໍາລັບການປະຕິບັດການປັບປຸງ (ຫຼືການສູນເສຍກອບຫນ້ອຍ).
- ປິດການໃຊ້ງານໄຟວໍ. sudo systemctl ປິດການໃຊ້ງານ firewalld sudo systemctl ຢຸດ firewalld
- ເປີດໃຊ້ການສົ່ງຕໍ່ IP. sysctl -w net.ipv4.ip_forward=1
- ກຳນົດຄ່າສູງສຸດສຳລັບຂະໜາດຮັບ ແລະສົ່ງ socket buffer. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
ໝາຍເຫດ
ຂຶ້ນຢູ່ກັບປະລິມານວຽກຫຼືຄວາມຕ້ອງການ, ຄ່າເຫຼົ່ານີ້ສາມາດຖືກປ່ຽນແປງຈາກຄ່າເລີ່ມຕົ້ນ.
8.2 ການຕອບສະໜອງຕໍ່າ
- ປິດ Hyper-threading (ຫຼັກໂລຈິກ) ປິດ.
- ໃຫ້ແນ່ໃຈວ່າອຸປະກອນເຄືອຂ່າຍຢູ່ໃນເຄື່ອງກັບ numa core 0.
- ປັກໝຸດມາດຕະຖານໃສ່ຫຼັກ 0 ໂດຍໃຊ້ຊຸດວຽກ -c 0.
- ປິດ irqbalance ໂດຍໃຊ້ systemctl ຢຸດ irqbalance ຫຼື systemctl ປິດການໃຊ້ງານ irqbalance
- ແລ່ນສະຄຣິບສະຄຣິບເພື່ອກະຈາຍໄປທົ່ວຫຼັກ. ລອງໃຊ້ທັງທ້ອງຖິ່ນ ຫຼືທັງໝົດ.
- ປິດການລົບກວນລົບກວນ. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- ສູງ 0
- ຈໍາກັດຈໍານວນຂອງຄິວໃຫ້ເທົ່າກັບຈໍານວນຂອງ cores ໃນ socket ທ້ອງຖິ່ນ (32 ໃນ ex ນີ້ample). ethtool -L ethX ລວມ 32
- Pin interrupts ກັບ socket ທ້ອງຖິ່ນເທົ່ານັ້ນ (script packed with i40e driver source). set_irq_affinity -X ethX ທ້ອງຖິ່ນ
- ໃຊ້ມາດຕະຖານມາດຕະຖານເຊັ່ນ netperf -t TCP_RR, netperf -t UDP_RR, ຫຼື NetPipe. netperf -t TCP_RR ຫຼື netperf -t UDP_RR
- ປັກໝຸດ benchmark ໃສ່ຫຼັກດຽວໃນ NUMA node. ຊຸດວຽກ -c
Intel ® Ethernet 700 Series
ຄູ່ມືການປັບປະສິດທິພາບ Linux
ເດືອນທັນວາ 2024
ດຣ. ເລກທີ່: 334019, Rev.: 1.2
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
Intel Ethernet 700 Series Linux Tuning ປະສິດທິພາບ [pdf] ຄູ່ມືຜູ້ໃຊ້ 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, ການປັບປະສິດທິພາບ, Tuning |
