1000Mbit / s 네트워크에서 300-400Mbit / s 만 얻는 이유는 무엇입니까?


17

내 설정은 다음과 같습니다

노트북 <-> 라우터 <-> 데스크탑

그들은 모두 기가비트 이더넷을 지원합니다. 랩톱 및 데스크톱에서 'iperf'TCP / IP 벤치 마크를 사용하고 있으며 400 Mbit / s 이상의 원시 처리량을 얻지 못했습니다. 랩탑은 Windows XP를 실행하는 Intel Core 2 Duo 2 GHz이고, 데스크탑은 Windows 7을 실행하는 Intel Core 2 quad 2.4 GHz입니다. 이들 사이의 네트워크 속도를 최대화하기 위해 무엇을 볼 수 있습니까? 소프트웨어 설정? 케이블이 사양에 맞지 않는지 확인하는 방법은 무엇입니까? 장치 중 하나의 기가비트 이더넷 컨트롤러가 최대 속도를 낼 수 없는지 어떻게 알 수 있습니까?

답변:


11

이 연결의 이론상 최대 값은 1Gbit / s입니다.

많은 것들이 이것에 영향을 줄 수 있습니다.

온보드 NIC는 네트워크 트래픽을 처리하기 위해 CPU에 의존하는 호스트 기반 어댑터 ​​(장치 설명 "랩탑"및 "데스크톱"기반) 일 가능성이 있으므로 온보드 NIC의 성능이 저하 될 것으로 예상됩니다. 따라서 속도는 CPU에서 다른 작업 (예 : HDD에서 네트워킹 하위 시스템으로 데이터를 가져 오는 등)에 영향을받습니다.

또한 "라우터"가 무엇인지에 따라 LAN 포트에서 LAN 포트로 전달 될 때 데이터를 처리하려고 시도 할 수 있으므로 처리 속도가 '포트'속도에 관계없이 데이터 전송 속도에 영향을 줄 수 있습니다. 아르.

다음 테스트는 '충분히 긴'CAT6 크로스 오버 패치 케이블을 사용하여 노트북을 PC에 직접 연결하는 것입니다. -요즘 크로스 오버).

그렇게하면 최소한 라우터 (및 기존 배선)를 병목 현상으로 쉽게 제거하거나 식별 할 수 있습니다.


기가비트 크로스 오버 케이블을 만들기위한 두 가지 가능한 핀 배치는 en.wikipedia.org/wiki/… 를 참조하십시오 .
eleven81

확실히 좋은 정보입니다. 이 경우 사용자가 케이블을 만드는 데 익숙하지 않고 가능한 감속을 제거하는 것이 목표라면 공장에서 만든 케이블을 사용하는 것이 좋습니다. 느슨한 압착보다 더 나쁜 것은 없습니다. ;)
Ƭᴇcʜιᴇ007

14
참고로 기가비트 이더넷을 사용하면 크로스 오버 케이블이 더 이상 필요하지 않습니다. 모든 기가비트 이더넷 컨트롤러는 케이블을 '자동 감지'할 수 있어야하므로 표준 케이블을 사용하여 기가비트 이더넷 장치에 함께 연결할 수 있습니다. 랩톱을 데스크톱에 바로 연결하여 차이가 있는지 확인해 보겠습니다.
davr

@ davr 성공할 수 있습니까?
ebrahim.mr

8

iperf는 기본적으로 아주 작은 창 크기를 사용합니다.

창을 늘리거나 UDP 모드에서 실행하면 1Gbit / s 연결이 쉽게 포화됩니다.


그것을 생각하지 않았다, 나는 그것을 시도 할 것이다.
davr

1
소비자 급 하드웨어로는 포화시키지 않습니다. CPU는 일반적으로 PCI 또는 PCI-Express 버스에 의해 제한됩니다. 즉, CPU는 RAM에서 네트워크 카드로 데이터를 충분히 빠르게 이동할 수 없습니다. 서버급 하드웨어가 더 나은 것 같습니다. 나는 프로그래머이고 나는 이것을하기 위해 노력하고있다. 점점 가까워졌지만 이제는 내 하드웨어에 의해 제한됩니다.
Matt H

1
나를 위해 일하고, Windows iperf가 250mbit / sec를 제공하는 이유와 같은 컴퓨터에서 부팅 된 Ubuntu가 925mbit / sec를 제공하는 이유를 알아 내려고 한 시간 동안 내 머리를 두드리고있었습니다. Windows에서 iperf는 기본적으로 8k tcp 창 크기로, Linux에서는 88k 창 크기로 설정됩니다.
Omry

@Omry, Windows의 iperf는 몇 가지 관점에서 개입니다. 나는 대부분 리눅스에서 포기하고 iperf 만 실행했다
Mike Pennington 8

4

Jeff Atwood는 기가비트 네트워크의 실제 처리량이 30MB / s에 가까운 이유를 잘 분석 했습니다. (큰 'B', 작은 'b'는 아님)

... 10baseT에서 100baseT 로의 완벽한 확장을 기 대해서는 안됩니다. 크게 조정하지 않으면 10 배 향상된 대역폭의 일부만 얻을 수 있습니다.


그가 사용하고있는 "pcattcp"도구는 엉망입니다. 내 900mhz 리눅스 넷북 (아마도 그의 컴퓨터가 2005 년에 있었던 것보다 빠름)은 루프백을 통해 300MB / s를 수행합니다.
user23307

예, iperf는 pcattcp보다 루프백보다 눈에 띄게 더 나은 성능을 제공합니다. 나는 다른 것이 더 낫지 않다면 지금 테스트를 위해 iperf를 고수 할 것입니다.
davr

1
또한 이미 240mbit보다 높아지고 그 기사는 5 살이므로 기술이 그 이후로 어떻게 발전해야하는지 더 이상 생각하지 않습니다.
davr

루프백 인터페이스가 가상 (네트워크 카드로 전송되지 않음)이라는 점을 고려하면 훨씬 더 나은 성능을 기대할 수 있습니다 (기본적으로 처리가 진행되고 HDD를 건드리지 않음). 루프백 인터페이스를 통해 8.09Gbits / s (1035Mbytes / s)를 얻었습니다.
Matt H

3

모든 것이 기가비트 인 경우 점보 프레임활성화 할 수 있습니다. 내 친구 중 한 명이 자신의 가정용 컴퓨터로이 작업을 수행하여 처리량이 크게 증가했습니다. 그러나이 기사에서 언급 한 것처럼 VOIP와 같은 지연 시간이 짧은 애플리케이션에는 몇 가지 단점이 있습니다.


대부분의 애플리케이션에서 이러한 증가가 그렇게 극적이지 않아야합니다. 이 모든 작업은 패킷 당 TCP 또는 UDP 프로토콜 오버 헤드가 줄어 듭니다. 또한 최상의 결과를 얻으려면 스위치 / 라우터도 점보 프레임을 지원해야합니다. 나는 그의 뜻을 의심한다.
Matt H

를 들어 어떤 결과 당신의 스위치는 점보 프레임을 지원해야합니다. L2 전용 장치가 더 작은 패킷 크기를 사용해야한다는 것을 알리기 위해 '패킷이 너무 큼'ICMP 오류를 다시 보낼 수있는 방법이 없습니다.
cpt_fink 2011

1

라우터를 사용한다고 말했습니까? 이것은 일반 소비자 용 라우터 (스위치 아님)입니까?

당신의 병목 현상 일 가능성이 높습니다. 이를 확인하려면 랩탑을 데스크탑에 직접 연결하십시오. 192.168.1.10 (랩탑), 192.168.1.11 (데스크톱)과 같은 고정 IP 주소를 사용하도록 랩톱 및 데스크탑을 설정하십시오.

이를 통해 랩톱이 데스크탑과 직접 통신 할 수 있습니다. 그들 사이에 iperf를 실행하고 결과를 여기에 다시보고하십시오.

예전의 크로스 오버 케이블을 만들던 시절과는 달리 대부분의 최신 네트워크 카드는 송 / 수신 와이어를 자동 감지 할 수 있기 때문에 작동합니다.

현저한 증가가 보이면 라우터가 원인입니다. 그들 중 일부는 뒷면에 스위치가 있고 다른 일부는 실제로 포트 사이를 라우팅 할 수 있습니다. 이러한 라우터 중 다수는 끔찍한 수행자입니다. 이것이 문제라는 것을 알게되면 내가 당신이라면 라우터를 업그레이드하거나 (인터넷에 적합 할 것입니다) GigE 스위치를 구입하여 라우터 스위치에 캐스케이드 연결하십시오. 랩탑과 데스크탑을 스위치에 연결하십시오. 그렇게하면 라우터를 우회하여 서로 대화합니다.

실험을 완료하면 랩톱 및 데스크톱을 DHCP로 다시 변경해야합니다.

아이디어를주기 위해서는 650Mbit / s 이상을 생각해야합니다. iperf는 사용자가 지시하지 않는 한 하드 드라이브를 사용하지 않습니다. 메모리 나 메모리를 테스트하는 메모리입니다.

다른 병목 현상은 실제로 CPU가 메모리에서 네트워크 카드로 데이터를 얼마나 빨리 전송할 수 있는지입니다. PCI Express에있는 네트워크는 더 잘 작동하는 것 같습니다. 요즘 랩톱은 일반적으로 상당히 저렴하게 만들어 졌다고 생각하므로 그 이상을 보지 않으면 다른 병목 현상이 발생할 수 있습니다.

또한 소비자 용 스위치는 두 포트 간 1GB 스위칭에만 대처할 수있는 반면, 고급 관리 형 스위치는 모든 포트에서 유선 속도로 동시에 스위칭 할 수 있습니다. 그것이 그들이 더 많은 비용을 지불하는 이유의 일부입니다.


1

우리는 수많은 테스트를 수행했으며 운영 체제로 정리되었습니다.

Ubuntu 11.04에서 Ubuntu 11.04 (Linux 시스템의 CentOS와 동일)로 이동하는 경우 속도 처리량은 ~ 938-941MBits / s입니다. Windows 7 x64 SP1 Ultimate에서 Ubuntu 11.04로 이동하면 ~ 440-475MBits / s입니다. Windows 2008 R2SP1 x64에서 Ubuntu 11.04로 이동하면 속도는 ~ 435-635MBits / s입니다.

보시다시피 Linux 기반 시스템은 Windows에 비해 기가비트 링크를 완전히 활용합니다. 이제 동일한 하드웨어에서 Linux와 동일한 처리량을 초래할 수있는 Windows 설정을 조사하고 있습니다. 하드 드라이브 제한은 메모리에 있기 때문에 고려되지 않습니다. 기록을 위해 우리가 사용하는 머신에는 SATA 3.0이 장착 된 7200RPM 드라이브가있었습니다. Ubuntu 11.04 (또는 Linux 기반)와 Windows 모두 해당 SATA 링크의 이론적 속도를 초과했습니다.


정보 주셔서 감사합니다, 당신은 Windows의 속도에 영향을 미치는 설정을 찾으면 답변을 업데이트하십시오
davr

iperf 리눅스보다 작은 패킷 크기 기본값이 표시되는지 윈도우의 유일한 일부가 아닌 경우,이 차종 나 궁금 superuser.com/a/95587/16966
매트 윌키

0

전송 속도는 체인에서 가장 약한 링크만큼 좋습니다. 네트워크 속도가 아니라 하드 드라이브의 쓰기 / 읽기 속도 일 수 있습니다.

RamDisk 소프트웨어 를 다운로드 하고 두 컴퓨터 모두에서 RamDisk를 작성할 수 있습니다 . 알맞은 크기의 파일을 파일 안에 넣고 RamDisk간에 네트워크를 통해 전송하십시오. 하드 드라이브 속도로 인해 병목 현상이 발생하지 않는 네트워크의 실제 속도가 표시됩니다.


2
그렇기 때문에 'iperf'에 대해 언급했지만 도구가 일반적이지 않은 것 같습니다. 기본적으로 하드 드라이브를 읽거나 쓰지 않고 네트워크 속도를 직접 테스트하므로 병목 현상이 발생하지 않습니다. HDD가 실제 사용에서 병목 현상이 될 수 있음을 알고 있습니다.
davr

0

귀하의 질문에 대한 직접적인 답변은 아니지만 최근 iperf에 두 개의 Linux 상자 (각 8 코어, 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

MTU = 1500으로 (즉, 점보 프레임을 사용하지 않음). 그것은 어떤 성능이 원칙적으로 가능한지에 대한 아이디어를 제공해야합니다.

네트워크 카드 (lspci 출력)는 다음과 같습니다.

82571EB Gigabit Ethernet Controller

양쪽에.

서버, 특히 클라이언트 측의 CPU로드를 확인하여 100 %에 가까운 지 확인할 수 있습니다. 비록 우리 시스템에서 가장 바쁜 코어는 수신기 (발신자) 측에서 유휴 상태에서 80 % (83 %) 유휴 상태이고 다른 7 개는 100 % 유휴 상태 인 것으로 보입니다 (으로 확인 mpstat).

옵션 iperf없이 실행 중 -u입니다. 즉, TCP를 사용합니다.


1-2 년 된 데스크탑 하드웨어에서> 500 또는 600 mbits / s를 가져야한다고 생각합니다.
Matt H

-4

davr, 정교한 대역폭 할당 체계를 사용하는 파이버 채널 및 유사한 기술과 달리 이더넷은 '청취 및 스 쿼크'프로토콜입니다. 이더넷은 누군가 현재 전송 중인지 먼저 듣고, 그렇지 않으면 기다립니다. 문제는 전송하고자하는 둘 이상의 당사자가 동시에 청취하는 경우에도 동시에 전송한다는 것입니다! 충돌 및 재전송이 발생합니다. 팬시 스위치는이 모든 것을 제거하지만 전부는 아닙니다.

이더넷을 사용하면 패브릭 기술과 관련하여 많은 충돌이 발생하기 전에 약 30-40 %의 대역폭을 예상해야합니다 (이것을 얻는 것처럼 보입니다 ..... 80 %와 같은 이더넷은 저렴하지만 파이버 채널은 그렇지 않습니다. . . 이 문제를 해결하기 위해 4G 이더넷이 무엇을하는지 잘 모르겠습니다. . . 파이버 채널 및 친구와 유사한 네트워크 토폴로지와 같은 '패브릭'이있을 수 있습니다. 이것은 지나치게 단순화 된 것이지만 본질적으로 정확합니다.


2
네, 나는 '멍청한'허브를 사용하지 않습니다. 요즘 대부분의 사람들은 장치를 서로 직접 연결하여 충돌을 제거하는 지능형 스위치 또는 라우터를 사용할 것이라고 생각합니다. 또한 내 테스트에는 단일 라우터에 연결된 두 개의 장치 만 포함되므로 특정 경우 충돌이 문제가되지 않습니다.
davr

내가 악마의 옹호자를 잠시 동안하는 동안 davr- 핑계. . . 두 호스트가 동시에 대화를 시도하지 못하게하는 요인은 무엇입니까? 또한 어떤 종류의 데이터가 전송되고 있는지 언급하지 않았습니다. . . 거의 독점적으로 TCP입니까 아니면 많은 데이터 스트리밍 (오디오, 비디오 등)이 있습니까? 두 컴퓨터가 동시에 데이터를 스트리밍합니까, 아니면보다 정확하게 클라이언트 / 서버 관계가 구분되어 있습니까?
TheEruditeTroglodyte

2
한 컴퓨터 만 보내고 다른 컴퓨터는 듣는 특별한 TCP / IP 벤치마킹 프로그램을 사용하고 있습니다. 그러나 그럼에도 불구하고 이더넷은 전이중입니다. 두 대의 컴퓨터 만있는 경우 서로 동시에 전체 대역폭을 보내고받을 수 있습니다.
davr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.