네트워크 속도 문제 해결 — 오래된 문의


18

나는 나이가 많은 질문이라고 확신하는 것에 대한 도움을 찾고 있습니다. 네트워크 처리량을보다 명확하게 이해하기를 간절히 바라고 있지만 "클릭"하는 정보를 찾지 못하는 것 같습니다.

여러 버전의 Windows를 실행하는 지리적으로 분산 된 서버가 몇 대 있습니다. 항상 하나의 호스트 (데스크톱)를 소스로 사용한다고 가정하면 해당 호스트에서 전국의 다른 서버로 데이터를 복사 할 때 속도 차이가 커집니다. 경우에 따라 데이터를 12MB / s로 일관되게 복사 할 수 있으며, 다른 경우에는 0.8MB / s가 표시됩니다. 8 개의 대상을 테스트 한 후에는 항상 0.6-0.8MB / s 또는 11-12MB / s 인 것으로 보입니다. 우리가 주로 관심을 갖는 건물에서는 ISP와 OC-3이 연결되어 있습니다.

나는 놀이에 많은 변수가 있다는 것을 알고 있지만 여기의 전문가가 몇 가지 기본적인 질문에 대답하여 내 이해를 높이는 데 도움이되기를 바랍니다.

1.) 100Mbps 이더넷 카드와 72ms의 일반적인 대기 시간으로 Windows XP, server 2003 등을 실행하는 구형 컴퓨터의 경우 0.8MB / s의 사운드가 합리적으로 들립니까? 아니면 문제를 나타낼만큼 느리다고 생각하십니까?

2.) "처리량 = TCP 창 / 대기 시간"의 고전적인 "수학적 최고 속도"는 우리의 경우 0.8MB / s (64Kb / 72ms)로 계산됩니다. 내 이해는 상한입니다. 그 속도를 능가 할뿐 아니라 (오버 헤드로 인해) 도달 할 것으로 예상하지 않습니다. 그러나 어떤 경우에는 12.3MB / s의 속도가 나타납니다. 네트워크 주변에 스틸 헤드 가속기가 흩어져 있는데, 전송 속도가 더 높을 수 있습니까?

3.) SMB와 SMB2를 함께 사용하면 속도의 차이를 설명 할 수 있습니다. 실제로 예상대로 패킷 캡처는 사용중인 OS 버전에 따라 사용되는 것으로 표시됩니다. SMB2 사용 여부를 결정하지만 SMB2로 어떤 성능 향상을 기대할 수 있는지 궁금합니다.

내 문제는 단순히 네트워크 속도가 적당하지 않은 것과 관련하여 경험이 부족하고 더 중요한 관점 인 것 같습니다. 컨텍스트 / 관심을 제공하는 데 도움을 줄 수있는 사람이 있습니까?


속도 차이는 SMB와 SMB 2만이 아닙니다. 비스타 이상에서 네트워킹 스택은 더 이상 * nix 기반 애드온이 아니며 OS에 통합되어 훨씬 낮은 대기 시간과 오버 헤드를 허용합니다.
Jim B

고마워요 Jim, 알아두면 좋습니다. 예, OSI 스택에서 찾고있는 위치에 따라 업스트림 및 다운 스트림에 10 억 개의 변수가 있다는 것을 알고 있습니다. 동료는 속도 차이가 단순히 "SMB 대 SMB2"의 문제 일 수 있다고 제안했습니다. 나는 SMB2 (.1)가 10 배의 속도 증가를 제공하는 것에 회의적이라고 생각하지만 다시는 아라크네 예술에 대해 충분히 알지 못합니다.)
Univ426

좋은 질문입니다! 이것에 대한 업데이트? 그리고 공유되었지만 "로그인"되지 않은 Windows XP 상자 인 fwiw는 사용자가 로그인 한 것보다 파일을 더 빨리 전송합니다.
Chris K

답변:


4

당신이 말하는 수학적 공식은 실제로 사용 가능한 실제 대역폭이 아니라 TCP에 가장 효율적인 전송 창 크기 설정을 결정하는 방법입니다. TCP는 네트워크 상태에 따라 전송 속도를 조정할 수있는 슬라이딩 윈도우라는 메커니즘을 사용합니다. 아이디어는 TCP 송신기가 수신기의 승인없이 더 많은 데이터를 전송한다는 것입니다. 데이터 손실이있는 경우 승인간에 전송되는 데이터 양이 줄어들어 유효 대역폭도 줄어 듭니다.

문제의 공식은 실제로 주어진 호스트 쌍 사이의 대기 시간과 왕복 대기 시간을 기반으로 TCP 전송 창의 이상적인 크기를 결정합니다. 아이디어는 '비행 중'데이터의 양이 대역폭 지연 제품으로 알려진 것과 일치하도록 창 크기를 갖는 것입니다. 예를 들어 초당 50 메가 비트 (6.25 메가 바이트)와 평균 왕복 대기 시간이 100ms 인 경우 6.25 * 0.1 = 625 킬로바이트의 데이터를 갖게됩니다. 이것은 TCP가 협상 할 값입니다 (올바르게 구성된 경우). 링크의 대기 시간과 대역폭 특성이 다양하므로 창 크기도 달라집니다.

필요한 것은 소스와 다양한 대상에서 실행되는 iperf (무료)와 같은 대역폭 관리 도구입니다. 이렇게하면 가능한 다른 처리량 (다른 앱과 상관없이)에 대한 아이디어를 제공하는 동시에 대기 시간에 대한 통찰력을 얻을 수 있습니다. 호스트간에 확장 된 핑을 실행하면 대기 시간 특성에 대한 일반적인 아이디어가 제공됩니다. 이 데이터가 있으면 처리량에 대한 정보를 더 잘 알 수 있습니다.

BTW-모든 종류의 LAN 최적화 프로그램을 사용하면 종종 데이터 압축, TCP 최적화, 캐싱 등이 포함됩니다. 편리하지만 기본 링크의 특성을 모호하게 할 수 있습니다. 원시 대역폭 / 지연 (및 잠재적으로 패킷 손실)에 대해 알고 나면 다양한 호스트가 사용 가능한 대역폭을 적절히 활용할 수 있도록 면밀히 검토 할 수 있습니다.


훌륭한 정보 rnxrx에 감사드립니다. TCP에서 사용되는 슬라이딩 윈도우는 많은 의미가 있습니다. 우리의 경우, 우리가 우려하는 유일한 트래픽은 TCP를 통과하는 것이므로 내 질문은 TCP에 집중되어 있다고 생각합니다. repliweb과 같은 다른 데이터 전송 방법을 사용했으며 훨씬 더 높은 처리량 (최대 11MB / s)을 달성했습니다. 나는 대역폭 지연 제품을 몰랐다.
Univ426

2

"ping -l 8092"또는 FTP 또는 HTTP를 시도하여 SMB 문제인지 확인하십시오.

우선 : 컴퓨터를 연결하기 위해 어떤 미디어를 사용합니까? 우리 "100mpbs"는 무엇입니까? 이더넷? "지리적으로 분산 된"컴퓨터에는 사용할 수 없습니다.

컴퓨터간에 "인터넷을 통한 VPN"의 경우 라우터는 다른 링크를 사용할 수 있습니다. 하나는 빠르지 만 다른 하나는 그렇지 않습니다. 그들은 많은 매개 변수를 기반으로 링크를 선택할 수 있습니다.

네트워크를 설명하십시오.

MTU 문제 일 수도 있습니다. 여러 링크에 다른 MTU가있을 수 있습니다.


감사합니다. 답변을 드리기 위해 질문을 업데이트했습니다. 소스 호스트에 100Mbps 네트워크 카드가있는 일반 이더넷 네트워크입니다.
Univ426

조쉬, 아직도 이해가 안 돼요 : ((100BASE 이더넷을 사용하여 서버와 PC를 연결합니까? 100BASE-LX10 (두 개의 광섬유를 통한 이더넷)을 사용하더라도 두 국가의 "전국"컴퓨터를 연결할 수 없습니다. . (?있는)? 10 킬로미터에 대한 거리 제한 및 이더넷의 경우 직접 스위치 나 연결 컴퓨터를 사용하여 대기 시간에 대해 말씀 해주십시오 할 : 어떻게 당신이 그것을 계산 않았다 어떻게 감사를 "72 밀리"거지?
일리아

우리는 로컬 LAN을 통해 퍼블릭 인터넷, 데이터 센터 및 회사 인트라넷을 통해 서버로갑니다. 대기 시간은 ping을 사용하여 결정되었습니다. 우리는 예상대로 여러 스위치를 겪습니다. 가장 가까운 스위치는 호스트가 100Mbps 인 자동 협상 속도를 확인했습니다. 잘하면 그것은 도움이됩니다.
Univ426

1
nb-실제로 관심있는 대역폭은 LAN 연결의 100M이 아니라 엔드 포인트 간의 가장 느린 링크입니다. 이것은 WAN 링크이거나 느린 중간 링크 일 수 있습니다.
rnxrx

좋은 지적입니다. 질문을 업데이트하겠습니다. 그러나 우리가 OC-3을 통해 ISP에 연결되어 있다는 것을 알고 있습니다. 나는 그 업스트림의 모든 것이 적어도 100Mbps라고 상상해야하며 건물의 인프라가 100M 또는 1G라는 것을 알고 있습니다.
Univ426

2

많은 의견과 사용자가 여기에 훌륭한 조언을 제공했습니다. 그들 중 일부는 내가 찾던 것에 매우 가까웠지만, 우리 회사의 네트워크 베테랑을 만날 수있을만큼 운이 좋았습니다. 나는 다른 사람들의 이익을 위해 나의 발견 / 이해를 여기에 게시 할 것이라고 생각했다. 이 중 하나라도 사라지면 언제든지 수정하십시오.

1.) 72ms의 대기 시간과 64K 윈도우를 가진 단일 TCP 세션의 최대 처리량은 약 0.8MB / s로, robocopy로 수행 한 것과 같은 단일 스레드, 단일 세션 사본에 적합한 속도입니다.

2.)이 속도 차이는 전달 방법의 효과에 따른 것으로 보입니다. 우리의 경우에는 Robocopy와 Repliweb을 사용했습니다. Robocopy는 단일 TCP 세션을 사용하는 반면 Repliweb은 여러 세션을 열어 데이터를 전송할 수 있음을 발견했습니다.

3.) Microsoft 웹 사이트의 연구에 따르면 SMB2는 SMB1보다 성능이 상당히 뛰어납니다. 그러나 OS가 어떤 프로토콜을 사용할지 협상하는 방법에 문제가 있었기 때문에 a) SMB2를 사용할 수 있는 경우 와 b.) SMB2가 실제로 사용되는지 여부를 알고 있어야합니다. 네트워크 캡처에.

현재 Wire-shark가 SMB2 프로토콜의 사용을 결정할 수있는 것처럼 보입니다.

이게 도움이 되길 바란다. 다시, 내 이해는 여기에서 상당히 초보적입니다. 자유롭게 확장하십시오.


1
대역폭 지연 계산 외에도 SMB2는 더 많은 데이터를 전송하기 전에 서버가 쓰기를 승인 할 때까지 기다리지 않기 때문에 대기 시간이 긴 링크를 통해 성능을 크게 향상시킵니다. 실제로 ROBOCOPY를 사용하는 WAN 연결보다 SMBv2의 처리량이 10 배 향상되었습니다. 많은 파일을 복사하는 경우 기본적으로 최대 8 개의 병렬 작업을 수행하는 경우 robocopy가있는 / MT 스레드도 고려하십시오.
rmalayter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.