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 groupinstall "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 –c x.x.x.x
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