Tại sao tôi chỉ nhận được 300-400 Mbit / s trên mạng 1000 Mbit / s của mình?


17

Thiết lập của tôi là như thế này:

Máy tính xách tay <-> Bộ định tuyến <-> Máy tính để bàn

Tất cả đều hỗ trợ Ethernet gigabit. Tôi đang sử dụng điểm chuẩn TCP / IP của 'iperf' trên máy tính xách tay và máy tính để bàn và tôi chưa bao giờ nhận được thông lượng thô hơn 400 Mbit / giây. Máy tính xách tay là Intel Core 2 Duo 2 GHz chạy Windows XP, máy tính để bàn là Intel Core 2 quad 2.4 GHz chạy Windows 7. Tôi có thể xem những gì để tối đa hóa tốc độ mạng giữa chúng? Cài đặt phần mềm? Một cách để biết nếu cáp của tôi không đúng thông số kỹ thuật? Làm sao để biết bộ điều khiển Ethernet gigabit trong một trong các thiết bị không có khả năng đạt tốc độ tối đa?

Câu trả lời:


11

1 Gbit / s là mức tối đa theo lý thuyết của kết nối này.

Nhiều thứ có thể ảnh hưởng đến điều này.

Mong đợi hiệu năng từ các NIC trên bo mạch của bạn, vì rất có thể chúng sẽ (dựa trên mô tả thiết bị "Máy tính xách tay" và "Máy tính để bàn") dựa trên CPU để xử lý lưu lượng mạng. Do đó, tốc độ sẽ bị ảnh hưởng bởi CPU khi làm những việc khác (chẳng hạn như lấy dữ liệu từ ổ cứng sang hệ thống phụ mạng chẳng hạn).

Ngoài ra, tùy thuộc vào "bộ định tuyến" là gì, nó có thể đang cố xử lý dữ liệu khi truyền từ cổng LAN sang cổng LAN, do đó tốc độ xử lý của nó cũng có thể ảnh hưởng đến tốc độ truyền dữ liệu, bất kể 'cổng' của nó nhanh như thế nào Chúng tôi.

Nếu tôi là bạn, bài kiểm tra tiếp theo của tôi sẽ là tự mình lấy cáp vá chéo CAT6 'vừa đủ dài' và nối trực tiếp máy tính xách tay vào PC (bạn có thể thoát khỏi cáp thẳng, vì nhiều máy tự động hỗ trợ của NIC - xuyên suốt những ngày này).

Bằng cách đó, bạn (ít nhất) có thể dễ dàng loại bỏ hoặc xác định bộ định tuyến (và / hoặc hệ thống dây hiện có) là một nút cổ chai.


Xem en.wikipedia.org/wiki/ Kẻ để biết hai sơ đồ chân có thể để tạo cáp chéo gigabit.
eleven81

Thông tin tốt cho chắc chắn. Trong trường hợp này, nếu người dùng không quen làm cáp và mục tiêu là loại bỏ sự chậm có thể xảy ra thì có lẽ anh ta nên sử dụng cáp do nhà máy sản xuất. Không có gì tồi tệ hơn sau đó một uốn cong lỏng lẻo. ;)
Ƭᴇcʜιᴇ007

14
Chỉ cần FYI, với ethernet gigabit, cáp chéo không còn cần thiết nữa. Tất cả các bộ điều khiển ethernet gigabit được yêu cầu để có thể 'tự động' cáp, vì vậy bạn có thể sử dụng cáp tiêu chuẩn để kết nối với các thiết bị ethernet gigabit với nhau. Tôi sẽ thử kết nối máy tính xách tay của tôi thẳng với máy tính để bàn và xem có sự khác biệt nào không.
davr

@davr bạn có thể có thành công nào không?
ebrahim.mr

8

iperf sử dụng kích thước cửa sổ khá nhỏ theo mặc định.

Tăng cửa sổ hoặc chạy nó trong chế độ UDP và nó sẽ dễ dàng bão hòa kết nối 1 Gbit / s.


Không nghĩ về điều đó, tôi sẽ thử nó.
davr

1
Bạn sẽ không bão hòa nó với phần cứng cấp tiêu dùng. CPU thường bị giới hạn bởi bus PCI hoặc PCI-Express. tức là CPU không thể di chuyển dữ liệu từ RAM sang card mạng đủ nhanh. Phần cứng cấp máy chủ dường như làm tốt hơn. Tôi biết, tôi là một lập trình viên và tôi đã cố gắng làm điều này. Đến gần nhưng bây giờ bị giới hạn bởi phần cứng của riêng tôi.
Matt H

1
làm việc cho tôi, đã đập đầu tôi trong một giờ để cố gắng tìm ra lý do tại sao Windows iperf mang lại cho tôi 250mbit / giây và Ubuntu khởi động trên cùng một máy mang lại cho tôi 925mbit / giây. hóa ra iperf trên windows mặc định là kích thước cửa sổ 8k tcp và kích thước cửa sổ 88k trên linux.
Omry

@Omry, iperf trên windows là một con chó từ nhiều góc độ. Tôi hầu như đã từ bỏ và chỉ chạy iperf trong linux
Mike Pennington

4

Jeff Atwood có một số phân tích tốt về lý do tại sao thông lượng trong thế giới thực của mạng Gigabit lại gần hơn, theo tính toán của anh ta, 30MB / s. ('B' lớn, không nhỏ 'b')

... Bạn chắc chắn không nên mong đợi tỷ lệ hoàn hảo mà chúng tôi đã đạt được khi chuyển từ 10baseT sang 100baseT. Nếu không có bất kỳ điều chỉnh lớn nào, bạn sẽ chỉ nhận được một phần của cải thiện băng thông gấp mười lần bạn có thể mong đợi


Công cụ "pcattcp" mà anh ta đang sử dụng là một thứ nhảm nhí. Chiếc netbook linux 900 mhz của tôi (có thể nhanh như máy của anh ấy năm 2005) có tốc độ vòng lặp 300MB / s.
dùng23307

Vâng, iperf cho hiệu năng tốt hơn đáng kể so với loopback so với pcattcp. Tôi sẽ gắn bó với iperf để thử nghiệm ngay bây giờ trừ khi tôi nghe thấy điều gì đó tốt hơn.
davr

1
Ngoài ra, tôi đã nhận được cao hơn 240mbit của anh ấy, và bài báo đó đã 5 tuổi, vì vậy nó không còn phù hợp nữa tôi nghĩ, khi mà công nghệ nên phát triển vượt bậc kể từ đó.
davr

Chà, xem xét rằng giao diện loopback là ảo (thậm chí không có gì được chuyển vào card mạng), bạn sẽ mong đợi hiệu năng tốt hơn nhiều (về cơ bản là sau đó xử lý để xử lý và không chạm vào ổ cứng). Tôi đang nhận được 8,09 Gbits / s (1035Mbyte / giây) qua giao diện loopback.
Matt H

3

Nếu mọi thứ đều là gigabit, bạn có thể thử bật khung hình khổng lồ . Một người bạn của tôi đã làm điều này với máy tính ở nhà của anh ấy và nhận thấy sự gia tăng rất lớn về thông lượng. Tuy nhiên, có một số nhược điểm đối với các ứng dụng có độ trễ thấp như VOIP, như đã đề cập trong bài viết.


Sự gia tăng không nên gây ấn tượng cho hầu hết các ứng dụng. Tất cả điều này sẽ có nghĩa là ít chi phí giao thức TCP hoặc UDP trên mỗi gói. Ngoài ra, để có kết quả tốt nhất, bộ chuyển đổi / bộ định tuyến của bạn cũng nên hỗ trợ khung jumbo. Tôi nghi ngờ ý muốn của anh ấy.
Matt H

Đối với bất kỳ kết quả, thiết bị chuyển mạch của bạn phải hỗ trợ khung jumbo. Không có cách nào để thiết bị chỉ có L2 gửi lại lỗi ICMP 'Gói quá lớn' để báo cho máy của bạn biết nó cần sử dụng kích thước gói nhỏ hơn.
cpt_fink

1

Bạn có nói rằng bạn đang sử dụng một bộ định tuyến? đó có phải là một bộ định tuyến cấp tiêu dùng (không chuyển đổi) không?

Tôi muốn nói rằng đó rất có thể là nút cổ chai của bạn. Để xác minh điều này, Cắm máy tính xách tay trực tiếp vào máy tính để bàn. Đặt Máy tính xách tay và máy tính để bàn của bạn để sử dụng địa chỉ IP tĩnh như 192.168.1.10 (máy tính xách tay), 192.168.1.11 (máy tính để bàn).

Điều này sẽ cho phép máy tính xách tay nói chuyện trực tiếp với máy tính để bàn. Chạy iperf giữa chúng và báo cáo kết quả tại đây.

Điều đó sẽ hoạt động vì hầu hết các card mạng hiện đại có thể tự động cảm nhận dây truyền / nhận không giống như ngày xưa khi bạn thường phải xây dựng một cáp chéo.

Nếu bạn thấy sự gia tăng rõ rệt thì bộ định tuyến của bạn là thủ phạm. Một số trong số chúng có công tắc ở mặt sau, một số khác thực sự có thể định tuyến giữa các cổng. Nhiều trong số các bộ định tuyến này là hiệu suất khủng khiếp. Nếu bạn thấy đây là vấn đề thì nếu tôi là bạn, tôi sẽ nâng cấp bộ định tuyến (có thể tốt cho việc sử dụng internet) hoặc tự đi mua một công tắc GigE và xếp tầng đó lên công tắc bộ định tuyến. Cắm máy tính xách tay và máy tính để bàn của bạn vào công tắc. Bằng cách đó, họ sẽ bỏ qua bộ định tuyến để nói chuyện với nhau.

Đảm bảo bạn thay đổi máy tính xách tay và máy tính để bàn của bạn trở lại DHCP khi bạn hoàn thành thử nghiệm.

Để cho bạn một ý tưởng, bạn sẽ nhận được tôi sẽ nghĩ 650Mbit / s trở lên. iperf không sử dụng ổ cứng trừ khi bạn nói với nó. Vì vậy, nó là bộ nhớ cho bộ nhớ hoặc thực sự kiểm tra mạng.

Một trong những điểm nghẽn khác thực sự là CPU của bạn có thể chuyển dữ liệu từ bộ nhớ sang card mạng nhanh đến mức nào. Các mạng trên PCI express dường như hoạt động tốt hơn. Tôi nghĩ rằng máy tính xách tay thường được xây dựng khá rẻ trong những ngày này vì vậy nếu bạn không nhìn thấy nhiều ở trên thì đây có thể là nút cổ chai khác.

Ngoài ra, các công tắc cấp tiêu dùng thường chỉ có thể đối phó với việc chuyển đổi 1GB giữa hai cổng bất kỳ trong khi các công tắc được quản lý cao cấp có thể chuyển đổi đồng thời ở tốc độ dây trên tất cả các cổng. Đó là một phần lý do khiến chúng có giá cao hơn nhiều.


1

Chúng tôi đã thực hiện nhiều thử nghiệm và nó đã được đưa vào Hệ điều hành.

Nếu chúng ta chuyển từ Ubuntu 11.04 sang Ubuntu 11.04 (giống với CentOS cho máy Linux), thông lượng tốc độ là ~ 938-941 MBits / s không đổi. Nếu chúng tôi chuyển từ Windows 7 x64 SP1 Ultimate sang Ubuntu 11.04, nó sẽ thay đổi từ ~ 440-485 MBits / s. Nếu chúng ta chuyển từ Windows 2008 R2SP1 x64 sang Ubuntu 11.04, tốc độ sẽ đo được ~ 435-635 MBits / s.

Như bạn có thể thấy, các máy dựa trên Linux sử dụng đầy đủ các liên kết Gigabit so với Windows. Chúng tôi hiện đang điều tra các cài đặt trong Windows sẽ dẫn đến thông lượng tương tự như Linux trên cùng một phần cứng. Giới hạn ổ cứng không phải là một yếu tố vì đây là trong bộ nhớ. Để ghi lại, các máy chúng tôi sử dụng có ổ 7200 RPM với SATA 3.0. Cả Ubuntu 11.04 (hoặc cơ sở Linux) và Windows đều vượt quá tốc độ lý thuyết của các liên kết SATA đó.


Cảm ơn thông tin, vui lòng cập nhật câu trả lời của bạn nếu bạn tìm thấy bất kỳ cài đặt nào ảnh hưởng đến tốc độ trên windows
davr

điều này khiến tôi tự hỏi liệu iperf không phải là phần duy nhất của Windows mặc định có kích thước gói nhỏ hơn Linux, xem superuser.com/a/95587/16966
matt wilkie

0

Tốc độ truyền chỉ tốt bằng liên kết yếu nhất trong chuỗi. Nó có thể không phải là tốc độ mạng mà là tốc độ ghi / đọc của Ổ cứng của bạn.

Bạn có thể tải xuống phần mềm RamDisk và tạo RamDisk trên cả hai máy tính. Đặt một tệp có kích thước khá vào bên trong nó và thực hiện chuyển qua mạng giữa RamDisks. Điều này sẽ cho bạn thấy tốc độ thực tế của mạng sẽ không bị tắc nghẽn bởi tốc độ Ổ cứng của bạn.


2
Đó là lý do tại sao tôi đã đề cập đến 'iperf', nhưng tôi đoán nó không phải là công cụ phổ biến. Về cơ bản, nó kiểm tra tốc độ mạng trực tiếp, không cần đọc / ghi vào Ổ cứng, vì vậy đó không phải là nút cổ chai ở đó. Tôi nhận ra rằng ổ cứng có thể là một nút cổ chai trong việc sử dụng trong thế giới thực.
davr

0

Không phải là câu trả lời trực tiếp cho câu hỏi của bạn nhưng gần đây chúng tôi đã nhận được kết quả sau với iperfgiữa hai hộp Linux (8 lõi, mỗi hộp 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

với MTU = 1500 (tức là không sử dụng khung jumbo). Điều đó sẽ cho bạn một ý tưởng về hiệu suất về nguyên tắc có thể.

Các card mạng (đầu ra lspci) là:

82571EB Gigabit Ethernet Controller

cả từ hai phía.

Bạn có thể muốn kiểm tra tải CPU trên máy chủ và đặc biệt là ở phía máy khách và xem liệu điều này có gần 100% không. Mặc dù tôi phải nói rằng trên hệ thống của chúng tôi, lõi bận rộn nhất là 80% (83%) ở phía bên nhận (bên gửi) trong khi 7 bên còn lại dường như không hoạt động 100% (được kiểm tra mpstat).

Điều này đang chạy iperfmà không có -utùy chọn, tức là điều này sử dụng TCP.


Tôi nghĩ bạn sẽ nhận được> 500 hoặc 600 mbits / giây trên phần cứng máy tính để bàn 1 - 2 tuổi.
Matt H

-4

davr, Không giống như kênh sợi quang và các công nghệ tương tự sử dụng các sơ đồ phân bổ băng thông tinh vi, ethernet là giao thức 'nghe và squawk'. Ethernet trước tiên lắng nghe nếu bất cứ ai hiện đang truyền, nếu vậy hãy chờ nếu không thì gửi. Vấn đề là nếu hai hoặc nhiều bên muốn truyền tải cùng nghe, họ cũng sẽ gửi cùng một lúc! Điều này sẽ gây ra va chạm và truyền lại. Công tắc ưa thích loại bỏ rất nhiều điều này, nhưng không phải tất cả.

Với ethernet, bạn sẽ thấy khoảng 30-40 phần trăm băng thông (Có vẻ như bạn nhận được điều này. Tôi có thể sai về chính xác #, phụ thuộc nhiều vào chất lượng chuyển đổi và v.v.) trước khi nhiều va chạm bắt đầu xảy ra, với công nghệ vải là đại loại là 80%. Ethernet là rẻ, kênh sợi không. . . Tôi không chắc chắn ethernet 4G sẽ làm gì để khắc phục điều này. . . nó có thể có cấu trúc liên kết mạng giống như "vải" hơn tương tự như kênh sợi và bạn bè. Đây là một sự đơn giản hóa, nhưng về cơ bản là chính xác.


2
Vâng, tôi không sử dụng một trung tâm 'ngu ngốc'. Tôi nghĩ rằng hầu hết mọi người ngày nay sẽ sử dụng các bộ chuyển mạch hoặc bộ định tuyến thông minh xử lý các thiết bị kết nối trực tiếp với nhau, loại bỏ các va chạm. Ngoài ra thử nghiệm của tôi chỉ liên quan đến hai thiết bị được kết nối với một bộ định tuyến duy nhất, vì vậy va chạm sẽ không là vấn đề trong trường hợp cụ thể của tôi.
davr

davr - xin lỗi trong khi tôi chơi người ủng hộ quỷ trong giây lát. . . Điều gì ngăn cản hai máy chủ của bạn cố gắng nói chuyện cùng một lúc? Ngoài ra, bạn đã không đề cập đến loại dữ liệu nào đang được truyền đi. . . nó gần như chỉ có TCP hoặc có rất nhiều luồng dữ liệu (âm thanh, video, v.v.)? Cả hai máy tính đều truyền dữ liệu đồng thời hay có mối quan hệ máy khách / máy chủ được phân chia chính xác hơn?
TheEruditeTroglodyte

2
Tôi đang sử dụng chương trình đo điểm chuẩn TCP / IP đặc biệt chỉ có một máy tính gửi và máy tính khác lắng nghe. Nhưng ngay cả như vậy, Ethernet là song công hoàn toàn ... nếu bạn chỉ có hai máy, chúng có thể gửi và nhận băng thông đầy đủ cho nhau cùng một lúc.
davr
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.