เช็คปริมาณการรับส่งข้อมูลด้วย iperf

เช็คปริมาณการรับส่งข้อมูลด้วย iperf

logo_iperf_command

iperf เป็นเครื่องมือสำหรับเช็คอัตราการรับส่งข้อมูลระหว่างเครื่องเซิฟเวอร์ 2 เครื่องโดยจะเช็คอัตราความเร็วในการ transfer ข้อมูลรวมถึงสามารถวิเคราะข้อมูลพวก packet loss ต่างๆได้อีกด้วยครับ

Iperf features

TCP
– Measure bandwidth
– Report MSS/MTU size and observed read sizes.
– Support for TCP window size via socket buffers.
– Multi-threaded if pthreads or Win32 threads are available. Client and server can have – multiple simultaneous connections.

UDP
– Client can create UDP streams of specified bandwidth.
– Measure packet loss
– Measure delay jitter
– Multicast capable
– Multi-threaded if pthreads are available. Client and server can have multiple simultaneous connections. (This doesn’t work in Windows.)

– Where appropriate, options can be specified with K (kilo-) and M (mega-) suffices. So 128K instead of 131072 bytes.
– Can run for specified time, rather than a set amount of data to transfer.
– Picks the best units for the size of data being reported.
– Server handles multiple connections, rather than quitting after a single test.
– Print periodic, intermediate bandwidth, jitter, and loss reports at specified intervals.
– Run the server as a daemon.
– Run the server as a Windows NT Service
– Use representative streams to test out how link layer compression affects your achievable bandwidth.

ติดตั้ง iperf

เตรียมเครื่องมือสำหรับการ make กันก่อนนะครับ

 

Download และติดตั้ง iperf

 

Server 1
เริ่มด้วยการ start iperf3 ซึ่งทำหน้าที่เป็น server mode

 

Screenshot from 2014-09-22 15:28:58

Server 2
ในส่วนนี้จะทำหน้าที่เป็น client mode เพื่อทำการเทส connection ไปยัง server ที่รันไปด้วยคำสั่ง iperf3 -s

 

Screenshot from 2014-09-22 15:39:47

ในตัวอย่างจะทำให้สามารถทราบถึงปริมาณ bandwidth ที่รับส่งได้สูงสุด ณ เวลานั้นๆอาจจะเป็นอีก 1 ช่องทางในการวิเคราะห์ปัญหาทางเครือข่ายหากเกิดเหตุการณ์ผิดปกติครับ

อีกตัวอย่างสำหรับคนที่ใช้การรับส่งข้อมูลด้วย UDP แล้วอยากจะเช็น packet loss ก็สามารถใช้ flag -u เพื่อให้รับส่งข้อมูลด้วย UDP Protocal ได้ครับ

Screenshot from 2014-09-22 16:51:18

Other useful flags:
-u Use UDP rather than TCP. See also the -b option.
-b, –bandwidth n[KM] – set target bandwidth to n bits/sec (default 1 Mbit/sec for UDP, unlimited for TCP).
-t, –time n – time in seconds to transmit for (default 10 secs)
-n, –bytes n[KM] – number of bytes to transmit (instead of -t)
-k, –blockcount n[KM] – number of blocks (packets) to transmit (instead of -t or -n)
-l, –length n[KM] – length of buffer to read or write (default 128 KB for TCP, 8KB for UDP)
-R, –reverse – run in reverse mode (server sends, client receives)

ข้อมูลเพิ่มเติม
https://iperf.fr