Mengapa saya hanya mendapatkan 300-400 Mbit / s di jaringan 1000 Mbit / s saya?


17

Setup saya seperti ini:

Laptop <--> Router <--> Desktop

Mereka semua mendukung gigabit Ethernet. Saya menggunakan tolok ukur TCP / IP 'iperf' di laptop dan desktop, dan saya tidak pernah mendapatkan lebih dari 400 Mbit / s throughput mentah. Laptop ini adalah Intel Core 2 Duo 2 GHz yang menjalankan Windows XP, desktop adalah Intel Core 2 quad 2.4 GHz yang menjalankan Windows 7. Hal-hal apa yang dapat saya lihat untuk memaksimalkan kecepatan jaringan di antara mereka? Pengaturan perangkat lunak? Cara untuk mengetahui apakah kabel saya tidak memenuhi spesifikasi? Bagaimana cara mengetahui jika pengontrol gigabit Ethernet di salah satu perangkat tidak mampu mencapai kecepatan maksimal?

Jawaban:


11

1 Gbit / s adalah maksimum teoretis dari koneksi ini.

Banyak hal yang dapat mempengaruhi hal ini.

Harapkan hit di kinerja dari NIC on-board Anda, karena mereka kemungkinan besar akan (berdasarkan deskripsi perangkat "Laptop" dan "Desktop") adapter berbasis host yang mengandalkan CPU untuk memproses lalu lintas jaringan. Oleh karena itu kecepatan akan dipengaruhi oleh CPU melakukan hal-hal lain (seperti mendapatkan data dari HDD ke sub-sistem jaringan misalnya).

Juga, tergantung pada apa "router" itu, ia mungkin mencoba untuk memproses data ketika melewati dari port LAN ke port LAN, sehingga kecepatan pemrosesannya juga dapat mempengaruhi kecepatan transfer data, terlepas dari seberapa cepat 'port' -nya. adalah.

Jika saya adalah Anda, tes saya berikutnya adalah untuk mendapatkan sendiri kabel crossover CAT6 'cukup panjang' dan menghubungkan notebook secara langsung ke PC (Anda mungkin dapat menggunakan kabel straight-through, karena banyak dukungan otomatis NIC -crossover hari ini).

Dengan begitu Anda (setidaknya) dapat dengan mudah menghilangkan atau mengidentifikasi router (dan / atau kabel yang ada) sebagai hambatan.


Lihat en.wikipedia.org/wiki/… untuk dua kemungkinan pinout untuk membuat kabel crossover gigabit.
sebelas81

Info bagus pasti. Dalam hal ini jika pengguna tidak terbiasa membuat kabel, dan tujuannya adalah untuk menghilangkan kemungkinan perlambatan maka dia mungkin lebih baik menggunakan kabel buatan pabrik. Tidak ada yang jauh lebih buruk daripada halangan longgar. ;)
Ƭᴇcʜιᴇ007

14
Hanya FYI, dengan gigabit ethernet, kabel crossover tidak lagi dibutuhkan. Semua pengontrol gigabit ethernet diperlukan untuk dapat 'autosense' kabel, sehingga Anda dapat menggunakan kabel standar untuk menghubungkan ke perangkat ethernet gigabit secara bersamaan. Saya akan mencoba menghubungkan laptop saya langsung ke desktop dan melihat apakah ada perbedaan.
davr

@ davr, bisakah Anda sukses?
ebrahim.mr

8

iperf menggunakan ukuran jendela yang cukup kecil secara default.

Tingkatkan jendela atau jalankan dalam mode UDP dan itu akan dengan mudah menjenuhkan koneksi 1 Gbit / s.


Tidak memikirkan itu, saya akan mencobanya.
davr

1
Anda tidak akan menjenuhkannya dengan perangkat keras kelas konsumen. CPU umumnya dibatasi oleh PCI atau PCI-Express bus. yaitu CPU tidak dapat memindahkan data dari RAM ke kartu jaringan dengan cukup cepat. Perangkat keras tingkat server tampaknya lebih baik. Saya tahu, saya seorang programmer dan saya sudah mencoba melakukan ini. Semakin dekat tetapi sekarang dibatasi oleh perangkat keras saya sendiri.
Matt H

1
bekerja untuk saya, membenturkan kepala saya selama satu jam mencoba untuk mencari tahu mengapa Windows iperf memberi saya 250mbit / detik dan Ubuntu boot pada mesin yang sama memberi saya 925mbit / detik. ternyata iperf pada windows default ke ukuran jendela 8k tcp dan ukuran jendela 88k di linux.
Omry

@Omry, iperf di windows adalah anjing dari beberapa perspektif. Saya sebagian besar sudah menyerah dan hanya menjalankan iperf di linux
Mike Pennington

4

Jeff Atwood memiliki beberapa analisis bagus mengapa throughput dunia nyata dari jaringan Gigabit lebih dekat, dalam perhitungannya, 30MB / s. ('B' besar, bukan sedikit 'b')

... Anda seharusnya tidak mengharapkan penskalaan sempurna yang kami capai bergerak dari 10baseT ke 100baseT. Tanpa perubahan besar, Anda hanya akan mendapatkan sebagian kecil dari peningkatan bandwidth sepuluh kali lipat yang mungkin Anda harapkan


Alat "pcattcp" yang ia gunakan adalah omong kosong. Netbook linux 900mhz saya (yang mungkin secepat mesinnya pada tahun 2005) melakukan 300MB / s lebih dari loopback.
user23307

Ya, iperf memberikan kinerja loopback yang jauh lebih baik daripada pcattcp. Saya akan tetap menggunakan iperf untuk pengujian untuk saat ini kecuali saya mendengar ada sesuatu yang lebih baik.
davr

1
Saya juga sudah mendapatkan yang lebih tinggi dari 240mbit-nya, dan artikel itu berumur 5 tahun, jadi saya pikir itu tidak relevan lagi, mengingat bagaimana teknologi seharusnya telah berkembang pesat sejak saat itu.
davr

Nah, mengingat bahwa antarmuka loopback adalah virtual (bahkan tidak ada yang ditransfer ke kartu jaringan) Anda akan mengharapkan kinerja yang jauh lebih baik (pada dasarnya itu adalah proses untuk memproses dan tidak ada HDD yang tersentuh). Saya mendapatkan 8.09 Gbits / s (1035Mbytes / s) melalui antarmuka loopback.
Matt H

3

Jika semuanya gigabit, Anda bisa mencoba mengaktifkan frame jumbo . Salah satu teman saya melakukan ini dengan komputer di rumahnya dan melihat peningkatan besar dalam throughput. Namun, ada beberapa kelemahan untuk aplikasi latensi rendah seperti VOIP, seperti yang disebutkan dalam artikel.


Peningkatannya seharusnya tidak terlalu dramatis untuk sebagian besar aplikasi. Semua ini akan dilakukan berarti lebih sedikit overhead protokol TCP atau UDP per paket. Juga, untuk hasil terbaik switch / router Anda juga harus mendukung frame jumbo. Aku ragu dia akan melakukannya.
Matt H

Untuk hasil apa pun switch Anda harus mendukung frame jumbo. Tidak ada cara bagi perangkat L2 untuk mengirim kembali kesalahan ICMP 'Paket terlalu besar' untuk memberi tahu mesin Anda bahwa ia perlu menggunakan ukuran paket yang lebih kecil.
cpt_fink

1

Apakah Anda mengatakan Anda menggunakan router? adalah bahwa router tingkat konsumen rak (tidak beralih)?

Saya akan mengatakan itu kemungkinan kemacetan Anda. Untuk memverifikasi ini, Hubungkan laptop langsung ke desktop. Atur Laptop dan desktop Anda untuk menggunakan alamat IP statis seperti 192.168.1.10 (laptop), 192.168.1.11 (desktop).

Ini harus memungkinkan laptop untuk berbicara langsung ke desktop. Jalankan iperf di antara mereka dan laporkan hasilnya kembali ke sini.

Itu seharusnya berfungsi karena sebagian besar kartu jaringan modern dapat secara otomatis mengirim / menerima kabel tidak seperti masa lalu ketika Anda harus membangun kabel crossover.

Jika Anda melihat peningkatan yang ditandai maka router Anda adalah biang keladinya. Beberapa dari mereka memiliki saklar di bagian belakang, yang lain benar-benar dapat merutekan antar port. Banyak dari router ini yang berkinerja buruk. Jika Anda menemukan ini adalah masalahnya maka jika saya adalah Anda, saya akan meng-upgrade router (yang mungkin baik untuk penggunaan internet) atau pergi dan membeli sendiri GigE switch dan cascade ke switch router. Masukkan laptop dan desktop Anda ke sakelar. Dengan begitu, mereka akan mem-bypass router untuk berbicara satu sama lain.

Pastikan Anda mengubah laptop & desktop Anda kembali ke DHCP ketika Anda telah menyelesaikan percobaan.

Untuk memberi Anda ide, Anda harus mendapatkan saya akan berpikir 650Mbit / s dan di atas. iperf tidak menggunakan harddisk kecuali Anda menyuruhnya. Jadi itu memori ke memori atau benar-benar menguji jaringan.

Salah satu hambatan lainnya adalah seberapa cepat CPU Anda dapat mentransfer data dari memori ke kartu jaringan. Jaringan yang ada di PCI express tampaknya beroperasi lebih baik. Saya pikir laptop umumnya cukup murah dibangun hari ini jadi jika Anda tidak melihat banyak di atas itu maka ini bisa menjadi hambatan lainnya.

Juga, sakelar tingkat konsumen seringkali hanya dapat mengatasi perpindahan 1GB antara dua port mana pun sedangkan sakelar yang dikelola dengan baik dapat beralih dengan kecepatan kawat pada semua port secara bersamaan. Itulah bagian dari alasan harganya jauh lebih mahal.


1

Kami telah melakukan banyak pengujian dan akhirnya ke Sistem Operasi.

Jika kita beralih dari Ubuntu 11.04 ke Ubuntu 11.04 (sama dengan CentOS untuk mesin Linux), kecepatan throughputnya adalah ~ 938-941 MBits / s konstan. Jika kita beralih dari Windows 7 x64 SP1 Ultimate ke Ubuntu 11.04, ini bervariasi dari ~ 440-475 MBits / s. Jika kita berpindah dari Windows 2008 R2SP1 x64 ke Ubuntu 11.04, kecepatannya akan mencapai ~ 435-635 MBits / s.

Seperti yang Anda lihat, mesin berbasis Linux sepenuhnya memanfaatkan tautan Gigabit dibandingkan dengan Windows. Kami sekarang sedang menyelidiki pengaturan pada Windows yang akan menghasilkan throughput yang sama seperti Linux pada perangkat keras yang sama. Keterbatasan hard drive bukan merupakan faktor karena ini ada dalam memori. Sebagai catatan, mesin yang kami gunakan memiliki 7200 RPM drive dengan SATA 3.0. Baik Ubuntu 11.04 (atau basis Linux) dan Windows melebihi kecepatan teoritis dari tautan SATA tersebut.


Terima kasih atas informasinya, harap perbarui jawaban Anda jika Anda menemukan pengaturan yang mempengaruhi kecepatan pada windows
davr

ini membuat saya bertanya-tanya apakah iperf bukan satu-satunya bagian Windows yang default ke ukuran paket yang lebih kecil daripada Linux, lihat superuser.com/a/95587/16966
matt wilkie

0

Kecepatan transfer hanya sebaik tautan terlemah dalam rantai. Mungkin bukan kecepatan jaringan tetapi kecepatan tulis / baca Hard Drive Anda.

Anda dapat mengunduh perangkat lunak RamDisk dan membuat RamDisk di kedua komputer. Tempatkan file ukuran yang layak di dalamnya dan lakukan transfer melalui jaringan antara RamDisks. Ini akan menunjukkan kecepatan aktual jaringan Anda yang tidak akan terhambat oleh kecepatan Hard Drive Anda.


2
Itu sebabnya saya menyebutkan 'iperf', tapi saya kira itu bukan alat yang umum. Pada dasarnya ini menguji kecepatan jaringan secara langsung, tanpa membaca / menulis ke Hard Drive, jadi itu bukan hambatan di sana. Saya menyadari bahwa HDD dapat menjadi hambatan dalam penggunaan di dunia nyata.
davr

0

Bukan jawaban langsung untuk pertanyaan Anda, tetapi baru-baru ini kami mendapatkan hasil berikut dengan iperfantara dua kotak Linux (masing-masing 8 inti, 2,66 GHz):

------------------------------------------------------------
Client connecting to 192.168.74.15, TCP port 5001
TCP window size:  192 KByte (default)
------------------------------------------------------------
[  3] local 192.168.74.25 port 54016 connected with 192.168.74.15 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

dengan MTU = 1500 (yaitu tidak menggunakan bingkai jumbo). Itu seharusnya memberi Anda gagasan tentang apa kinerja pada prinsipnya mungkin.

Kartu jaringan (output lspci) adalah:

82571EB Gigabit Ethernet Controller

di kedua sisi.

Anda mungkin ingin memeriksa beban CPU di server dan terutama di sisi klien dan melihat apakah ini mendekati 100%. Meskipun saya harus mengatakan bahwa pada sistem kami inti tersibuk adalah 80% (83%) menganggur di sisi penerima (pengirim) sementara 7 lainnya tampaknya 100% menganggur (diperiksa dengan mpstat).

Ini berjalan iperftanpa -uopsi, yaitu ini menggunakan TCP.


Saya pikir Anda harus mendapatkan> 500 atau 600 mbits / s pada perangkat keras desktop 1 - 2 tahun.
Matt H

-4

davr, Tidak seperti fiber channel dan teknologi serupa yang menggunakan skema alokasi bandwidth yang canggih, ethernet adalah protokol 'mendengarkan dan mengomel'. Ethernet pertama-tama mendengarkan jika ada yang sedang melakukan transmisi, jika demikian tunggu jika tidak maka kirim. Masalahnya adalah bahwa jika dua atau lebih pihak yang ingin mengirimkan mendengarkan pada saat yang sama, mereka juga akan mengirim pada waktu yang sama! Ini akan menyebabkan tabrakan dan transmisi ulang. Switch mewah menghilangkan banyak hal ini, tetapi tidak semua.

Dengan ethernet Anda akan melihat bandwidth sekitar 30-40 persen (Sepertinya Anda mendapatkan ini ... Saya bisa saja salah pada # yang tepat, banyak tergantung pada kualitas sakelar dan lain-lain) sebelum banyak tabrakan mulai terjadi, dengan teknologi fabric adalah sekitar 80%. Ethernet murah, saluran fiber tidak. . . Saya tidak yakin apa yang dilakukan ethernet 4G untuk menyiasati ini. . . itu mungkin memiliki topologi jaringan yang lebih 'seperti' kain yang mirip dengan saluran serat dan teman-teman. Ini adalah penyederhanaan yang berlebihan, tetapi pada dasarnya benar.


2
Ya, saya tidak menggunakan hub 'bodoh'. Saya pikir sebagian besar orang saat ini akan menggunakan switch atau router cerdas yang menangani perangkat penghubung secara langsung satu sama lain, menghilangkan tabrakan. Juga pengujian saya hanya melibatkan dua perangkat yang terhubung ke satu router, jadi tabrakan tidak akan menjadi masalah dalam kasus khusus saya.
davr

davr - permisi sementara aku berperan sebagai advokat iblis untuk sesaat. . . Apa yang mencegah dua host Anda dari mencoba untuk berbicara pada saat yang sama? Anda juga tidak menyebutkan jenis data apa yang sedang dikirim. . . apakah ini hampir secara eksklusif TCP atau ada banyak aliran data (audio, video, dll)? Apakah kedua komputer mengalirkan data secara bersamaan atau apakah ada hubungan klien / server yang dibatasi dengan lebih tepat?
TheEruditeTroglodyte

2
Saya menggunakan program pembandingan TCP / IP khusus di mana hanya satu komputer mengirim, dan yang lainnya mendengarkan. Namun demikian, Ethernet adalah dupleks penuh ... jika Anda hanya memiliki dua mesin, keduanya dapat mengirim dan menerima bandwidth penuh satu sama lain secara bersamaan.
davr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.