ໂລໂກ້ IntelIntel ® 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 ເອກະສານອ້າງອີງທີ່ກ່ຽວຂ້ອງ

ລາຍການກວດເບື້ອງຕົ້ນ

2.1 ອັບເດດ Driver/ Firmware Versions
ກວດເບິ່ງເວີຊັນໄດເວີ/ເຟີມແວໂດຍໃຊ້ ethtool -i ethx.
ປັບປຸງສິ່ງຕໍ່ໄປນີ້ຕາມຄວາມຕ້ອງການ:

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 ຊຸດທີ່ຮອງຮັບພວກມັນ.
  • ໃຫ້ແນ່ໃຈວ່າທ່ານມີໄດເວີທີ່ຈໍາເປັນແລະສະຫນັບສະຫນູນຮາດແວກ່ອນທີ່ຈະພະຍາຍາມຕັ້ງຄ່າຄິວທີ່ສົມມາດ.

ເພື່ອຕັ້ງຄ່າຄິວທີ່ສົມມາຕຣິກ, ປະຕິບັດຕາມຂັ້ນຕອນທົ່ວໄປເຫຼົ່ານີ້:

  1. ແກ້ໄຂການຕັ້ງຄ່າການໂຕ້ຕອບເຄືອຂ່າຍ File: ໃຊ້ຕົວແກ້ໄຂຂໍ້ຄວາມ (ສໍາລັບຕົວຢ່າງample, vi, nano, ຫຼື gedit) ເພື່ອແກ້ໄຂການຕັ້ງຄ່າການໂຕ້ຕອບເຄືອຂ່າຍ file. ໄດ້ file ໂດຍປົກກະຕິແມ່ນຕັ້ງຢູ່ພາຍໃຕ້ /etc/sysconfig/network-scripts/ directory ແລະມີຊື່ເຊັ່ນ ifcfg-ethX, ບ່ອນທີ່ ethX ແມ່ນຊື່ຂອງການໂຕ້ຕອບເຄືອຂ່າຍຂອງທ່ານ.
  2. ເພີ່ມຕົວກໍານົດການຄິວສົມມາດ. ເພີ່ມສາຍຕໍ່ໄປນີ້ໃສ່ການຕັ້ງຄ່າສ່ວນຕິດຕໍ່ເຄືອຂ່າຍ file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
  3. ຣີສະຕາດບໍລິການເຄືອຂ່າຍ.
    ຫຼັງຈາກເຮັດການປ່ຽນແປງ, ເປີດບໍລິການເຄືອຂ່າຍຄືນໃໝ່ເພື່ອນຳໃຊ້ການຕັ້ງຄ່າໃໝ່. 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).
    ຖ້າ CPU ຂອງທ່ານຢູ່ທີ່ 100%, ຫຼັງຈາກນັ້ນການເພີ່ມອັດຕາການຂັດຂວາງບໍ່ໄດ້ຖືກແນະນໍາ. ໃນບາງສະຖານະການເຊັ່ນ CPU ທີ່ຜູກມັດການເຮັດວຽກ, ທ່ານອາດຈະຕ້ອງການເພີ່ມຄ່າ μs ເພື່ອໃຫ້ສາມາດໃຊ້ເວລາ CPU ຫຼາຍຂຶ້ນສໍາລັບຄໍາຮ້ອງສະຫມັກອື່ນໆ.
    ຖ້າເຈົ້າຕ້ອງການປະສິດທິພາບການຕອບສະໜອງຕໍ່າ ແລະ/ຫຼືມີ 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

ໝາຍເຫດ
ເພື່ອແກ້ໄຂການຫຼຸດລົງຂອງແພັກເກັດ Rx ທີ່ພົບເຫັນດ້ວຍການຫຼຸດລົງຂອງ ethtool -S ethX|grep, ພິຈາລະນາການເພີ່ມຂະຫນາດແຫວນເປັນ 4096. ທົດລອງຊອກຫາການຕັ້ງຄ່າທີ່ດີທີ່ສຸດສໍາລັບວຽກແຕ່ລະວັງການໃຊ້ຫນ່ວຍຄວາມຈໍາຫຼາຍເກີນໄປທີ່ມີຄ່າທີ່ສູງກວ່າ.
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

ໝາຍເຫດ:

  1. ປິດໃຊ້ງານ C-states ໃນ CPU ຖ້າເຊີບເວີມີ Intel® 4th Gen Intel® Xeon® Scalable Processor(s). ເມື່ອ Hyper Threading ຖືກເປີດໃຊ້ຫຼືປິດການໃຊ້ງານ, ການປິດການໃຊ້ງານລັດ idle (-D0) ປ້ອງກັນບໍ່ໃຫ້ cores ເຂົ້າໄປໃນລັດພະລັງງານຕ່ໍາໃນລະຫວ່າງໄລຍະເວລາ idle ແລະຫຼຸດຜ່ອນການ latency ສໍາລັບ CPU ໃນການປ່ຽນລະຫວ່າງລັດ idle ແລະ active.
  2. ການຈັດການພະລັງງານຂອງ 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 ທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນໃຫ້ຜົນປະໂຫຍດ.
ທົດລອງການເພີ່ມຈໍານວນກະທູ້ທີ່ໃຊ້ໂດຍແອັບພລິເຄຊັນຂອງເຈົ້າຖ້າເປັນໄປໄດ້.
5.6 ລຸ້ນ Kernel
ແກ່ນໃນກ່ອງທີ່ທັນສະໄຫມສ່ວນໃຫຍ່ຖືກປັບປຸງໃຫ້ເຫມາະສົມກັບປະສິດທິພາບແຕ່, ຂຶ້ນກັບກໍລະນີການນໍາໃຊ້ຂອງທ່ານ, ການປັບປຸງແກ່ນອາດຈະໃຫ້ປະສິດທິພາບການປັບປຸງ. ການດາວໂຫຼດແຫຼ່ງທີ່ມາຍັງເຮັດໃຫ້ທ່ານສາມາດເປີດ/ປິດຄຸນສົມບັດບາງຢ່າງກ່ອນທີ່ຈະສ້າງແກ່ນໄດ້.
5.7 ການ​ຕັ້ງ​ຄ່າ​ລະ​ບົບ​ປະ​ຕິ​ບັດ​ການ / Kernel
ປຶກສາຫາລືຄູ່ມືການປັບລະບົບປະຕິບັດການ, ເຊັ່ນ Red Hat Enterprise Linux Network Tuning Guide, ສໍາລັບຄວາມເຂົ້າໃຈເພີ່ມເຕີມກ່ຽວກັບການປັບລະບົບປະຕິບັດງານທົ່ວໄປ.
ບາງຕົວກໍານົດການທົ່ວໄປທີ່ຈະປັບແມ່ນໄດ້ລະບຸໄວ້ໃນຕາຕະລາງຕໍ່ໄປນີ້. ໃຫ້ສັງເກດວ່າສິ່ງເຫຼົ່ານີ້ແມ່ນພຽງແຕ່ແນະນໍາຈຸດເລີ່ມຕົ້ນ, ແລະການປ່ຽນພວກມັນຈາກຄ່າເລີ່ມຕົ້ນອາດຈະເພີ່ມຊັບພະຍາກອນທີ່ໃຊ້ໃນລະບົບ. ເຖິງແມ່ນວ່າການເພີ່ມມູນຄ່າສາມາດຊ່ວຍປັບປຸງການປະຕິບັດໄດ້, ມັນຈໍາເປັນຕ້ອງໄດ້ທົດລອງກັບຄ່າທີ່ແຕກຕ່າງກັນເພື່ອກໍານົດສິ່ງທີ່ເຮັດວຽກທີ່ດີທີ່ສຸດສໍາລັບລະບົບ, ຈໍານວນວຽກແລະປະເພດການຈະລາຈອນ.
ຕົວກໍານົດການ 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 ສໍາລັບປະສິດທິພາບສູງສຸດ

  1. Hyper-threading ເປີດ/ປິດໃຊ້ງານ (ອີງຕາມຄວາມຕ້ອງການວຽກ ແລະເປົ້າໝາຍປະສິດທິພາບ) ໃນ CPU.
  2. ກໍານົດລະບົບ profile ເພື່ອປະສິດທິພາບສູງສຸດ.
    ໝາຍເຫດ
    ນີ້ເຮັດໃຫ້ການບໍລິໂພກພະລັງງານສູງຂຶ້ນ
  3. ຕັ້ງຄ່າການຈັດການພະລັງງານຂອງ CPU ເປັນປະສິດທິພາບສູງສຸດເພື່ອຈັດລໍາດັບຄວາມສໍາຄັນຂອງປະສິດທິພາບ CPU ສູງສຸດຫຼາຍກວ່າປະສິດທິພາບພະລັງງານ.
  4. ເປີດໃຊ້ Turbo Boost. ການປິດໃຊ້ງານ Turbo Boost ໃນການຕັ້ງຄ່າ BIOS ໂດຍປົກກະຕິຈະປ້ອງກັນບໍ່ໃຫ້ CPU ເລັ່ງຄວາມໄວໂມງຂອງຕົນເກີນກວ່າຄວາມຖີ່ພື້ນຖານຂອງມັນ.
  5. ໝາຍເຫດ
    ການປິດການໃຊ້ງານ Turbo Boost ອາດຈະເໝາະສົມກັບກໍລະນີການນຳໃຊ້ທີ່ສອດຄ່ອງກັນ, ປະສິດທິພາບພະລັງງານ, ຫຼືການຈັດການຄວາມຮ້ອນແມ່ນໃຫ້ຄວາມສຳຄັນຫຼາຍກວ່າປະສິດທິພາບສູງສຸດ.
  6. ປິດຄຸນສົມບັດ Single Root I/O Virtualization (SR-IOV), ຖ້າລະບົບບໍ່ໄດ້ໃຊ້ເຕັກໂນໂລຊີ virtualization.
  7. ປິດການໃຊ້ງານ C-states ເພື່ອສັ່ງໃຫ້ CPU ເຮັດວຽກຢູ່ ແລະປ້ອງກັນການເຂົ້າສູ່ສະຖານະທີ່ບໍ່ເຮັດວຽກທີ່ເລິກເຊິ່ງກວ່າ.
  8. ປິດການໃຊ້ງານ C1E, ເພື່ອຮັບປະກັນວ່າ CPU ຍັງເຮັດວຽກຢູ່ ແລະບໍ່ໄດ້ເຂົ້າໄປໃນສະຖານະ C1E idle.
  9. ຕັ້ງຄວາມຖີ່ uncore ສູງສຸດເພື່ອສັ່ງໃຫ້ລະບົບເຮັດວຽກຢູ່ໃນຄວາມຖີ່ສູງສຸດທີ່ມີຢູ່.
  10. ໃນແພລດຟອມຂອງ Dell, ໃຫ້ຕັ້ງການຈໍາລອງຫຼັກ APIC ຫຼາຍໆອັນ (MADT) ເປັນ Linear (ຫຼື Round-Robin ຂຶ້ນກັບ BIOS) ເພື່ອໃຫ້ມີແຜນທີ່ທີ່ຊັດເຈນ ແລະສາມາດຄາດເດົາໄດ້ຂອງແກນ CPU.

ການປັບລະດັບ OS ທີ່ແນະນຳເພື່ອປະສິດທິພາບທີ່ເໝາະສົມ

  1. ຕັ້ງຄ່າຜູ້ປົກຄອງການຂະຫຍາຍຄວາມຖີ່ຂອງ CPU ເພື່ອປະສິດທິພາບ. cpupower frequency-set -g ປະສິດທິພາບ cpupower frequency-info
  2. ປິດການໃຊ້ງານ C-States. cpupower idle-set -D0
  3. ຕັ້ງ core Rx (rmem) ແລະ Tx (wmem) buffers ເປັນຄ່າສູງສຸດ. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. ຕັ້ງຄ່າ backlog ອຸປະກອນເຄືອຂ່າຍ. sysctl -w net.core.netdev_max_backlog=8192
  5. ຕັ້ງຄ່າ tuned profile (ປະລິມານວຽກຂຶ້ນກັບການສົ່ງຜ່ານ/ການເລັ່ງເວລາ).
    tuned-adm profile ເຄືອຂ່າຍຜ່ານ

ການປັບລະດັບອະແດບເຕີທີ່ແນະນຳເພື່ອປະສິດທິພາບທີ່ເໝາະສົມ

  1. ຈໍາ​ກັດ​ຈໍາ​ນວນ​ຂອງ​ຄິວ​ທີ່​ຈະ​ນໍາ​ໃຊ້​ສໍາ​ລັບ​ການ​ຈະ​ລາ​ຈອນ​ຂອງ​ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​. ໃຊ້ຈໍານວນຄິວຕໍາ່ສຸດທີ່ຕ້ອງໃຊ້ເພື່ອຮັກສາແກນ CPU ທີ່ກ່ຽວຂ້ອງເພື່ອປ້ອງກັນບໍ່ໃຫ້ພວກມັນເຂົ້າໄປໃນສະຖານະທີ່ບໍ່ເຮັດວຽກທີ່ເລິກເຊິ່ງກວ່າ (ປັບຄ່າວຽກ): ethtool -L ລວມ 32
  2. ກໍານົດອັດຕາການຂັດຂວາງການຂັດຂວາງ. 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) ເພື່ອຊອກຫາຄ່າທີ່ເໝາະສົມກັບປະລິມານວຽກ.
  3. ກໍານົດຂະຫນາດແຫວນ Rx/Tx. ethtool -G rx 4096 tx 4096
    ໝາຍເຫດ
    ຖ້າທ່ານເຫັນແພັກເກັດ Rx ຫຼຸດລົງດ້ວຍ ethtool -S| grep ຫຼຸດລົງ, ລອງຫຼຸດຂະໜາດແຫວນລົງເປັນ <4096. ພະຍາຍາມຊອກຫາຄ່າທີ່ດີທີ່ສຸດສໍາລັບວຽກທີ່ແພັກເກັດບໍ່ໄດ້ຖືກຫຼຸດລົງ.
  4. ຕັ້ງຄ່າ 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 ສໍາລັບປະສິດທິພາບສູງສຸດ

  1. ເປີດໃຊ້ໂໝດກຳນົດເອງເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດປັບປະສິດທິພາບ CPU, ການໃຊ້ພະລັງງານ ແລະການຕັ້ງຄ່າອື່ນໆ. ນີ້ຊ່ວຍໃນການປັບລະບົບສໍາລັບການດຸ່ນດ່ຽງທີ່ດີທີ່ສຸດລະຫວ່າງປະສິດທິພາບແລະປະສິດທິພາບພະລັງງານ.
  2. ເປີດໃຊ້ການເພີ່ມປະສິດທິພາບຫຼັກເພື່ອໃຫ້ CPU ເພີ່ມຄວາມໄວໂດຍອັດຕະໂນມັດໃນການຈັດການວຽກທີ່ເຂັ້ມຂຸ້ນຂຶ້ນ, ປັບປຸງປະສິດທິພາບໂດຍລວມ.
  3. ປິດການໃຊ້ງານການຄວບຄຸມລັດ C ທົ່ວໂລກ, ເພື່ອປ້ອງກັນບໍ່ໃຫ້ CPU ເຂົ້າສູ່ລັດປະຢັດພະລັງງານທີ່ເລິກເຊິ່ງກວ່າທີ່ເອີ້ນວ່າ C-states, ເຊິ່ງສາມາດຮັກສາການຕອບສະໜອງໄດ້.
    ໝາຍເຫດ
    ການປິດການນຳໃຊ້ສະຖານະ C ສາມາດເຮັດໃຫ້ເກີດການໃຊ້ພະລັງງານເພີ່ມເຕີມ ແລະເພີ່ມອຸນຫະພູມຄວາມຮ້ອນ. ຕິດ​ຕາມ​ກວດ​ກາ​ທັງ​ສອງ​ສໍາ​ລັບ​ການ​ເຮັດ​ວຽກ​.
  4. ເປີດ/ປິດການໃຊ້ງານ 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.

  1. ເລືອກສອງພອດ NIC ຫຼືຫຼາຍກວ່ານັ້ນສໍາລັບການຜູກມັດ (ຕົວຢ່າງample, ethX ແລະ ethY)
  2. ເປີດ NIC Configuration Files ພາຍໃຕ້ /etc/sysconfig/network-scripts/ ສໍາລັບການໂຕ້ຕອບ NIC ທີ່ຕ້ອງການ (ສໍາລັບ example, 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 (ຫຼື) 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 ໂດຍອີງໃສ່ຄວາມຕ້ອງການ.
  4. ຣີສະຕາດບໍລິການເຄືອຂ່າຍໂດຍໃຊ້ການຣີສະຕາດເຄືອຂ່າຍບໍລິການ ຫຼື systemctl restart NetworkManager.service

ການແກ້ໄຂບັນຫາປະສິດທິພາບ

7.1 ການນຳໃຊ້ CPU
ກວດເບິ່ງການໃຊ້ CPU ຕໍ່ຫຼັກ ໃນຂະນະທີ່ກຳລັງເຮັດວຽກຢູ່.
ໃຫ້ສັງເກດວ່າການນໍາໃຊ້ຕໍ່ຫຼັກແມ່ນກ່ຽວຂ້ອງກັບການປະຕິບັດຫຼາຍກ່ວາການນໍາໃຊ້ CPU ໂດຍລວມນັບຕັ້ງແຕ່ມັນສະຫນອງຄວາມຄິດຂອງການນໍາໃຊ້ CPU ຕໍ່ແຖວເຄືອຂ່າຍ. ຖ້າທ່ານມີພຽງແຕ່ສອງສາມກະທູ້ທີ່ແລ່ນການຈະລາຈອນເຄືອຂ່າຍ, ຫຼັງຈາກນັ້ນທ່ານອາດຈະມີພຽງແຕ່ສອງສາມແກນຖືກນໍາໃຊ້. ຢ່າງໃດກໍຕາມ, ຖ້າແກນເຫຼົ່ານັ້ນຢູ່ທີ່ 100%, ຫຼັງຈາກນັ້ນ, ການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງເຈົ້າອາດຈະຖືກຈໍາກັດໂດຍການນໍາໃຊ້ CPU ແລະມັນເຖິງເວລາທີ່ຈະປະຕິບັດດັ່ງຕໍ່ໄປນີ້:

  1. ປັບແຕ່ງ IRQ moderation/ring size ຕາມລາຍລະອຽດໃນການລົບກວນ Interrupt Moderation.
  2. ເພີ່ມຈໍານວນຂອງຫົວຂໍ້ຄໍາຮ້ອງສະຫມັກເພື່ອແຜ່ຂະຫຍາຍການໂຫຼດ 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 ໃນການຕັ້ງຄ່າການທົດສອບ.

  1. ດາວໂຫລດແລະຕິດຕັ້ງ svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > hostname.txt
  2. ເກັບ​ກໍາ​ຜົນ​ໄດ້​ຮັບ​:
    ./svr-info > hostname.txt
  3. ແນບຫນຶ່ງຂໍ້ຄວາມ (.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

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *