Производительность сети Windows (SMB/CIFS)

Доступны ли параметры реестра или другие параметры для настройки производительности сети Windows (SMB/CIFS)?

Я пытаюсь получить максимальную пропускную способность для операций копирования больших файлов, но любые настройки будут интересны.

До сих пор:

Настройки TCP

  • Отрегулируйте MTU
  • Включите масштабирование окна TCP (RFC 1323). Подробности здесь.
  • Разрешить порты выше 5000. Подробности здесь.


Другие факторы

  • SMB2 имеет преимущества в производительности по сравнению с SMB. Подробности здесь и здесь.


Общие ресурсы

7 ответов

Решение

Какая ОС у вашего клиента и сервера? Одна вещь, которая может изменить ситуацию, - это обновить ваши серверы до Windows 2008 и ваших клиентов до Vista. Когда вы делаете это, вы получаете преимущество SMB2, который менее болтлив, имеет большие буферы и может выполнять несколько операций за один запрос, делая его менее чувствительным к задержке.

Начните с включения TCP Window Scaling (RFC 1323). Вот отличная статья, объясняющая, как это сделать и что он делает.

Пока вы это делаете, вы, вероятно, захотите настроить размер окна TCP. Правильный размер рассчитывается на основе ваших конкретных условий сети. У меня нет большого опыта в этом, но есть различные калькуляторы и / или учебники, которые вы можете найти в Google.

Из "Руководства по настройке производительности для Windows Server 2008":

Настройки сервера

TreatHostAsStableStorage

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\(REG_DWORD)

Значение по умолчанию равно 0. Этот параметр отключает обработку команд записи сброса от клиентов. Если значение этой записи равно 1, производительность сервера и задержка клиента для серверов с защитой питания могут улучшиться. Рабочие нагрузки, напоминающие эталонный тест файлового сервера NetBench, выигрывают от такого поведения.


AsynchronousCredits

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\(REG_DWORD)

По умолчанию установлено значение 512. Этот параметр ограничивает количество одновременных "асинхронных" SMB-команд, разрешенных для одного соединения. Некоторые файловые клиенты, такие как серверы IIS, требуют большого количества параллелизма, в частности запросов уведомления об изменении файла. Значение этой записи может быть увеличено для поддержки этих клиентов.


Smb2CreditsMin и Smb2CreditsMax

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\(REG_DWORD)

Значения по умолчанию - 64 и 1024 соответственно. Эти параметры позволяют серверу динамически регулировать параллелизм операций клиента в указанных границах. У некоторых клиентов может быть увеличена пропускная способность с более высокими пределами параллелизма. Одним из примеров является копирование файлов по каналам с высокой пропускной способностью и высокой задержкой.


AdditionalCriticalWorkerThreads

HKLM\System\CurrentControlSet\Control\Session Manager\Executive\(REG_DWORD)

По умолчанию 0, что означает, что никакие дополнительные критические рабочие потоки ядра не добавляются к номеру по умолчанию. Это значение влияет на количество потоков, которые кэш файловой системы использует для запросов на чтение и запись. Увеличение этого значения может позволить увеличить количество операций ввода-вывода в очереди в подсистеме хранения и повысить производительность ввода-вывода, особенно в системах с большим количеством процессоров и мощным оборудованием хранения.

клиент

DisableBandwidthThrottling

HKLM\system\CurrentControlSet\Services\lanmanworkstation\parameters\(REG_DWORD)

Значение по умолчанию - 0. Этот параметр доступен, начиная с Windows Server 2008 с пакетом обновления 2 (SP2). По умолчанию перенаправитель SMB ограничивает пропускную способность сетевых подключений с высокой задержкой в ​​некоторых случаях, чтобы избежать тайм-аутов, связанных с сетью. Установка этого значения реестра в 1 отключает это регулирование, обеспечивая более высокую пропускную способность передачи файлов по сетевым соединениям с высокой задержкой.

Не специфично для Windows, но если вы используете гигабитный Ethernet, вы можете рассмотреть возможность увеличения максимальной единицы передачи (MTU). От значения по умолчанию 1492 до максимального значения 9000. Это уменьшает требуемые издержки, поскольку для передачи одного и того же файла потребуется меньше фрагментов.

Если вы используете протокол SMB3, вы можете улучшить производительность, а) добавив несколько сетевых карт на стороне сервера и включив многоканальную функцию SMB3. Б) Если вы добавите несколько сетевых карт на стороне клиента, функция масштабирования на стороне приема: SMB3 улучшит производительность c) Вы также можете использовать опцию SMB Direct, если у вас есть карты RDMA.

Если ваш лимит составляет не менее 1 МБ / с, то функция ограничения полосы пропускания SMB, представленная в Windows Server 2012 R2, является встроенной опцией.

Включить ограничения пропускной способности SMB через Powershell

Add-WindowsFeature FS-SMBBW
Set-SmbBandwidthLimit –Category Default -BytesPerSecond 1MB

Из TechNet:

MaxUserPort

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\(REG_DWORD)

По умолчанию: 5000
Диапазон: 5000–65 534 (номер порта)

Задает максимальный номер порта, который TCP может назначить, когда приложение запрашивает доступный пользовательский порт из системы. Как правило, эфемерные порты (те, которые используются кратко) выделяются для номеров портов с 1024 по 5000.

Другие вопросы по тегам