Mengapa koneksi jaringan ini sangat lambat?

11

Saya mengalami beberapa masalah dengan kecepatan kinerja jaringan pada server Linux yang menjalankan Ubuntu 9.10. Kecepatan transfer pada semua jenis lalu lintas sekitar 1,5MB / s pada koneksi ethernet kabel 1000mbit / s. Server ini telah mencapai 55MB / s lebih dari samba di masa lalu. Saya belum mengubah perangkat keras atau pengaturan jaringan. Saya menjalankan pembaruan secara teratur dan yang terbaru dan terbaik dari repositori Ubuntu sedang berjalan di mesin ini.

Pengaturan perangkat keras

Desktop Windows PC - 1000 switch - 1000 switch - server Linux

Semua sakelar adalah netgear, dan semuanya menunjukkan lampu hijau untuk koneksinya yang berarti koneksinya 1000mbit / s. Lampu menyala kuning saat koneksi hanya 100mbit / s. Informasi diagnostik lainnya:

root@server:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:6e:3e:ae:36
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
          TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2109780 (2.1 MB)  TX bytes:111039729 (111.0 MB)
          Interrupt:22

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:23469 (23.4 KB)  TX bytes:23469 (23.4 KB)


root@server:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pg
        Wake-on: g
        Current message level: 0x00000037 (55)
        Link detected: yes

root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok

Server berpikir itu mendapat koneksi 1000mbit / s. Saya telah menguji kecepatan transfer dengan menyalin file menggunakan Samba. Saya juga menggunakan netcat (target nc 10000 <aBigFile) pada server untuk mentransfer ke Windows (nc-l -p 10000) dan melihat tingkat kinerja yang buruk.

Saya menguji kecepatan hard drive menggunakan hdparm dan mendapatkan:

root@server:~# hdparm -tT /dev/md0
/dev/md0:
 Timing cached reads:   1436 MB in  2.00 seconds = 718.01 MB/sec
 Timing buffered disk reads:  444 MB in  3.02 seconds = 147.24 MB/sec

Membaca file yang sama untuk transfer menggunakan DD menghasilkan yang berikut:

paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s

Saya bingung. Apa yang bisa menyebabkan kinerja jaringan yang buruk yaitu 2 order lebih rendah dari apa yang mampu dilakukan jaringan?

Paul Keeble
sumber
serverfault mungkin tempat yang lebih baik untuk mengajukan pertanyaan seperti itu.
Maciej Piechotka
Coba pertanyaan ServerFault ini untuk teknik umum yang berguna untuk mengatasi masalah koneksi jaringan yang lambat.
Jika tidak ada yang berubah, salahkan keausan (kabel).
Mel

Jawaban:

6

Beberapa hal yang harus Anda pertimbangkan untuk diperiksa:

  1. Dupleks - jika satu pihak berpikir bahwa tautan tersebut adalah dupleks penuh dan pihak lain berpikir bahwa tautan tersebut adalah setengah dupleks, maka akan timbul kejahatan.
  2. Saklar yang rusak? Bypass itu / mereka.
  3. Bingkai jumbo. MTU 9000 byte mengurangi overhead, yang seharusnya meningkatkan throughput (kehilangan sedikit latensi). Sepertinya masalah Anda sangat buruk sehingga ini tidak akan membantu.
  4. Fitur TCP: ECN, SACK, alg kontrol kemacetan
  5. TCP Kirim / Terima ukuran jendela ( detail untuk linux )

netperf hebat dalam mengatasi masalah kinerja jaringan. Tapi netcat tidak buruk dalam keadaan darurat.

Brian Cain
sumber
6

Dalam pengalaman profesional saya, saya telah berjuang untuk mendapatkan kinerja jaringan yang solid dengan Samba di GNU / Linux. Anda menyebutkan bahwa Anda telah mencapai kecepatan 55 MBps dengan itu, yang saya percaya, jadi saya kira sesuatu yang lain pasti sedang bermain.

Namun, sudahkah Anda mencoba NFS, FTP dan SCP? Apakah masalah bandwidth konsisten di berbagai protokol? Jika demikian, kemungkinannya menyempit ke koneksi fisik. Jika Anda mendapatkan hasil yang tidak konsisten, maka kemungkinan masalah perangkat lunak.

Selain menguji protokol lain, apakah Anda menggunakan enkripsi pada transfer? Misalnya, menggunakan rsync -zmanis untuk mengaktifkan kompresi, tetapi dikenakan biaya CPU, yang sangat memengaruhi kecepatan transfer secara keseluruhan. Jika menggunakan SSHdengan rsync, maka Anda memiliki enkripsi di atas kompresi, dan CPU Anda akan berada di bawah sedikit tekanan, menyebabkan hukuman kecepatan yang parah.

Aaron Toponce
sumber
2
  1. Coba netstat -idan cari kesalahan rx / tx.
  2. Coba netstat -sdan cari masalah tcp - bandingkan nilai sebelum dan sesudah menyalin file dan cari lonjakan besar dalam pengaturan ulang atau transmisi ulang.
Rafael Ferreira
sumber
Sayangnya tidak ada kesalahan TX / RX sama sekali setelah 100MB dan jumlah ulang telah secara konsisten 4 dari awal hingga akhir tes
Paul Keeble
0

Anda mungkin memeriksa kemacetan jaringan Anda; mungkin beberapa perangkat lain menghabiskan semua bandwidth Anda?

Di luar itu, mungkin ada sesuatu yang salah dengan antarmuka jaringan Anda dan / atau drivernya. Cukup aneh.

pmalmsten
sumber
Pada saat pengujian ini adalah hanya dua perangkat di jaringan, tidak ada lagi yang aktif.
Paul Keeble
0

Jika memungkinkan, untuk menghapus sebagian besar keraguan bahwa ini memang masalah OS / driver / kartu, sambungkan komputer bersama-sama menggunakan kabel cross over. Ini akan menghapus sakelar dan kemungkinan masalah jaringan lainnya dari persamaan Anda.

Stephen Jazdzewski
sumber