Używam iperf
. Jest to ustawienie serwera klienta, polegające na tym, że uruchamiasz go w trybie serwera na jednym końcu i łączysz się z nim z innego komputera po drugiej stronie sieci.
Jedna z obu maszyn działa:
sudo apt-get install iperf
Uruchomimy iperf
serwer na jednym z komputerów:
iperf -s
A następnie na drugim komputerze powiedz, iperf
aby połączyć się jako klient:
iperf -c <address of other computer>
Na komputerze klienckim zobaczysz coś takiego:
oli@bert:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.04 GBytes 893 Mbits/sec
Oczywiście, jeśli używasz zapory na serwerze, musisz zezwolić na połączenia na porcie 5001 lub zmienić port za pomocą -p
flagi.
Możesz zrobić prawie to samo z zwykłym starym nc
(netcat), jeśli masz taką skłonność. Na komputerze serwera:
nc -vvlnp 12345 >/dev/null
A rura może klient gigabyte zer przez dd
nad nc
tunelem.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Jako demod:
$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s
Czas jest podany przez, dd
ale powinien być wystarczająco dokładny, ponieważ może wydać tylko tak szybko, jak potoczy to rura. Jeśli nie jesteś z tego zadowolony, możesz zakończyć całą time
rozmowę.
Pamiętaj, że wynik jest w mega bajtów więc pomnożyć przez 8, aby uzyskać mega bitów -per sekundę prędkości. Powyższa wersja demonstracyjna działa z prędkością 944 Mb / s.
To samo co zalecenie Oli dla iperf. Chcę tylko dodać kilka punktów:
-t <seconds>
zmienia długość testu. zmienia liczbę jednoczesnych połączeń. Na przykład, testuj 10 połączeń razem przez 30 sekund i daje zagregowane wyniki wraz z 10 oddzielnymi prędkościami połączeń.-P <n>
iperf -c [target IP] -P 10 -t 30
wget
, zrób z niegochmod
, a możesz bezpośrednio uruchomić plik binarny. Działa idealnie.Odkryłem, że przy ustawieniach domyślnych szybkość pojedynczego połączenia zmienia się dość mocno. Jednak przy połączeniach równoległych 3+ wyniki są bardziej spójne na moim przełączniku gigabajtowym. (konsekwentnie @ 910-920 Mb / s)
źródło
Za pomocą tego skryptu możesz łatwo przetestować szybkość połączenia między twoim komputerem a jakimś zdalnym hostem. Przykład użycia:
user@remote_host
jest hostem docelowym (musisz mieć dostęp ssh do tego hosta)80000
to przybliżony rozmiar pliku testowego (w kbs), który zostanie odebrany na zdalnym hoście. Nie jest to argument obowiązkowy.źródło
/dev/random
(może blokować) luburandom
(sugerują to komentarze linków) mogą być również bardzo powolne, zamiast tego używaj dm-crypt (zobacz FAQ 2.19 cryptsetup Jak mogę wyczyścić urządzenie krypto- stopień losowości? ) może z plikiem w pamięci RAM.Jeśli chcesz przetestować Ethernet LAN na niższym poziomie, możesz użyć Etherate, który jest bezpłatnym narzędziem do testowania interfejsu Linux CLI Ethernet:
https://github.com/jwbensley/Etherate
Rzucanie go w miksie, ponieważ narzędzia takie jak iPerf (które są bardzo dobre!) Działają przez IP i TCP lub UDP. Testy Etherate bezpośrednio przez warstwę Ethernet / OSI 2.
źródło
Poniższe polecenie nie wymaga dodatkowych pakietów, ale dostęp przez SSH:
Przykładowe dane wyjściowe:
Polecenie drukuje atrapę pliku 3GB (1000 ^ 3 bajtów) pełnego zer na standardowe wyjście na zdalnym serwerze, który jest drukowany (przesyłany) przez SSH do standardowego serwera lokalnego, a następnie lokalnie przesyłany do
/dev/null
(tzn. Ignorowany). Możesz nawet zobaczyć postęp testu podczas jego wykonywania.Z pewnością nie tak precyzyjne jak inne narzędzia, ale moim przypadkiem użycia było debugowanie procesu tworzenia kopii zapasowej, w którym chciałem sprawdzić, czy problem dotyczy prędkości sieci bez instalowania dodatkowych pakietów.
źródło
Istnieją również inne ładne narzędzia wiersza polecenia do testowania przepustowości między dwoma hostami:
nuttcp
nepim
Goben
źródło
jak wskazałem w moim komentarzu, najlepsza odpowiedź, że to rozwiązanie nie jest wystarczająco dobre, ponieważ klient / serwer nie jest zoptymalizowany do ... zmniejszania każdej prędkości
moje rozwiązanie:
zrób ramdysk po obu stronach (dlatego nie jesteś ograniczony szybkością przechowywania i sugeruję, abyś zrobił je z ramfami, a nie tmpfs, więc nie będą się zamieniać ... po prostu uważaj, aby nie zostawić przynajmniej 512 MB wolnej pamięci w przypadku systemu jest to WYMAGANE, jeśli masz Gigabit Ethernet, przy tej prędkości nawet dyski SSD mogą spowolnić) zainstalować apache na serwerze, a następnie utworzyć łącze do ramdysku, utworzyć kilka dużych plików na ramdysku (100M-1G, można je utworzyć za pomocą dd z / dev / random lub copy, jeśli masz go pod ręką), a następnie przejdź do strony klienta i pobierz je (także na ramdysku tej strony) za pomocą zaawansowanego programu do pobierania, użyłem
lftp
no cóż, różnica była duża, od 75 Mb / s zgłoszonych przez iperf i 9,5 M / s netcat
do 11,18 M / s z moim rozwiązaniem:
źródło
Łatwo podłącz komputer do pierwszego urządzenia, podłącz drugie urządzenie do pierwszego urządzenia. Następnie pinguj z komputera pierwsze pole, zapisz wynik, ping drugie pole i wykonaj odejmowanie.
źródło