Windows 2000 또는 Windows Server 2003을 실행하는 도메인 컨트롤러로 파일을 복사하면 네트워크 성능이 느려진다

기술 자료 번역 기술 자료 번역
기술 자료: 321098 - 이 문서가 적용되는 제품 보기.
중요 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 레지스트리를 백업하는 것이 좋습니다. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리 백업, 복원 및 수정 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 Microsoft Windows 레지스트리 설명
모두 확대 | 모두 축소

현상

Microsoft Windows 2000 기반 클라이언트 컴퓨터, Microsoft Windows XP 기반 클라이언트 컴퓨터 또는 Microsoft Windows Server 2003 기반 클라이언트 컴퓨터에서 Windows 2000이나 Windows Server 2003을 실행하는 도메인 컨트롤러의 네트워크 공유로 파일을 복사하는 경우 Windows 2000이나 Windows Server 2003을 실행하는 구성원 서버에 같은 파일을 복사하면 네트워크 성능이 느려집니다. 작은 파일을 여러 개 복사하는 경우 이 문제가 나타날 수 있지만 큰 파일을 몇 개 복사하는 경우에는 이 문제가 나타나지 않을 수도 있습니다. Microsoft Windows 탐색기를 사용하여 파일을 복사하는 경우나 Windows 탐색기 창이 열려 있고 대상 서버에 연결된 경우에만 이 문제가 발생합니다. 그러나 Xcopy.exe를 사용하여 파일을 복사하고 모든 Windows 탐색기 창을 닫으면 이 문제가 발생하지 않습니다.

원인

Windows 2000 또는 Windows Server 2003을 실행하는 도메인 컨트롤러에 대한 서버 메시지 블록(SMB) 쓰기 작업이 파일 복사 간 최대 200밀리초까지 지연될 수 있기 때문에 이 문제가 발생합니다.

문제를 추적해 보면 클라이언트가 대상 폴더의 FID 항목과 일치하는 FID 항목과 함께 SMB 변경 알림 명령을 서버에 보낸 후 지연되는 것을 알 수 있습니다. Windows 탐색기는 네트워크 공유에 변경 알림 요청을 게시하는데 이것은 Windows 탐색기 오른쪽 창에 나타나는 폴더에서 변경된 것이 있는 경우 알려 주도록 요청합니다. 도메인 컨트롤러가 변경 알림 요청을 수신하면 즉시 응답하지 않고 최대 200밀리초 동안 패킷을 보내지 않습니다. 이때 간단한 전송 제어 프로토콜(TCP) 응답(ACK) 패킷이 전송되고 파일 작업이 평소대로 다시 시작됩니다.

Windows 2000의 두 가지 핵심 네트워킹 구성 요소인 TCP 지연 ACK 및 도메인 컨트롤러의 스레드 우선 순위 간의 상호 작용 결과로 이 문제가 발생합니다. 스레드 우선 순위는 도메인 컨트롤러가 변경 알림 요청에 대한 응답 같은 일부 SMB 작업 전에 디렉터리 서비스와 계정 관리 작업의 우선 순위를 적당하게 지정할 수 있게 합니다.

해결 방법

경고 레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다.
이 문제는 매우 특수한 환경에서만 발생한다는 점에 유의하십시오. 클라이언트에서 Windows 탐색기를 사용하여 Windows 2000 기반 도메인 컨트롤러에 대량의 파일을 복사하는 경우에만 이 문제가 발생합니다. 지연된 ACK 타이머의 값을 변경하면 일부 현상이 발생하지 않을 수 있습니다. 그러나 핵심 TCP/IP 값을 수정하면 나중에 예상치 못한 결과가 발생할 수 있습니다. 따라서 타이머를 수정하기 전에 다른 대안을 고려하는 것이 좋습니다. 다른 해결 방법으로는 구성원 서버로 파일 공유를 이동하거나 다른 도구(예: Windows 2000 Resource Kit의 일부인 Xcopy 또는 Robocopy)를 사용하여 도메인 컨트롤러에 대량의 파일을 복사하는 방법이 있습니다.

도메인 컨트롤러에서 TcpDelAckTicks 레지스트리 값을 편집하여 TCP 지연 ACK 타이머를 조정할 수 있습니다. TCP 지연 ACK 타이머를 좀더 낮은 값으로 변경하면 서버는 ACK 패킷을 더 짧은 간격으로 더 자주 보냅니다.

높은 대기 시간, 즉 상당히 트래픽이 많은 세그먼트에서 도메인 컨트롤러의 ACK 패킷의 네트워크 증가는 네트워크에 추가 부담을 줄 수 있습니다. 변경된 TCP 지연 ACK 타이머 값으로 인해 추가 병목 현상이 발생하지 않는지 확인하려면 해당 값을 철저하게 테스트하십시오.

네트워크에서 추가 ACK 패킷을 처리할 수 있으면 다음의 서비스 팩 3(SP3) 이전 핫픽스를 Windows 2000 서비스 팩 2(SP2)에 적용하여 지연된 ACK 타이머 값을 수정할 수 있습니다.

311833 TcpDelAckTicks 레지스트리 값이 Ack 시간 초과에 영향을 주지 않는다
이 핫픽스를 적용한 후 다음 절차를 사용하여 지연된 ACK 타이머의 사용자 지정 매개 변수를 지정하는 다음 레지스트리 값을 추가합니다.
  1. 레지스트리 편집기(Regedt32.exe)를 시작합니다.
  2. 레지스트리에서 아래의 키를 찾아 누릅니다. 여기서 Adapter GUID는 클라이언트에 연결되는 네트워크 어댑터의 글로벌 고유 식별자(GUID)입니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Adapter GUID
  3. 편집 메뉴에서 값 추가를 누르고 아래와 같은 레지스트리 값을 추가합니다.
    값 이름: TcpDelAckTicks
    데이터 형식: REG_DWORD
    값 데이터: 이 값의 범위를 0 - 6으로 설정할 수 있습니다. 기본 설정은 2(200밀리초)입니다.
  4. 레지스트리 편집기를 끝냅니다.
  5. 변경 내용이 적용되도록 Windows를 다시 시작합니다.
이 레지스트리 값은 인터페이스별로 지연된 ACK 타이머에 사용할 100밀리초 간격 값을 지정합니다. 기본적으로 지연된 ACK 타이머 값은 200밀리초입니다. TcpDelAckTicks 값을 0으로 설정하면 지연된 응답이 해제됩니다. 이 설정으로 인해 컴퓨터는 수신하는 모든 패킷에 대해 ACK 패킷을 즉시 보낼 수 있습니다.

참고 어댑터 특정 값이 각 어댑터의 하위 키 아래에 나열됩니다. TcpDelAckTicks 값을 다음 레지스트리 키에 추가했는지 확인합니다.
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Adapter GUID
이 값을 다음 레지스트리 키에 추가하지 마십시오.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열한 제품에서 이 문제를 확인했습니다.

추가 정보

네트워크 추적에서 클라이언트가 "SMB: C NT transact - Notify Change" 패킷을 보내는 것을 확인할 수 있습니다. Windows 2000 기반 도메인 컨트롤러는 ACK 패킷을 클라이언트로 200밀리초 후에 다시 보냅니다. 클라이언트는 ACK 패킷을 수신한 후 다음 SMB 작업을 시작하고 다음 파일을 복사합니다.

참고 네트워크 모니터를 사용하면 다음 필터를 사용하는 경우에 지연을 좀더 잘 확인할 수 있습니다.
SMB:Command == 0xA0 ( NT transact )
다음 표시 옵션과 함께 이 필터를 사용합니다.
시간: 이전 프레임 이후 경과한 시간(x초)
다음 SMB 프레임 특성을 보고 해당 요청 및 응답을 식별할 수 있습니다.
SMB: 멀티플렉스 ID(MID)
지연된 응답 기능은 RFC(Request for Comments) 1122에 기반을 둡니다. TCP는 지연된 ACK를 사용하여 네트워크에 보내는 패킷의 수를 줄입니다. Microsoft TCP/IP 스택은 지연된 ACK를 구현하는 데 일반적인 방법을 수행합니다. 연결에서 데이터가 TCP에 의해 수신되면 스택은 다음 조건 중 하나와 일치하는 경우에만 ACK를 반환합니다.
  • 조건 1: 수신된 이전 세그먼트에 대해 ACK가 보내지지 않습니다.
  • 조건 2: 한 세그먼트가 수신되지만 다른 세그먼트는 해당 연결에 대해 200밀리초(기본값) 내에 도착하지 않습니다.
일반적으로 ACK는 지연된 ACK 타이머(200밀리초)가 만료되지 않으면 연결에 수신되는 다른 모든 TCP 세그먼트에 대해 보내집니다. 본 문서의 "해결 방법" 절에서 설명하는 절차를 사용함으로써 지연된 ACK 타이머를 조정하여 TcpDelAckTicks 레지스트리 값(이 값은 Windows 2000에서 새로운 값임)을 추가할 수 있습니다.

참고 TcpDelAckTicks 레지스트리 값을 변경하면 나중에 예상치 못한 결과가 발생할 수 있습니다. 따라서 타이머를 수정하기 전에 다른 대안을 고려하는 것이 좋습니다.

이전 패킷에 응답했고 가끔 200밀리초를 초과하는 시간 동안 도메인 컨트롤러에 의해 변경 알림 요청 응답이 대기열에 있게 되면 지연이 발생합니다. 기본 ACK 타이머가 200밀리초까지 세기 때문에 TCP ACK 패킷은 변경 알림 요청이 클라이언트에서 수신된 후 200밀리초 동안 지연됩니다. 클라이언트가 다음 SMB 작업을 진행하기 전에 서버의 응답을 대기하기 때문에 서버의 지연된 ACK 타이머가 해당 임계값까지 세는 동안 지연됩니다. 네트워크 추적을 수행하는 경우 클라이언트의 일부 변경 알림 요청이 지연되지 않음을 확인할 수 있습니다.

응답이 확인되지 않은 다른 패킷이 지연되지 않은 변경 알림 요청 앞에 바로 나옵니다. 따라서 이 절의 시작 부분에서 설명하는 첫 번째 조건과 일치하므로 이 응답은 도메인 컨트롤러의 응답에서 지연되지 않습니다. 지연되는 변경 알림 요청은 이전 패킷에 응답했습니다. 따라서 이 절에서 설명하는 두 번째 조건이 발생하기 때문에 지연된 ACK 타이머가 만료되기 전까지(기본 값은 200밀리초임) 도메인 컨트롤러는 다시 응답하지 않습니다.

도메인 컨트롤러의 스레드 우선 순위를 수정할 수 없습니다. 따라서 TCP 지연 ACK 타이머 값을 좀더 낮은 값으로 변경해야만 이 문서의 "현상" 절에서 설명하는 현상을 방지할 수 있습니다. 이렇게 한 후 서버는 ACK 값을 더 짧은 간격으로 더 자주 보냅니다.

TcpDelAckTicks 레지스트리 값에 대한 자세한 내용은 다음 Microsoft 웹 사이트에 있는 백서를 참조하십시오.
Windows 2000의 TCP/IP 구현 세부 내용
이 문제에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
270926 HOWTO: Windows 2000의 네트워크 파일 복사 문제 해결
Windows XP 또는 Windows Server 2003을 실행하는 클라이언트에는 지연된 ACK 타이머에 도달하기 전에 TCP ACK를 제어하는 TcpAckFrequency라는 새로운 레지스트리 키가 있습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
328890 Windows XP 및 Windows Server 2003에서 TCP 응답(ACK) 동작을 제어하는 새로운 레지스트리 항목
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
321169 Windows XP에서 Windows 2000 도메인 컨트롤러로 파일을 복사하면 SMB 성능이 느려진다




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 321098 - 마지막 검토: 2005년 12월 23일 금요일 - 수정: 4.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows 2000 서비스 팩 3
  • Microsoft Windows 2000 서비스 팩 2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
키워드:?
kbprb KB321098

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com