Diagnostyka przepustowości łącza
Napisał: Patryk Krawaczyński
03/04/2014 w Administracja Brak komentarzy. (artykuł nr 440, ilość słów: 526)
P
oniższe narzędzia pozwalają na pomiar maksymalnej przepustowości łącza poprzez testowanie protokołów TCP oraz UDP – funkcjonując w oparciu o architekturę klient-serwer. Podczas testów umożliwiają zmianę wielu parametrów m.in. MTU, MSS, rozmiar okna itp., jak i raportowanie różnych danych. Ze względu na architekturę wymagane jest zainstalowane programu na systemach pomiędzy, którymi ma być przeprowadzony test transmisji. Przykład użycia:
Na serwerze #1
oraz #2
instalujemy programy iperf oraz nuttcp. Na serwerze #2
uruchamiamy je w trybie serwerów, czyli z przełącznikami:
iperf -s nuttcp -S --nofork
Na serwerze #1
uruchamiamy testy TCP:
IPERF:
root@server-2:~# iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.10.10.2 port 5001 connected with 10.10.10.1 port 45085 root@server-1:~# iperf -c server-2.nfsec ------------------------------------------------------------ Client connecting to 10.10.10.2, TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 3] local 10.10.10.1 port 45203 connected with 10.10.10.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.00 GBytes 862 Mbits/sec
NUTTCP:
root@server-2:~# nuttcp -S --nofork root@server-1:~# nuttcp -v -i1 server-2.nfsec nuttcp-t: v6.1.2: socket nuttcp-t: buflen=65536, nstream=1, port=5001 tcp -> server-2.nfsec nuttcp-t: time limit = 10.00 seconds nuttcp-t: connect to 10.10.10.2 with mss=1448, RTT=1.290 ms nuttcp-t: send window size = 87380, receive window size = 87380 nuttcp-t: available send window = 43690, available receive window = 43690 nuttcp-r: v6.1.2: socket nuttcp-r: buflen=65536, nstream=1, port=5001 tcp nuttcp-r: interval reporting every 1.00 second nuttcp-r: accept from 10.10.10.1 nuttcp-r: send window size = 87380, receive window size = 87380 nuttcp-r: available send window = 43690, available receive window = 43690 100.1250 MB / 1.00 sec = 839.8052 Mbps 0 retrans 107.7500 MB / 1.00 sec = 903.9204 Mbps 0 retrans 110.7500 MB / 1.00 sec = 928.9845 Mbps 0 retrans 107.0000 MB / 1.00 sec = 897.5227 Mbps 0 retrans 103.3125 MB / 1.00 sec = 866.7668 Mbps 0 retrans 105.7500 MB / 1.00 sec = 887.0474 Mbps 0 retrans 108.6250 MB / 1.00 sec = 911.2217 Mbps 0 retrans 110.0000 MB / 1.00 sec = 922.7699 Mbps 0 retrans 110.1250 MB / 1.00 sec = 923.8176 Mbps 0 retrans 67.5625 MB / 1.00 sec = 566.7667 Mbps 0 retrans nuttcp-t: 1031.6250 MB in 10.00 real seconds = 105637.76 KB/sec = 865.3845 Mbps nuttcp-t: retrans = 0 nuttcp-t: 16506 I/O calls, msec/call = 0.62, calls/sec = 1650.59 nuttcp-t: 0.0user 1.2sys 0:10real 12% 0i+0d 1564maxrss 0+3pf 16354+95csw nuttcp-r: 1031.6250 MB in 10.01 real seconds = 105557.08 KB/sec = 864.7236 Mbps nuttcp-r: 65744 I/O calls, msec/call = 0.16, calls/sec = 6569.34 nuttcp-r: 0.0user 2.8sys 0:10real 28% 0i+0d 1184maxrss 0+2pf 49252+69csw
Jak widać obydwa programy prezentują podobne wyniki. Nuttcp dodatkowo potrafi wyświetlać obciążenie systemów zarówno na kliencie, jak i serwerze.