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 กันก่อนนะครับ
|
yum group install"Development Tools"
|
Download และติดตั้ง iperf
|
wget http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz
tar zxvf iperf-3.0.6.tar.gz
cd iperf-3.0.6
./configure
make
make install
|
Server 1
เริ่มด้วยการ start iperf3 ซึ่งทำหน้าที่เป็น server mode
|
iperf3 -s
|
Server 2
ในส่วนนี้จะทำหน้าที่เป็น client mode เพื่อทำการเทส connection ไปยัง server ที่รันไปด้วยคำสั่ง iperf3 -s
|
iperf3 -c x.x.x.x
|
ในตัวอย่างจะทำให้สามารถทราบถึงปริมาณ bandwidth ที่รับส่งได้สูงสุด ณ เวลานั้นๆอาจจะเป็นอีก 1 ช่องทางในการวิเคราะห์ปัญหาทางเครือข่ายหากเกิดเหตุการณ์ผิดปกติครับ
อีกตัวอย่างสำหรับคนที่ใช้การรับส่งข้อมูลด้วย UDP แล้วอยากจะเช็น packet loss ก็สามารถใช้ flag -u เพื่อให้รับส่งข้อมูลด้วย UDP Protocal ได้ครับ
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