나는 나이가 많은 질문이라고 확신하는 것에 대한 도움을 찾고 있습니다. 네트워크 처리량을보다 명확하게 이해하기를 간절히 바라고 있지만 “클릭”하는 정보를 찾지 못하는 것 같습니다.
여러 버전의 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로 어떤 성능 향상을 기대할 수 있는지 궁금합니다.
내 문제는 단순히 네트워크 속도가 적당하지 않은 것과 관련하여 경험이 부족하고 더 중요한 관점 인 것 같습니다. 컨텍스트 / 관심을 제공하는 데 도움을 줄 수있는 사람이 있습니까?
답변
당신이 말하는 수학적 공식은 실제로 사용 가능한 실제 대역폭이 아니라 TCP에 가장 효율적인 전송 창 크기 설정을 결정하는 방법입니다. TCP는 네트워크 상태에 따라 전송 속도를 조정할 수있는 슬라이딩 윈도우라는 메커니즘을 사용합니다. 아이디어는 TCP 송신기가 수신기의 승인없이 더 많은 데이터를 전송한다는 것입니다. 데이터 손실이있는 경우 승인간에 전송되는 데이터 양이 줄어들어 유효 대역폭도 줄어 듭니다.
문제의 공식은 실제로 주어진 호스트 쌍 사이의 대기 시간과 왕복 대기 시간을 기반으로 TCP 전송 창의 이상적인 크기를 결정합니다. 아이디어는 ‘비행 중’데이터의 양이 대역폭 지연 제품으로 알려진 것과 일치하도록 창 크기를 갖는 것입니다. 예를 들어 초당 50 메가 비트 (6.25 메가 바이트)와 평균 왕복 대기 시간이 100ms 인 경우 6.25 * 0.1 = 625 킬로바이트의 데이터를 갖게됩니다. 이것은 TCP가 협상 할 값입니다 (올바르게 구성된 경우). 링크의 대기 시간과 대역폭 특성이 다양하므로 창 크기도 달라집니다.
필요한 것은 소스와 다양한 대상에서 실행되는 iperf (무료)와 같은 대역폭 관리 도구입니다. 이렇게하면 가능한 다른 처리량 (다른 앱과 상관없이)에 대한 아이디어를 제공하는 동시에 대기 시간에 대한 통찰력을 얻을 수 있습니다. 호스트간에 확장 된 핑을 실행하면 대기 시간 특성에 대한 일반적인 아이디어가 제공됩니다. 이 데이터가 있으면 처리량에 대한 정보를 더 잘 알 수 있습니다.
BTW-모든 종류의 LAN 최적화 프로그램을 사용하면 종종 데이터 압축, TCP 최적화, 캐싱 등이 포함됩니다. 편리하지만 기본 링크의 특성을 모호하게 할 수 있습니다. 원시 대역폭 / 지연 (및 잠재적으로 패킷 손실)에 대해 알고 나면 다양한 호스트가 사용 가능한 대역폭을 적절히 활용할 수 있도록 면밀히 검토 할 수 있습니다.
답변
“ping -l 8092″또는 FTP 또는 HTTP를 시도하여 SMB 문제인지 확인하십시오.
우선 : 컴퓨터를 연결하기 위해 어떤 미디어를 사용합니까? 우리 “100mpbs”는 무엇입니까? 이더넷? “지리적으로 분산 된”컴퓨터에는 사용할 수 없습니다.
컴퓨터간에 “인터넷을 통한 VPN”의 경우 라우터는 다른 링크를 사용할 수 있습니다. 하나는 빠르지 만 다른 하나는 그렇지 않습니다. 그들은 많은 매개 변수를 기반으로 링크를 선택할 수 있습니다.
네트워크를 설명하십시오.
MTU 문제 일 수도 있습니다. 여러 링크에 다른 MTU가있을 수 있습니다.
답변
많은 의견과 사용자가 여기에 훌륭한 조언을 제공했습니다. 그들 중 일부는 내가 찾던 것에 매우 가까웠지만, 우리 회사의 네트워크 베테랑을 만날 수있을만큼 운이 좋았습니다. 나는 다른 사람들의 이익을 위해 나의 발견 / 이해를 여기에 게시 할 것이라고 생각했다. 이 중 하나라도 사라지면 언제든지 수정하십시오.
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 프로토콜의 사용을 결정할 수있는 것처럼 보입니다.
이게 도움이 되길 바란다. 다시, 내 이해는 여기에서 상당히 초보적입니다. 자유롭게 확장하십시오.