ค้นหาเว็บไซต์

การใช้ iPerf เพื่อทดสอบความเร็วเครือข่ายและแบนด์วิธ


IPerf เป็นเครื่องมือบรรทัดคำสั่งโอเพ่นซอร์สที่ออกแบบมาเพื่อทดสอบปริมาณงานของเครือข่ายระหว่างโฮสต์เครือข่ายสองแห่ง iPerf อนุญาตให้สร้างทราฟฟิก TCP และ UDP (โหลด) ระหว่างสองโฮสต์ คุณสามารถใช้ iPerf เพื่อวัดแบนด์วิธเครือข่ายสูงสุดอย่างรวดเร็ว (ทรูพุต) ระหว่างเซิร์ฟเวอร์และไคลเอ็นต์ และดำเนินการทดสอบความเครียดของลิงก์ ISP, เราเตอร์, เกตเวย์เครือข่าย (ไฟร์วอลล์), อีเธอร์เน็ตของคุณ หรือประสิทธิภาพของเครือข่าย Wi-Fi

ในบทความนี้ เราจะแสดงวิธีการติดตั้งและใช้เครื่องมือ iPerf เพื่อทดสอบความเร็วเครือข่าย (ปริมาณงาน) บน Windows Linux และ VMware ESXi (มีเวอร์ชัน iPerf สำหรับ Android, macOS, RouterOS จาก MikroTik และแพลตฟอร์มอื่นๆ)

IPerf เป็นเครื่องมือข้ามแพลตฟอร์มและไม่ต้องติดตั้งใน Windows เพียงดาวน์โหลดไฟล์ปฏิบัติการและเรียกใช้งานบนอุปกรณ์สองเครื่อง โดยต้องทดสอบปริมาณงานของเครือข่ายระหว่างนั้น IPerf ทำงานในโหมดไคลเอ็นต์เซิร์ฟเวอร์ ในอุปกรณ์เครื่องแรก iPerf จะเริ่มทำงานในโหมดเซิร์ฟเวอร์ (กำลังรอการรับส่งข้อมูลจากไคลเอนต์ iPerf) ในคอมพิวเตอร์เครื่องที่สอง iPerf จะเริ่มทำงานในโหมดไคลเอนต์ สร้างการรับส่งข้อมูล TCP หรือ UDP และวัดอัตราการถ่ายโอนข้อมูลสูงสุด

ในกรณีส่วนใหญ่ ตอนนี้ใช้เวอร์ชัน iPerf3 (รองรับการทดสอบ UDP ความเร็วสูง โดยค่าเริ่มต้นจะใช้พอร์ต 5201 TCP/UDP)

จะติดตั้งและใช้ iPerf บน Windows ได้อย่างไร?

คุณสามารถดาวน์โหลด iPerf 3.1.3 สำหรับ Windows ได้จากลิงก์ต่อไปนี้ https://iperf.fr/iperf-download.php หากคุณต้องการใช้ iPerf 2.0 คุณสามารถดาวน์โหลดได้ที่นี่ คุณไม่จำเป็นต้องติดตั้ง iPerf บน Windows เพียงดาวน์โหลดไฟล์เก็บถาวร iPerf และแตกไฟล์ไปยังไดเร็กทอรีในเครื่องบนไดรฟ์ก็เพียงพอแล้ว มีเพียงสองไฟล์ในไฟล์เก็บถาวร:

cygwin1.dll

และ

iperf3.exe

คุณสามารถดาวน์โหลดไฟล์เก็บถาวร iPerf และแตกไฟล์ไปยังไดรฟ์ในเครื่องโดยใช้สคริปต์ PowerShell:

$iPerfZip = "https://iperf.fr/download/windows/iperf-3.1.3-win64.zip"
$TargetFolder = Join-Path $env:TEMP "iperf.zip"$iPerfPath = Join-Path $env:TEMP "iperf"
if (!(Test-Path $iPerfPath))
{ Invoke-WebRequest -Uri $iPerfZip -OutFile $TargetFolder
Expand-Archive -Path $TargetFolder -DestinationPath $iPerfPath
}

Iperf เป็นเครื่องมือคอนโซลและคุณต้องเรียกใช้ในบรรทัดคำสั่ง เปิดพรอมต์คำสั่ง (cmd.exe) และไปที่ไดเร็กทอรีด้วยยูทิลิตี้ ตัวอย่างเช่น:

cd c:\tools\iperf

หากคุณเรียกใช้โปรแกรม iperf3.exe โดยไม่มีพารามิเตอร์ โปรแกรมจะแสดงรายการตัวเลือกที่มี

ยูทิลิตี้ iPerf สามารถทำงานในโหมดเซิร์ฟเวอร์ (

-s

ตัวเลือก) หรือโหมดไคลเอนต์ (

-c

). หากคุณใช้งานเซิร์ฟเวอร์ iPerf บน Windows คุณต้องเปิดพอร์ตขาเข้า 5201 สำหรับโปรโตคอล TCP และ UDP คุณสามารถเปิดพอร์ตโดยใช้ Windows Defender Firewall GUI หรือด้วยคำสั่ง PowerShell สร้างและเปิดใช้งานกฎไฟร์วอลล์ดังนี้:

New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-TCP' -Direction Inbound -Protocol TCP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-UDP' -Direction Inbound -Protocol UDP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule

มีการใช้งาน iPerf GUI หลายอย่างสำหรับ Windows ตัวอย่างเช่น Iperf3-Cygwin-GUI หรือ jperf

jperf เขียนบน Java (เพื่อเรียกใช้ jperf ต้องติดตั้ง Java VM บนคอมพิวเตอร์) นอกเหนือจากรูปแบบกราฟิกสำหรับอินเทอร์เฟซ CLI แล้ว Jperf ยังสามารถสร้างแผนภูมิแบนด์วิดท์กราฟแบบเรียลไทม์ของการโหลดช่องทางการสื่อสาร หากต้องการใช้งาน เพียงระบุที่อยู่เซิร์ฟเวอร์ iPerf และเริ่มการทดสอบปริมาณงานของเครือข่าย

มีโมดูล iPerfAutomate แยกต่างหากใน PowerShell Script Gallery ที่สามารถใช้เพื่อรับเมตริกประสิทธิภาพเครือข่ายในสคริปต์ PowerShell ของคุณ คุณสามารถติดตั้งโมดูลด้วยคำสั่ง:

Install-Module -Name iPerfAutomate

การติดตั้ง iPerf บน Linux

บน CentOS/RHEL/Fedora/Rocky Linux/Oracle Linux 8 แพ็คเกจ iperf3 จะพร้อมใช้งานในที่เก็บ AppStream พื้นฐาน (ใน CentOS 7 คุณจะพบ iperf3 ใน EPEL repo)

คุณสามารถติดตั้งได้ด้วยคำสั่ง dnf (yum):

# dnf install iperf3

บน Debian/Ubuntu/Mint distros คุณสามารถติดตั้ง iperf3 ด้วยคำสั่ง:

$ sudo apt install iperf3 

หากคุณต้องการใช้โฮสต์ Linux เป็นเซิร์ฟเวอร์ iperf3 คุณต้องเปิดพอร์ต TCP/UDP 5201 ในไฟร์วอลล์ (หรือ iptables):

# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --reload

การใช้ iPerf บน VMware ESXi

VMware ลบเครื่องมือ iPerf ใน ESXi 6.7 แต่นำกลับมาใน 6.7U1 ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง iPerf บนโฮสต์ ESXi ของคุณ เชื่อมต่อกับคอนโซล ESXi ผ่าน SSH ไปที่ไดเร็กทอรี /usr/lib/vmware/vsan/bin และตรวจสอบว่ามีไฟล์ไบนารี iperf หรือ iperf3 หรือไม่

หากไม่ได้ติดตั้ง iPerf คุณสามารถดาวน์โหลดบันเดิลออฟไลน์ของ iperf ด้วยตนเองได้ที่นี่ (http://vibsdepot.v-front.de/depot/bundles/iperf-2.0.5-1-offline_bundle.zip) คัดลอกไปยังโฮสต์ ESXi และติดตั้งด้วยคำสั่ง:

# esxcli software vib install -d /iperf-2.0.5-1-offline_bundle.zip -no-sig-check

เครื่องมือจะถูกติดตั้งในไดเร็กทอรี /opt/iperf/bin ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ iPerf บน VMware ESXi:

# /opt/iperf/bin/iperf3

บนเว็บไซต์ v-front คุณสามารถค้นหาไดรเวอร์และเครื่องมือชุมชนจำนวนมากสำหรับ ESXi สคริปต์สำหรับเพิ่มไดรเวอร์ในอิมเมจการติดตั้ง ESXi ก็มีให้ที่นี่เช่นกัน

หากคุณใช้งานเซิร์ฟเวอร์ iPerf บนโฮสต์ ESXi คุณต้องเปิดพอร์ต 5201 พอร์ตนี้ถูกปิดใช้งานตามค่าเริ่มต้นในไฟร์วอลล์ ESXi หากต้องการเปิด คุณสามารถปิดใช้งานไฟร์วอลล์ ESXi ชั่วคราว:

# esxcli network firewall get
# esxcli network firewall set --enabled=false

# esxcli network firewall set --enabled true

เมื่อเรียกใช้ iPerf บน ESXi จะต้องเชื่อมโยงกับอินเทอร์เฟซ vmkernel:

# esxcli network ip interface ipv4 get

คุณสามารถตรวจสอบความพร้อมใช้งานระหว่างโฮสต์ ESXi ด้วยคำสั่ง vmkping:

# vmkping IP_address

เรียกใช้ iPerf บนที่อยู่ IP ของ vmkernel:

# iperf -s -B 192.168.31.50

ใช้เครื่องมือ iPerf เพื่อทดสอบความเร็วเครือข่าย/แบนด์วิธ

มาดูตัวอย่างการใช้ iPerf เพื่อทดสอบปริมาณงานเครือข่ายกัน ในตัวอย่างนี้ เราจะใช้โฮสต์ Linux เป็นเซิร์ฟเวอร์ iperf เรียกใช้ iperf ในโหมดเซิร์ฟเวอร์:

# iperf3 -s

เซิร์ฟเวอร์ iPerf กำลังทำงาน กำลังรอการเชื่อมต่อบนพอร์ต 5201 TCP

Server listening on 5201.

คำใบ้ ข้อโต้แย้ง iPerf คำนึงถึงขนาดตัวพิมพ์!

ขึ้นอยู่กับการตั้งค่าไฟร์วอลล์ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ คุณสามารถเปลี่ยนพอร์ตการรับฟังโดยใช้อาร์กิวเมนต์ -p [port_number] คุณสามารถเรียกใช้เซิร์ฟเวอร์ iPerf ด้วยขนาดหน้าต่าง TCP ขนาดใหญ่และบนพอร์ต TCP อื่น ใช้คำสั่ง:

# iperf3 -s -w 32768 -p 5200
  • -w 32768 - เปลี่ยนขนาดหน้าต่าง TCP เป็น 32 kB (โดยค่าเริ่มต้นคือประมาณ 8 kB)

  • -p 5200 - พอร์ตที่ iPerf กำลังรอการเชื่อมต่อ (โปรดทราบว่า iperf2 รับฟังพอร์ต 5001 โดยค่าเริ่มต้น และ iperf3 รับฟังบนพอร์ต 5201)

คุณสามารถเรียกใช้เซิร์ฟเวอร์ iPerf เป็น Windows Service โดยใช้อาร์กิวเมนต์ -D

ฉันใช้คอมพิวเตอร์ที่ใช้ Windows 10 เป็นไคลเอนต์ iPerf เปิดพรอมต์คำสั่งและเปลี่ยนเป็นไดเร็กทอรีด้วยโปรแกรมเรียกทำงาน iPerf:

cd c:\tools\iperf

ในการเรียกใช้การทดสอบแบนด์วิธเครือข่ายจากไคลเอ็นต์ ให้ระบุที่อยู่เซิร์ฟเวอร์ iPerf (หรือชื่อ DNS):

iperf3.exe -c 192.168.1.200

ไคลเอนต์จะเริ่มสร้างการรับส่งข้อมูลเครือข่าย ทดสอบการเชื่อมต่อเป็นเวลา 10 วินาที และแสดงตารางผลลัพธ์ต่อไปนี้

  • ช่วงเวลา - ช่วงเวลาการทดสอบ (เป็นวินาที);

  • ถ่ายโอน - ขนาดของข้อมูลที่ถ่ายโอน

  • แบนด์วิธ - อัตราการถ่ายโอนข้อมูลเฉลี่ย

หากคุณเริ่มต้นเซิร์ฟเวอร์ iPerf ด้วยขนาดหน้าต่าง TCP ที่เพิ่มขึ้น คุณสามารถใช้คำสั่งต่อไปนี้เพื่อรับโหลดเครือข่ายสูงสุด:

iperf3.exe -c 192.168.1.200 -P 8 -t 30 -w 32768 -i 5 -f g
  • -c 192.168.1.200 - ที่อยู่ IP ของเซิร์ฟเวอร์ iPerf

  • -w 32768 - เพิ่มขนาดหน้าต่าง TCP

  • -t 30 - ระยะเวลาการทดสอบเป็นวินาที (ค่าเริ่มต้นคือ 10 วินาที);

  • -P 8 - คือจำนวนของเธรดแบบขนานเพื่อรับโหลดแชนเนลสูงสุด

  • -i 5 - แสดงสถิติ iPerf ทุกๆ 5 วินาที พารามิเตอร์นี้ใช้งานได้สะดวกสำหรับการทดสอบที่ยาวนาน (หลายนาที, ชั่วโมง);

  • -f m — แสดงผลเป็น Mbps ที่นี่คุณสามารถใช้ค่า kmgKMG (กิโลบิต เมกะบิต เมกะไบต์ กิกะบิต เป็นต้น)

ในตัวอย่างของฉัน การทดสอบใช้เวลา 30 วินาที ในรายงานขั้นสุดท้าย เราสนใจค่าของคอลัมน์ แบนด์วิธ ซึ่งแสดงอยู่ในบรรทัด [SUM] สุดท้าย นี่แสดงความเร็วเฉลี่ยในการส่งและรับข้อมูลผ่านเครือข่าย ในกรณีของเรา แบนด์วิดท์เครือข่ายเฉลี่ยระหว่างสองโฮสต์คือ 85.9 Mbit/s ถ่ายโอนข้อมูล 307 MB (คอลัมน์ ถ่ายโอน) ด้วยความเร็วสมมาตร (ผู้ส่ง=ผู้รับ)

คุณสามารถเรียกใช้ iPerf ในโหมดย้อนกลับ (เซิร์ฟเวอร์ส่งข้อมูล และไคลเอ็นต์รับข้อมูล) ใช้ตัวเลือก -R บนไคลเอนต์สำหรับสิ่งนี้

ตามค่าเริ่มต้น iPerf จะสร้างการรับส่งข้อมูล TCP หากคุณต้องการตรวจสอบแบนด์วิธเครือข่ายสำหรับแพ็กเก็ต UDP คุณต้องใช้ตัวเลือก -u ในกรณีนี้ คุณควรเริ่มเซิร์ฟเวอร์ iPerf ด้วยคำสั่ง: iperf3 -s -u)

หากคุณต้องการทดสอบแบนด์วิธของผู้ให้บริการอินเทอร์เน็ต คุณสามารถใช้หนึ่งในเซิร์ฟเวอร์ iPerf สาธารณะ (รายการโฮสต์สาธารณะของ iPerf มีอยู่ที่นี่):

iperf3 -c iperf.scottlinux.com

โปรดทราบว่าเซิร์ฟเวอร์ iPerf3 ยอมรับการเชื่อมต่อไคลเอ็นต์เดียวพร้อมกันเท่านั้น (อนุญาตให้ทำการทดสอบไคลเอนต์หลายเครื่องพร้อมกันใน iPerf2) หากเซิร์ฟเวอร์ iPerf ให้บริการการเชื่อมต่อไคลเอนต์ คุณจะได้รับข้อผิดพลาด: iperf3: error — เซิร์ฟเวอร์กำลังรันการทดสอบ ลองอีกครั้งในภายหลัง

หากคุณต้องการวัดความเร็วเครือข่ายสูงสุดในทั้งสองทิศทาง (ในโหมดดูเพล็กซ์) ให้ใช้ตัวเลือก -d บนไคลเอ็นต์:

iperf3.exe -c IP -P 8 -t 30 -w 32768 -d

ขณะเรียกใช้การทดสอบเครือข่ายโดยใช้ iPerf คุณสามารถตรวจสอบแผนภูมิปริมาณงานการเชื่อมต่อเครือข่ายผ่านตัวจัดการงาน

โปรดทราบว่าในระหว่างการทดสอบ iPerf ใช้แบนด์วิธที่มีอยู่ ทั้งหมด ของช่องทางการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ ซึ่งอาจส่งผลเสียต่อแอปและผู้ใช้ที่ใช้งานได้จริง

คุณสามารถแสดงรายการตัวเลือกทั้งหมดได้ดังต่อไปนี้:

iperf3 -help

Iperf เป็นเครื่องมือเครือข่ายที่ใช้งานง่ายและสะดวก ซึ่งช่วยให้คุณวัดประสิทธิภาพการเชื่อมต่อเครือข่ายและความเร็วการถ่ายโอนข้อมูลสูงสุดระหว่างอุปกรณ์สองเครื่อง

บทความที่เกี่ยวข้อง