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).
ຖ້າ 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
ໝາຍເຫດ:
- ປິດໃຊ້ງານ 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 ທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນໃຫ້ຜົນປະໂຫຍດ.
ທົດລອງການເພີ່ມຈໍານວນກະທູ້ທີ່ໃຊ້ໂດຍແອັບພລິເຄຊັນຂອງເຈົ້າຖ້າເປັນໄປໄດ້.
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 ສໍາລັບປະສິດທິພາບສູງສຸດ
- Hyper-threading ເປີດ/ປິດໃຊ້ງານ (ອີງຕາມຄວາມຕ້ອງການວຽກ ແລະເປົ້າໝາຍປະສິດທິພາບ) ໃນ CPU.
- ກໍານົດລະບົບ profile ເພື່ອປະສິດທິພາບສູງສຸດ.
ໝາຍເຫດ
ນີ້ເຮັດໃຫ້ການບໍລິໂພກພະລັງງານສູງຂຶ້ນ - ຕັ້ງຄ່າການຈັດການພະລັງງານຂອງ CPU ເປັນປະສິດທິພາບສູງສຸດເພື່ອຈັດລໍາດັບຄວາມສໍາຄັນຂອງປະສິດທິພາບ CPU ສູງສຸດຫຼາຍກວ່າປະສິດທິພາບພະລັງງານ.
- ເປີດໃຊ້ Turbo Boost. ການປິດໃຊ້ງານ Turbo Boost ໃນການຕັ້ງຄ່າ BIOS ໂດຍປົກກະຕິຈະປ້ອງກັນບໍ່ໃຫ້ CPU ເລັ່ງຄວາມໄວໂມງຂອງຕົນເກີນກວ່າຄວາມຖີ່ພື້ນຖານຂອງມັນ.
- ໝາຍເຫດ
ການປິດການໃຊ້ງານ 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 |