Tại sao kết nối mạng này rất chậm?


11

Tôi gặp một số vấn đề với tốc độ hiệu suất mạng trên máy chủ Linux chạy Ubuntu 9.10. Tốc độ truyền trên tất cả các loại lưu lượng là khoảng 1,5 MB / s trên kết nối ethernet có dây 1000mbit / s. Máy chủ này đã đạt được 55MB / s so với samba trong thời gian gần đây. Tôi đã không thay đổi thiết lập phần cứng hoặc mạng. Tôi chạy các bản cập nhật một cách thường xuyên và mới nhất và lớn nhất từ ​​kho của Ubuntu đang chạy trên máy này.

Thiết lập phần cứng

Máy tính để bàn Windows PC - Công tắc 1000 - Công tắc 1000 - Máy chủ Linux

Tất cả các công tắc đều là mạng và tất cả đều bật đèn xanh cho các kết nối của chúng, điều đó có nghĩa là kết nối là 1000mbit / s. Đèn có màu vàng khi kết nối chỉ 100mbit / s. Thông tin chẩn đoán khác:

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

Máy chủ nghĩ rằng nó có kết nối 1000mbit / s. Tôi đã kiểm tra tốc độ chuyển bằng cách sao chép tệp bằng Samba. Tôi cũng đã sử dụng netcat (nc target 10000 <aBigFile) trên máy chủ để chuyển sang Windows (nc -l -p 10000) và thấy mức độ hiệu suất kém tương tự.

Tôi đã kiểm tra tốc độ của các ổ đĩa cứng bằng hdparm và nhận được:

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

Đọc cùng một tệp để chuyển bằng DD tạo ra như sau:

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

Tôi bối rối. Điều gì có thể gây ra hiệu suất mạng kém hơn 2 bậc so với những gì mạng có khả năng?


serverfault có lẽ là nơi tốt hơn để đặt câu hỏi như vậy.
Maciej Piechotka

Hãy thử câu hỏi ServerFault này để biết các kỹ thuật chung hữu ích để khắc phục sự cố kết nối mạng chậm.

Nếu không có gì thay đổi, đổ lỗi hao mòn (dây cáp).
Mel

Câu trả lời:


6

Một số điều bạn nên xem xét kiểm tra:

  1. Song công - nếu một bên cho rằng liên kết là song công hoàn toàn và bên còn lại cho rằng liên kết là một nửa song công, mong đợi điều xấu.
  2. Công tắc bị lỗi? Bỏ qua nó / họ.
  3. Khung jumbo. MTU 9000 byte giảm chi phí, điều này sẽ làm tăng thông lượng (mất một chút độ trễ). Có vẻ như vấn đề của bạn rất tệ đến nỗi điều này sẽ không giúp được gì.
  4. Các tính năng TCP: ECN, SACK, kiểm soát tắc nghẽn
  5. Kích thước cửa sổ Gửi / Nhận TCP ( chi tiết cho linux )

netperf là ​​tuyệt vời trong việc khắc phục hiệu suất mạng. Nhưng netcat không tệ trong một nhúm.


6

Theo kinh nghiệm chuyên môn của tôi, tôi đã đấu tranh để có được hiệu năng mạng tốt với Samba trên GNU / Linux. Bạn đã đề cập rằng bạn đã đạt được tốc độ 55 MBps với nó, điều mà tôi tin, vì vậy tôi đoán rằng một cái gì đó khác chắc chắn đang chơi.

Tuy nhiên, bạn đã thử NFS, FTP và SCP chưa? Các vấn đề băng thông có nhất quán trên các giao thức khác nhau không? Nếu vậy, nó có khả năng thu hẹp vào kết nối vật lý. Nếu bạn nhận được kết quả không nhất quán, thì đó có thể là sự cố phần mềm.

Ngoài việc kiểm tra các giao thức khác, bạn có đang sử dụng mã hóa khi chuyển tiền không? Ví dụ, việc sử dụng rsync -zrất hữu ích cho việc nén, nhưng nó có chi phí CPU, ảnh hưởng nghiêm trọng đến tốc độ truyền chung. Nếu sử dụng SSHvới rsync, sau đó bạn có mã hóa khi nén và CPU của bạn sẽ chịu một chút căng thẳng, gây ra các hình phạt tốc độ nghiêm trọng.


2
  1. Hãy thử netstat -ivà tìm lỗi rx / tx.
  2. Hãy thử netstat -svà tìm kiếm các vấn đề tcp - so sánh các giá trị trước và sau khi sao chép tệp và tìm kiếm các đột biến lớn trong thiết lập lại hoặc truyền lại.

Than ôi hoàn toàn không có lỗi TX / RX sau 100MB và số lần đặt lại liên tục là 4 từ đầu đến cuối bài kiểm tra
Paul Keeble

0

Bạn có thể kiểm tra sự tắc nghẽn của mạng của bạn; có lẽ một số thiết bị khác đang tiêu thụ tất cả băng thông của bạn?

Ngoài ra, có thể có điều gì đó không ổn với giao diện mạng và / hoặc trình điều khiển của nó. Khá kỳ lạ.


Tại thời điểm thử nghiệm, đây là hai thiết bị duy nhất trên mạng, không có gì khác.
Paul Keeble

0

Nếu có thể, để loại bỏ hầu hết nghi ngờ rằng đó thực sự là sự cố hệ điều hành / trình điều khiển / thẻ, hãy kết nối các máy tính với nhau bằng cáp chéo. Điều này sẽ loại bỏ chuyển đổi và các vấn đề mạng có thể khác khỏi phương trình của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.