Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

iPerf3 – ทดสอบ Network Throughput & Speed แบบแม่นยำสำห Linux

iperf3 เป็นโปรแกรม Command-line-based ฟรี โอเพนซอร์ส Cross-platform สำหการวัด Network Throughput แบบ Real-time มันเป็นหนึ่งในเครื่องมือทรงพลังที่สุดสำหทดสอบ Maximum Achievable Bandwidth ใน IP Networks (รองรับ IPv4 และ IPv6)

[ You might also like: 17 Useful Bandwidth Monitoring Tools for Linux ]

ด้วย iperf คุณสามารถปรับ Parameters หลายอย่างที่เกี่ยวกับ Timing, Buffers และ Protocols เช่น TCP, UDP และ SCTP มันมาในเวลาที่เหมาะสำห Network Performance Tuning Operations

เพื่อให้ได้ Network Performance สูงสุดหรือดีขึ้น คุณต้องเพิ่ม Throughput และ Latency ของความสามารถในการ Receive และ Send ของ Network

อย่างไรก็ตาม ก่อนที่จะไป Tuning จริง คุณต้องทำ Tests บางอย่างเพื่อรวบรวม Overall Network Performance Statistics ที่จะนำทาง Tuning Process

ผลลัพธ์ของมันรวมถึง Time Interval ในวินาที Data Transferred, Bandwidth (Transfer Rate), Loss และ Network Performance Parameters อื่นๆ ที่มีประโยชน์ มันมีจุดประสงค์หลักเพื่อช่วย Tuning TCP Connections บน Path เฉพาะ และนี่คือสิ่งที่เราจะโฟกัสในคู่มือนี้

ข้อกำหนด:

  • คอมพิวเตอร์ 2 เครื่องที่เชื่อมต่อเครือข่าย ซึ่งทั้งสองมี iperf3 ติดตั้งอยู่

วิธีติดตั้ง iPerf3 ในระบบ Linux

ก่อนใช้ iperf3 คุณต้องติดตั้งบน 2 เครื่องที่จะใช้ Benchmarking เนื่องจาก iperf3 มีใน Official Software Repositories ของ Linux Distributions ส่วนใหญ่ การติดตั้งควรจะง่าย ใช้ Package Manager ตามตัวอย่าง

$ sudo apt install iperf3 [On Debian, Ubuntu and Mint]
$ sudo yum install iperf3 [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a net-misc/iperf [On Gentoo Linux]
$ sudo apk add iperf3 [On Alpine Linux]
$ sudo pacman -S iperf3 [On Arch Linux]
$ sudo zypper install iperf3 [On OpenSUSE]

เมื่อคุณมี iperf3 ติดตั้งบนทั้งสองเครื่องแล้ว คุณสามารถเริ่มทดสอบ Network Throughput ได้

วิธีทดสอบ Network Speed ระหว่าง Linux Servers สองเครื่อง

ก่อนอื่น Connect ไปที่ Remote Machine ที่จะใช้เป็น Server และรัน iperf3 ใน Server Mode ด้วยแฟล็ก -s จะ Listen ที่ Port 5201 โดย Default

คุณสามารถระบุ Format (k, m, g สำห Kbits, Mbits, Gbits หรือ K, M, G สำห KBytes, Mbytes, Gbytes) ให้ Report ด้วย สวิตช์ -f ดังนี้

$ iperf3 -s -f K

ถ้า Port 5201 ถูกใช้โดยโปรแกรมอื่นบน Server คุณสามารถระบุ Port อื่น (เช่น 3000) ด้วยสวิตช์ -p ดังนี้

$ iperf3 -s -p 3000

เพิ่มเติม คุณสามารถรัน Server เป็น Daemon ด้วยแฟล็ก -D และเขียน Server Messages ลง Log File ดังนี้

$ iperf3 -s -D > iperf3log

จากนั้นบน Local Machine ที่เราจะถือว่าเป็น Client (ซึ่ง Benchmarking จริงเกิดขึ้น) รัน iperf3 ใน Client Mode ด้วยแฟล็ก -c และระบุ Host ที่ Server รันอยู่ (ใช้ IP Address หรือ Domain หรือ Hostname)

$ iperf3 -c 192.168.10.1 -f K

หลังจากประมาณ 18 ถึง 20 วินาที Client ควร Terminate และแสดงผลลัพธ์ที่บ่งชี้ Average Throughput สำห Benchmark ตาม Screenshot

iPerf3 – ทดสอบ Network Throughput & Speed แบบแม่นยำสำห Linux

จาก Benchmark Results ตาม Screenshot มี Variation ในค่าระหว่าง Server และ Client แต่คุณควรพิจารณาใช้ผลลัพธ์จาก iperf Client Machine ในทุก Test ที่ทำ

วิธีทำ Advanced Network Test Throughput ใน Linux

มี Client-specific Options หลายอย่างสำห Advanced Test อธิบายด้านล่าง

หนึ่งใน Factors สำคัญที่กำหนด Amount of Data ใน Network ที่เวลาใดเวลาหนึ่งคือ TCP Window Size – มันสำคัญในการ Tune TCP Connections คุณสามารถตั้ง Window Size/Socket Buffer Size ด้วยแฟล็ก -w ดังนี้

$ iperf3 -c 192.168.10.1 -f K -w 500K

เพื่อรันใน Reverse Mode ที่ Server ส่ง และ Client Receive ให้เพิ่มสวิตช์ -R

$ iperf3 -c 192.168.10.1 -f K -w 500K -R

เพื่อรัน Bi-directional Test หมายถึงวัด Bandwidth ทั้งสองทิศทางพร้อมกัน ใช้ตัวเลือก -d

$ iperf3 -c 192.168.10.1 -f K -w 500K -d

หากคุณต้องการได้ Server Results ใน Client Output ใช้ตัวเลือก --get-server-output

$ iperf3 -c 192.168.10.1 -f K -w 500K -R --get-server-output
iPerf3 – ทดสอบ Network Throughput & Speed แบบแม่นยำสำห Linux

ยังสามารถตั้งจำนวน Parallel Client Streams (สองในตัวอย่าง) ที่รันพร้อมกันได้ ด้วยตัวเลือก -P

$ iperf3 -c 192.168.10.1 -f K -w 500K -P 2

สำหข้อมูลเพิ่มเติม ดู iperf3 Man Page

$ man iperf3

ขอจบเท่านี้! จำไว้ว่าให้ทำ Network Performance Tests เสมอก่อนไป Tuning จริง iperf3 เป็นเครื่องมือทรงพลัง ที่มาในเวลาที่เหมาะสำหการรัน Network Throughput Tests

มีความคิดหรือคำถามแบ่งปันได้ ใช้ฟอร์มความคิดเห็นด้านล่าง