Низкая скорость передачи SMB-файлов

Скорость передачи файлов SMB может замедляться в зависимости от размера и количества файлов, типа подключения и версии используемых приложений. В этой статье описаны процедуры устранения неполадок, связанных с низкой скоростью передачи файлов через SMB.

Медленная передача

Вы можете устранить неполадки с медленной передачей файлов, проверив текущее использование хранилища. Если вы наблюдаете медленную передачу файлов, выполните следующие действия.

  • Попробуйте команду копирования файлов для небуферированного ввода-вывода:

    • xcopy /J
    • robocopy /J
  • Проверьте скорость хранения. Скорость копирования ограничена скоростью хранения.

  • Копирование файлов иногда начинается быстро, а затем замедляется. Изменение скорости копирования происходит, когда начальная копия кэшируется или буферизуется, в памяти или в кэше памяти контроллера RAID, и кэш заканчивается. Это изменение приводит к принудительной записи данных непосредственно на диск (сквозная запись).

    Чтобы проверить эту ситуацию, используйте счетчики монитора производительности хранилища, чтобы определить, снижается ли производительность хранилища с течением времени. Дополнительные сведения см. в разделе Настройка производительности для файлового сервера SMB.

  • Используйте RAMMap (SysInternals), чтобы определить, прекращается ли использование сопоставленного файла в памяти из-за нехватки свободной памяти.

  • Найдите потерю пакетов в трассировке. Потеря пакетов может привести к регулированию поставщиком перегрузки TCP.

  • Для SMBv3 и более поздних версий убедитесь, что SMB Multichannel включен и работает.

  • В клиенте SMB включите большой MTU в SMB и отключите регулирование пропускной способности, выполнив следующий командлет:

    Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
    

Медленная передача небольших файлов

Медленная передача небольших файлов чаще всего происходит, когда файлов много. Это вхождение является ожидаемым поведением.

Во время передачи файлов создание файла приводит к высоким затратам на протокол и к высокой нагрузке на файловую систему. При передаче больших файлов эти затраты выполняются только один раз. При передаче большого количества небольших файлов затраты повторяются и приводят к медленному переносу.

Сведения о проблеме

Задержка в сети, create команды и антивирусные программы способствуют медленной передаче небольших файлов. Ниже приведены технические сведения об этой проблеме.

  • SMB вызывает create команду для запроса создания файла. Код проверяет, существует ли файл, а затем создает его. В противном случае некоторые варианты create команды создают фактический файл.
    • Каждая create команда создает действие в файловой системе.
    • После записи данных файл закрывается.
  • Процесс может страдать от задержки сети и задержки сервера SMB. Эта задержка возникает из-за того, что запрос SMB сначала преобразуется в команду файловой системы, а затем в фактическую файловую систему для завершения операции.
  • Передача продолжает замедляться во время выполнения антивирусной программы. Это изменение происходит из-за того, что данные обычно сканируются один раз с помощью средства поиска пакетов, а второй раз при записи данных на диск. В некоторых сценариях эти действия повторяются тысячи раз. Потенциально можно наблюдать скорость менее 1 МБ/с.

Медленное открытие документов Office

Документы Office могут открываться медленно, что обычно происходит при подключении глобальной сети. Способ доступа приложений Office (в частности, Microsoft Excel) к данным и их чтение обычно приводит к медленному открытию документов.

Убедитесь, что двоичные файлы Office и SMB актуальны, а затем проверьте, отключив аренду на сервере SMB. Чтобы убедиться, что оба условия устранены, выполните следующие действия.

  1. Выполните следующий командлет PowerShell в Windows 8 и Windows Server 2012 или более поздних версиях Windows:

    Set-SmbServerConfiguration -EnableLeasing $false
    

    В окне командной строки с повышенными привилегиями также можно выполнить следующую команду:

    REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v DisableLeasing /t REG\_DWORD /d 1 /f
    

    Примечание.

    После установки этого раздела реестра аренды SMB2 больше не предоставляются, но блокировки по-прежнему доступны. Этот параметр используется в основном для устранения неполадок.

  2. Перезапустите файловый сервер или службу сервера . Чтобы перезапустить службу, выполните следующие команды:

    NET STOP SERVER
    NET START SERVER
    

Чтобы избежать этой проблемы, можно также реплицировать файл на локальный файловый сервер. Дополнительные сведения см. в статье Сохранение документов Office на сетевом сервере происходит медленно при использовании EFS.