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


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.