Saya menggunakan iperf
. Ini adalah pengaturan server klien di mana Anda menjalankannya dalam mode server di satu ujung dan menyambungkannya dari komputer lain di sisi lain jaringan.
Satu mesin dijalankan:
sudo apt-get install iperf
Kami akan memulai iperf
server di salah satu mesin:
iperf -s
Dan kemudian di komputer lain, katakan iperf
untuk terhubung sebagai klien:
iperf -c <address of other computer>
Di mesin klien, Anda akan melihat sesuatu seperti ini:
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
Tentu saja, jika Anda menjalankan firewall pada mesin server, Anda harus mengizinkan koneksi pada port 5001 atau mengubah port dengan -p
flag.
Anda dapat melakukan hal yang hampir sama dengan yang lama biasa nc
(netcat) jika Anda cenderung demikian. Di mesin server:
nc -vvlnp 12345 >/dev/null
Dan klien kaleng pipa gigabyte nol melalui dd
atas nc
terowongan.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Sebagai 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
Pengaturan waktu di sana diberikan oleh dd
tetapi harus cukup akurat karena hanya dapat output secepat pipa akan mengambilnya. Jika Anda tidak puas dengan itu, Anda bisa menyelesaikan semuanya dengan time
menelepon.
Ingatlah bahwa hasilnya adalah dalam mega byte sehingga kalikan dengan 8 untuk mendapatkan kecepatan mega bit per detik. Demo di atas berjalan pada 944mbps.
Sama seperti rekomendasi Oli untuk iperf. Hanya ingin menambahkan beberapa poin:
-t <seconds>
mengubah panjang tes. mengubah jumlah koneksi simultan. Sebagai contoh, menguji 10 koneksi bersama selama 30 detik dan memberikan hasil agregat bersama dengan 10 kecepatan koneksi terpisah.-P <n>
iperf -c [target IP] -P 10 -t 30
wget
, buatlah itu dapat dieksekusichmod
, dan Anda dapat langsung menjalankan biner. Ini bekerja dengan sempurna.Saya menemukan bahwa, menggunakan pengaturan default, kecepatan koneksi tunggal berfluktuasi sedikit. Namun, dengan 3+ koneksi paralel, hasilnya lebih konsisten pada sakelar gigabyte saya. (secara konsisten @ 910-920Mbps)
sumber
Dengan menggunakan skrip ini, Anda dapat dengan mudah menguji kecepatan koneksi antara mesin Anda dan beberapa host jarak jauh. Contoh menggunakan:
user@remote_host
adalah host tujuan Anda (Anda harus memiliki akses ssh ke host ini)80000
adalah perkiraan ukuran file uji (dalam kbs), yang akan diterima ke host jarak jauh. Itu bukan argumen wajib.sumber
/dev/random
(itu dapat memblokir) atauurandom
(tautkan komentar yang menyarankan) mereka juga bisa sangat lambat, alih-alih gunakan dm-crypt (Lihat cryptsetup's FAQ 2.19 Bagaimana cara menghapus perangkat dengan crypto- kelas keacakan? ) mungkin dengan file dalam ram.Jika Anda ingin menguji Ethernet LAN Anda pada level yang lebih rendah, Anda dapat menggunakan Etherate yang merupakan alat pengujian Linux CLI Ethernet gratis:
https://github.com/jwbensley/Etherate
Melemparnya ke dalam campuran sebagai alat seperti iPerf (yang sangat bagus!) Beroperasi melalui IP dan TCP atau UDP. Tes Etherate langsung melalui Ethernet / OSI layer 2.
sumber
Perintah di bawah ini tidak memerlukan paket tambahan tetapi akses SSH:
Contoh output:
Perintah ini mencetak file dummy 3GB (1000 ^ 3 byte) yang penuh dengan nol untuk stdout pada server jarak jauh, yang dicetak (ditransfer) melalui SSH ke stdout dari server lokal dan kemudian disalurkan secara lokal ke
/dev/null
(yaitu diabaikan). Anda bahkan dapat melihat progres tes saat menjalankannya.Tentu saja tidak setepat alat lain tetapi kasus penggunaan saya adalah untuk debug proses cadangan di mana saya ingin menguji apakah kecepatan jaringan adalah masalah tanpa menginstal paket tambahan.
sumber
Ada juga beberapa alat baris perintah yang bagus untuk pembandingan bandwidth antara dua host:
nuttcp
nepim
Goben
sumber
seperti yang saya tunjukkan dalam komentar saya di jawaban terbaik, solusi itu tidak cukup baik karena klien / server tidak dioptimalkan untuk ... menekan setiap bit kecepatan
solusi saya:
membuat ramdisk di kedua sisi (oleh karena itu, Anda tidak dibatasi oleh kecepatan penyimpanan dan saya sarankan Anda membuatnya dengan ramfs bukan tmpfs, sehingga mereka tidak akan bertukar ... berhati-hatilah untuk tidak meninggalkan setidaknya memori bebas 512M untuk sistem, ini DIBUTUHKAN jika Anda memiliki giga ethernet, pada kecepatan itu bahkan SSD dapat memperlambat segalanya) instal apache di server, kemudian buat tautan ke ramdisk, buat beberapa file besar di ramdisk (100M-1G, Anda dapat membuatnya dengan dd dari / dev / random atau salin jika Anda punya beberapa) kemudian pergi ke sisi klien dan mengunduhnya (juga di ramdisk sisi itu) dengan program unduhan lanjutan, saya menggunakan
lftp
oh well, perbedaannya besar, dari 75mbps dilaporkan oleh iperf dan 9.5M / s netcat
ke 11.18M / s dengan solusi saya:
sumber
Mudah pasang komputer Anda di kotak pertama, tancapkan kotak lain ke kotak pertama. Kemudian dari komputer Anda ping kotak pertama simpan hasilnya, ping kotak lain dan lakukan substraksi.
sumber