it-swarm-tr.com

İki kutu arasındaki ağ hızını nasıl test edersiniz?

Evimde kurulu bir gigabit ağı ve birkaç Ubuntu tabanlı kutu var. Tam bir meraktan iki kutu arasındaki hızı kontrol etmek istiyorum. Hız ya da herhangi bir şeyle ilgili herhangi bir sorun yaşamıyorum, bu gerçekten merak ediyorum sadece içimdeki inek. Artı, belki de sonuçlar iyileştirme için yer olup olmadığını veya yanlış yapılandırılmış bir şey olduğumu bana bildirir.

Peki Ubuntu kutuları arasındaki ağ hızını düzgün bir şekilde nasıl test ediyorsunuz?

165
Jacob Schoen

iperf kullanıyorum. Bir uçta sunucu modunda çalıştırmanız ve ağın diğer tarafındaki başka bir bilgisayardan bağlanmanız için bir istemci sunucu düzenlemesidir.

İki makineden biri çalışıyor:

Sudo apt-get install iperf

Makinelerden birinde iperf sunucusunu başlatacağız:

iperf -s

Sonra diğer bilgisayarda, istemci olarak bağlanmasını iperf:

iperf -c <address of other computer>

İstemci makinesinde şöyle bir şey görürsünüz:

[email protected]:~$ 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

Elbette, sunucu makinede bir güvenlik duvarı kullanıyorsanız, 5001 numaralı bağlantı noktasında bağlantılara izin vermeniz veya bağlantı noktasını -p bayrağıyla değiştirmeniz gerekir.


Bu şekilde eğimli iseniz düz eski nc (netcat) ile hemen hemen aynı şeyi yapabilirsiniz. Sunucu makinesinde:

nc -vvlnp 12345 >/dev/null

Ve müşteri dd tüneli üzerinden nc üzerinden bir gigabaytlık bir sıfır boru aktarabilir.

dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345

Demod olarak:

$ 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

Oradaki zamanlama dd tarafından verilir, ancak yalnızca borunun alacağı kadar hızlı bir şekilde çıkabileceği kadar doğru olmalıdır. Bundan memnun değilseniz, her şeyi bir time çağrısına sarabilirsiniz.

Unutmayın ki sonuç mega bytes bu yüzden mega almak için 8 ile çarpın bit - saniye başına hız. Yukarıdaki demo 944mbps'de çalışıyor.

266
Oli

Oli'nin iperf için önerdiği gibi. Sadece birkaç nokta eklemek istiyorum:

  1. Platformlarda test yapılmasını sağlayan windows istemcileri de vardır.
  2. -t <seconds> test uzunluğunu değiştirir. -P <n> eşzamanlı bağlantı sayısını değiştirir. Örneğin, iperf -c [target IP] -P 10 -t 30, 30 bağlantı için 10 bağlantıyı birlikte test eder ve 10 ayrı bağlantı hızı ile birlikte toplu sonuçlar verir.
  3. Sudo'ya ihtiyacınız yok. İkili dosyayı basitçe http://iperf.fr/ adresinden indirebilirsiniz. İşe yaramalı. wget ile indirin, chmod ile çalıştırılabilir duruma getirin ve doğrudan ikili dosyayı çalıştırabilirsiniz. Mükemmel çalışıyor.

Varsayılan ayarları kullanarak, tek bağlantı hızının biraz dalgalandığını öğrendim. Ancak, 3+ paralel bağlantıyla, sonuçlar gigabayt anahtarımda daha tutarlı. (sürekli olarak 910-920 Mbps'de)

21
wujj123456

bu betiği kullanarak makineniz ve uzaktaki bir ana bilgisayar arasındaki bağlantı hızını kolayca test edebilirsiniz. Kullanma örneği:

$ scp-speed-test.sh [email protected]_Host 80000
  • [email protected]_Host, hedef Host cihazınızdır (bu Host cihazına ssh erişiminiz olmalıdır)
  • 80000, uzak Ana Bilgisayar'a alınacak yaklaşık test dosyası boyutudur (kbs cinsinden). Zorunlu argüman değildir.
7
VeLKerr

Ethernet LAN'ınızı daha düşük bir seviyede test etmek istiyorsanız, ücretsiz bir Linux CLI Ethernet test aracı olan Etherate'i kullanabilirsiniz:

https://github.com/jwbensley/Etherate

Karışıma iPerf (çok iyi!) Gibi araçlar IP üzerinden ve TCP veya UDP üzerinden işler. Etherate, Ethernet/OSI katman 2 üzerinde doğrudan test eder.

4
jwbensley

Aşağıdaki komut ek paketler gerektirmez, SSH erişimi gerektirir:

ssh [email protected] 'dd if=/dev/zero bs=1GB count=3 2>/dev/null' | dd of=/dev/null status=progress

Örnek çıktı:

2992238080 bytes (3.0 GB) copied, 27.010250 s, 111 MB/s
5859375+0 records in
5859375+0 records out
3000000000 bytes (3.0 GB) copied, 27.1943 s, 110 MB/s

Komut, uzak sunucudaki stdout'a sıfırlarla dolu bir 3GB (1000 ^ 3 baytlık) boş bir dosya yazdırır; bu, SSH aracılığıyla yerel sunucunun stdout'una basılır (aktarılır) ve yerel olarak /dev/null (örneğin yok sayılır) ). Test sırasında testin ilerlemesini bile görebilirsiniz.

Kesinlikle diğer araçlar kadar kesin değil, ancak kullanım durumum, ağ hızının ek paketler yüklemeden sorun olup olmadığını test etmek istediğim bir yedekleme işleminde hata ayıklamaktı.

2
bm-bergmotte

İki ana bilgisayar arasında bant genişliği kıyaslama yapmak için başka güzel komut satırı araçları da vardır:

nuttcp

server$ nuttcp -S
client$ nuttcp -v -v -i1 1.1.1.1 ;# 1.1.1.1 is server's address

nepim

 server$ nepim
 client$ nepim -d -c 1.1.1.1 ;# 1.1.1.1 is server's address

goben

 server$ goben
 client$ goben -hosts 1.1.1.1 ;# 1.1.1.1 is server's address
1
Everton

en iyi cevabımdaki yorumumda belirttiğim gibi, bu çözüm yeterince iyi değil çünkü müşteri/sunucu --- optimize to ... squeeze Her hızda

çözümüm:

iki tarafa bir ramdisk yapın (bu nedenle, depolama hızıyla sınırlı değilsiniz ve onları tmpfs değil ramps ile yapmanızı öneririm, bu yüzden takas yapmayacaklar ... sadece en az 512M boş hafıza bırakmamaya dikkat edin sistem için giga ethernet'iniz varsa bu GEREKLİDİR, bu hızda bile SSD'ler işleri yavaşlatabilir) Apache'yi sunucuya kurun, sonra ramdisk için bir bağlantı oluşturun, ramdisk üzerinde birkaç büyük dosya oluşturun (100M-1G,/dev/random veya dd'den bazıları elinizde ise) daha sonra istemci tarafına gidin ve onları (o tarafın ramdiskinde) gelişmiş bir indirme programı ile indirin, kullandım lftp

peki, fark, iperf ve 9.5M/s netcat tarafından bildirilen 75 mbps'den büyüktü.

- 11.18M/s Çözümümle:

1591129421 bytes transferred in 136 seconds (11.18M/s)
0
THESorcerer