SMB(서버 메시지 블록)는 기본 Windows 네트워크 파일 시스템 기능 및 프로토콜입니다. 네트워크 파일 전송 속도는 여러 시스템 및 네트워크 요인의 영향을 받습니다. 이 문서에서는 SMB를 사용하여 일반적인 파일 전송 성능 문제를 해결하는 단계를 제공합니다.
전송이 느림
참고
SMB 서명 및 SMB 암호화 는 SMB 전송 속도를 늦추는 것으로 알려져 있습니다. 성능 손실의 양은 관련된 하드웨어의 기능에 따라 크게 달라집니다. 주요 요인은 CPU 코어의 수와 속도, 그리고 다른 워크로드 전용 CPU 시간입니다.
Windows 11, 버전 24H2 및 Windows Server 2025 부터 SMB 서명은 기본적으로 필요합니다 . 스푸핑, 변조 및 릴레이 공격에 대한 상당한 보호를 제공하므로 SMB 클라이언트 및 서버 서명 요구 사항을 해제하지 않는 것이 좋습니다.
다음 단계를 사용하여 느린 SMB 전송과 관련된 일반적인 문제를 분석, 해결 및 해결할 수 있습니다.
명령줄(명령 프롬프트 또는 PowerShell)에서 robocopy를 사용합니다.
- 파일 탐색기(Windows 파일 관리자)는 단일 스레드 복사본을 수행하고 버퍼링된 I/O(입력/출력) 전송을 사용합니다.
- Robocopy는 IT 관리자가 고성능 로컬 및 원격 파일 복사 작업을 만들 수 있도록 최적화되어 있습니다.
- 파일 탐색기 기본적인 용도로는 편리하지만 특정 작업에 필요한 robocopy의 성능 최적화가 부족합니다.
명령 프롬프트 또는 PowerShell의 명령을 사용하여
robocopy /J
1GB보다 큰 파일에 대해 버퍼되지 않은 I/O 복사본을 사용해 보세요.SMB 압축을 사용하도록 설정하고 사용합니다.
- 이렇게 하면 가상 머신 디스크(
.vhd
,.vhdx
.ovf
.vmdk
, 및).iso
.dmp
및 파일과 같은 상당한 공백이 포함된 큰 파일의 전송 시간과 대역폭 사용률이 크게 줄어듭니다. - 보관(,
.7z
및), 비디오(.zip
및) 및.rar
오디오(.mp4
.mp3
및.mkv
.flac
) 파일과 같이 압축할 수 없는 데이터는 SMB 압축으로 성능이 크게 향상되지 않습니다. - SMB 압축은 Windows 11 및 Windows Server 2022부터 사용할 수 있습니다.
- 이렇게 하면 가상 머신 디스크(
SMB 속도는 스토리지 성능에 의해 제한될 수 있습니다.
지원 스토리지에 필요한 네트워크 처리량을 충족하는 데 필요한 사용 가능한 성능 특성이 있는지 확인합니다.
SMB를 통해 대략적 실제 스토리지-네트워크 성능 속도는 다음과 같습니다.
- 네트워크 대역폭 1Gbps당 110MB/s의 지속적인 스토리지 처리량입니다.
- 네트워크 대역폭 10Gbps당 1.1GB/s의 지속적인 스토리지 처리량입니다.
- 네트워크 대역폭 100Gbps당 11GB/s의 지속적인 스토리지 처리량입니다.
- 이러한 숫자는 시스템에 CPU 또는 메모리 소모와 같은 다른 병목 현상이 없고 네트워킹 오류가 없다고 가정합니다.
- 최고 스토리지 성능은 종종 지속적인 스토리지 성능보다 훨씬 더 많으며, 대부분의 보급된 스토리지 측정값은 최고 성능입니다.
특정 네트워크 전송 속도에 도달하거나 높은 CPU 사용률을 유발하지 않고 고속에 도달하려면 SMB 다이렉트 (RDMA(원격 직접 메모리 액세스)를 통한 SMB가 필요할 수 있습니다.
파일 복사본이 빠르게 시작되고 속도가 느려집니다.
복사 속도의 변경은 초기 복사본이 스토리지에 의해 캐시되거나 시스템 메모리에 버퍼링된 다음 캐시가 용량에 도달할 때 발생할 수 있습니다.
그런 다음 메모리 버퍼 및 스토리지 캐시가 고갈되면 데이터가 디스크(쓰기 통과)에 직접 커밋되어 스토리지 매체의 지속적인 쓰기 제한으로 성능이 제한됩니다.
Microsoft SysInternals의 RAMMap을 사용하여 메모리의 매핑된 파일 사용량이 증가하지 않도록 할지 여부를 확인합니다.
- 이는 메모리 버퍼가 소진되었음을 나타냅니다.
- RAMMap은 자동으로 새로 고쳐지지 않습니다. 키보드 또는 파일>새로 고침에서 F5 키를 사용하여 메모리 사용량을 업데이트합니다.
스토리지 성능 모니터 카운터를 사용하여 스토리지 성능이 네트워크 처리량에 비례하여 저하되는지 여부를 확인합니다. 자세한 내용은 SMB 파일 서버에 대한 성능 조정을 참조 하세요.
Windows Server 2016 이상 버전에서 성능이 약 5GB마다 저하되는 경우 원격 파일 더티 페이지 임계값을 조정합니다.
전송은 특정 기술 또는 SOFS(스케일 아웃 파일 서버)를 사용하는 경우에만 느립니다.
- 일부 기술(일반적으로 백업 및 데이터베이스)은 데이터 무결성을 유지하기 위해 디스크 쓰기가 필요합니다.
- Windows SOFS에는 SQL 백업과 마찬가지로 쓰기가 필요합니다.
- 디스크 쓰기를 위해서는 스토리지 작업이 모든 스토리지 캐시 및 버퍼를 바이패스하고 작업을 완료하려면 스토리지 매체에 직접 커밋해야 합니다.
- 이러한 경우 높은 쓰기 성능이 부족한 스토리지 시스템은 성능이 뛰어난 SMB 전송을 제공할 수 없습니다.
네트워크 오류의 징후를 찾습니다. 패킷 손실과 같은 일반적인 네트워크 문제로 인해 TCP(Transmission Control Protocol) 정체 알고리즘에 의한 네트워크 수준 제한이 발생합니다.
파일 검색이 비활성화되고 파일 시스템 및 네트워크 필터 드라이버가 언로드되어 SMB 전송 성능을 일시적으로 테스트하여 맬웨어 방지 소프트웨어의 성능 오버헤드를 확인합니다.
SMB3의 경우 SMB 다중 채널이 사용하도록 설정되고 작동하는지 확인합니다.
네트워크 오프로드 기술이 사용하도록 설정되어 있는지 확인합니다.
- SMB 성능은 네트워크 성능과 밀접한 관련이 있습니다.
- RSS(수신측 배율), LSO(대규모 송신 오프로드), RSC(수신 세그먼트 병합) 및 TCP/UDP 체크섬과 같은 네트워크 오프로드 기술은 네트워크 스택의 CPU 사용량을 줄이면서 네트워크 처리량을 향상하도록 설계되었습니다.
- 네트워크 오프로드를 사용하지 않도록 설정하지 마세요.
SMB 클라이언트에서 다음 PowerShell cmdlet을 실행하여 MTU(최대 전송 단위)가 비활성화되지 않고 SMB에서 대역폭 제한이 사용하도록 설정되지 않았는지 확인합니다.
Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
SMB 파일 서버용 Windows Server 성능 튜닝 가이드에 따라 SMB 서버 하위 시스템을 튜닝합니다.
작은 파일을 사용할 때 전송 속도가 느립니다.
파일 탐색기 및 기타 단일 스레드 복사 도구를 사용하여 네트워크를 통해 많은 수의 작은 파일을 전송할 때 느린 복사 속도 및 낮은 네트워크 처리량이 예상되는 동작입니다. "많은 수의 작은 파일"은 1MB 미만의 수백, 수천, 심지어 수백만 개의 파일로 정의됩니다.
문제 세부 정보
파일 만들기는 네트워크 프로토콜(SMB) 및 파일 시스템 관점에서 성능 측면에서 "비용이 많이 드는 작업"입니다. SMB는 데이터를 전송하기 전에 파일을 만들기 위해 여러 프로토콜 작업을 수행해야 합니다. 파일을 만들 때 파일 시스템 자체에 추가 성능 저하가 발생합니다.
작은 파일 복사본이 반복적으로 이 페널티를 받았습니다. 파일당 데이터 크기는 파일 데이터를 전송하는 것보다 파일을 만드는 데 더 많은 시간이 소요되기 때문에 단일 스레드 복사본을 사용할 때 네트워크 속도를 유지하기에 충분한 데이터를 네트워크에 배치하기에 충분하지 않습니다.
이 문제는 소수의 데이터 페이로드만 전송된 후에 파일 생성을 수행하려면 데이터 전송을 중단해야 하기 때문에 발생합니다. 그러나 단일 대용량 파일에는 단일 파일 생성 페널티가 있으며 최대 네트워크 속도에 도달하기에 충분한 데이터를 전송합니다.
기술 세부 정보
네트워크 대기 시간, SMB create
명령 및 바이러스 백신 프로그램은 작은 파일의 전송 속도가 느려집니다. 이 문제에 대한 추가 세부 정보는 다음과 같습니다.
SMB는 파일을 만들도록 요청하는 명령을 실행
create
합니다.- 각
create
명령은 파일 시스템에서 작업을 생성합니다. - 데이터가 기록된 후, 파일이 닫힙니다.
- 각
이 프로세스는 네트워크, 프로토콜(SMB) 및 파일 시스템 대기 시간으로 인해 발생합니다.
- 이 대기 시간은 파일 시스템 요청이 먼저 SMB 명령으로 변환되고, 네트워크를 통해 전송되고, 파일 시스템 명령으로 다시 전환되고, 그 다음에만 실제 파일 시스템 작업이 수행되기 때문에 발생합니다.
- 스토리지 작업이 완료된 후에만 프로세스가 반전되고 SMB 클라이언트가 응답을 수신하고 다음 작업을 진행할 수 있습니다.
또한 엔드포인트 보호(바이러스 백신)는 종종 네트워크 패킷 및 파일 시스템 작업을 검색합니다.
- 이렇게 하면 일반적으로 프로세스에 약간의 대기 시간이 추가됩니다.
- 작은 파일 시나리오에서는 전송된 각 파일에 대해 바이러스 백신 작업이 반복됩니다.
따라서 단일 스레드 파일 복사 도구를 사용하는 경우 네트워크 처리량 속도가 1MB/s 미만일 수 있습니다.
작은 파일 복사본의 속도 향상
를 사용하여 매개 변수 및 리디렉션 출력과 함께
/MT
사용합니다robocopy
/log
.- Robocopy는 Windows에 기본 제공되고 매개 변수는
/MT
다중 스레드 파일 복사본을 사용하도록 설정합니다. - 다중 스레드 복사본은 여러 데이터 전송을 병렬로 실행하여 도움이 됩니다.
- 하나 또는 두 개의 파일을 만드는 동안 여러 파일의 데이터를 전송할 수 있습니다.
- 이렇게 하면 기내 네트워크 데이터의 양이 증가하고 네트워크 데이터 스트림의 일시 중지가 최소화됩니다.
- 콘솔에 쓰는 작업은 시간이 많이 걸리는 또 다른 작업이므로 출력을 로그 파일로 리디렉션하면 전송 작업이 빨라집니다.
- 기본적으로 한
/MT
번에 8개의 파일을 복사합니다. 한 번에 최대 128개의 복사본을 지원합니다. - 스레드가 너무 많으면 성능에 해를 끼칠 수 있습니다. CPU 코어당 두 개의 스레드는 일반적으로 안전하지만 테스트는 최적의 성능 번호를 찾는 것이 좋습니다.
- 사용량 세부 정보에 대한 자세한 내용은 robocopy를 참조 하세요.
- Robocopy는 Windows에 기본 제공되고 매개 변수는
Azure 간에 데이터를 이동할 때 사용합니다
AzCopy
.파일 압축을 사용합니다.
- 작은 파일을 큰 보관 파일(
.zip
, ,.7z
.rar
및.tar
.gz
)로 압축합니다. - 보관 파일을 복사합니다.
- 대상 시스템에서 파일을 추출합니다. 파일을 원격으로 추출하지 마세요.
- 이는 두 시스템의 압축 및 압축 해제 속도에 따라 더 빠를 수도 있고 그렇지 않을 수도 있습니다.
- 압축 및 압축 해제 시간을 줄이려면 빠른 압축 또는 압축 보관을 사용하지 않습니다.
- 작은 파일을 큰 보관 파일(
다중 스레드 파일 복사를 지원하는 신뢰할 수 있는 타사(비 Microsoft) 파일 복사 도구를 사용합니다.
Office 문서가 느리게 열림
Office 문서는 느리게 열릴 수 있으며 일반적으로 WAN 연결에서 발생합니다. Office 앱(특히 Microsoft Excel)에서 데이터에 액세스하고 읽는 방식은 일반적으로 문서가 느리게 열리는 원인입니다.
Office 및 SMB 이진 파일이 최신 상태인지 확인한 다음 SMB 서버에서 임대를 사용하지 않도록 설정하여 테스트해야 합니다. 두 조건이 모두 해결되었는지 확인하려면 다음 단계를 수행합니다.
참고
이 메서드는 주의해서 사용해야 합니다. 임대는 SMB 프로토콜의 필수적인 부분이며 일반적으로 SMBv2 또는 SMBv3 서버에서 사용할 수 있습니다. 읽기 캐싱, 쓰기 캐싱 및 핸들 캐싱과 같은 임대 가용성에 따라 여러 기능이 달라집니다. 임대를 사용하지 않도록 설정하면 성능 저하 문제가 해결될 수 있지만 임대의 이점에 의존하는 다른 애플리케이션에 부정적인 영향을 줄 수 있습니다.
Windows 8 및 Windows Server 2012 이상 버전의 Windows에서 다음 PowerShell cmdlet을 실행합니다.
Set-SmbServerConfiguration -EnableLeasing $false
또는 Windows Server 2019 이상 버전에서 주당 임대를 사용하지 않도록 설정하려면 다음 cmdlet을 실행합니다.
Important
먼저 설정하여
LeasingMode
테스트하는Shared
것이 좋습니다. 이렇게 하면 일반적으로 속도가 느려지는 부분을 사용하지 않도록 설정하는 동안 일부 임대가 허용됩니다. 최종 옵션으로만 사용합니다None
.Set-SmbShare -Name <ShareName> -LeasingMode [Shared|None]
새 SMB 클라이언트 연결에서 즉시 작동합니다. SMB 서버 또는 클라이언트 컴퓨터를 다시 시작할 필요가 없습니다.
이 문제를 방지하기 위해, 로컬 파일 서버에 파일을 복제할 수도 있습니다. 자세한 내용은 EFS를 사용할 때 네트워크 서버에 Office 문서를 저장하는 속도가 느림을 참조하세요.