Работа с файлами в среде терминального сервера (часть 2)

Опубликовано: 24 Апреля, 2023

В чем твоя проблема?

Как ни странно, бывает довольно сложно определить, есть ли у вас проблемы с производительностью. Я имею в виду, что обычно совершенно очевидно, что существует проблема с производительностью, но гораздо сложнее определить, что эти проблемы связаны с файловой системой. Существует довольно много программ, которые могут точно определить проблемы с производительностью, но если у вас ограниченный бюджет, вы можете многое сделать самостоятельно, чтобы диагностировать эти проблемы с производительностью.

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

  • Старые добрые песочные часы
    Вы ловите себя на том, что смотрите на песочные часы в течение продолжительных периодов времени при просмотре файлов или папок. Помните, что это может быть очень очевидно, например, при просмотре вашего домашнего каталога, или менее очевидно, например, когда Word выполняет автоматическое сохранение по сети.
  • Вход в систему или выход из нее, кажется, длится вечность
    Даже если у вас небольшой профиль, вход в систему или выход из нее занимает много времени. Ключевыми индикаторами этого являются сообщения «Загрузка настроек» и «Сохранение настроек» в диалоговых окнах входа и выхода.
  • Потерянные данные отложенной записи
    Это запись, которую вы найдете в журнале системных событий, если у вас возникнут проблемы с записью в сетевую папку. Иногда ошибка также появляется на консоли (терминального) сервера, что является явным индикатором того, что произошла ошибка, когда терминальный сервер пытался записать на файловый сервер. Эти ошибки обычно возникают, когда файловый сервер не принимает запрос на запись в течение разумного промежутка времени и время ожидания запросов истекает. Эти ошибки также могут возникать, когда файловый сервер испытывает сбой в сети.
  • Случайные сбои приложений
    Это может произойти, когда данные приложения (конфигурации), например папка Application Data или файл конфигурации.ini приложения, перенаправляются на файловый сервер. Эти сбои приложений кажутся довольно случайными, потому что само приложение не всегда упоминает об ошибке при записи в сеть. Например, если приложение пытается записать в перенаправленный файл конфигурации, а файловый сервер слишком загружен для обслуживания этого запроса, приложение обычно зависает. Печально известное диалоговое окно «Приложение не отвечает» является хорошим индикатором этого.

Измерение

Итак, если у меня есть проблемы, связанные с файловым сервером, какие настройки мне изменить? К сожалению, это не так просто. Единственный способ попытаться определить причину проблем с производительностью файловой службы — это взяться за дело и начать измерения. Старый добрый perfmon — отличное место для начала. Обсуждение каждого счетчика, который может быть полезен, выходит за рамки этой статьи, поэтому я упомяну только ключевые счетчики.

Предполагая, что узким местом является клиентская сторона (терминальный сервер), запустите perfmon.msc и найдите объект Redirector. Все счетчики в объекте Redirector предоставляют ценную информацию, но также создают поток информации. Основные счетчики, на которые стоит обратить внимание:

  • Текущие команды
    Текущие команды подсчитывают количество запросов к перенаправителю, которые в настоящее время находятся в очереди на обслуживание. Согласно Microsoft PSS, если это значение больше 20, то сеть(и) и/или сервер(ы), к которым осуществляется доступ, серьезно ограничены.
  • Сеансы сервера зависли
    Зависшие сеансы сервера подсчитывают количество активных сеансов, время ожидания которых истекло и которые невозможно продолжить из-за отсутствия ответа от удаленного сервера.
  • Сетевые ошибки
    Сетевых ошибок/сек — это скорость возникновения серьезных непредвиденных ошибок. Такие ошибки обычно указывают на то, что у перенаправителя и одного или нескольких серверов серьезные проблемы со связью. Например, ошибка протокола SMB (блок диспетчера серверов) является сетевой ошибкой. Запись записывается в журнал системных событий и содержит подробные сведения.

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

  • Физический дискСредняя длина очереди
    Сред. Длина очереди диска — это среднее количество запросов на чтение и запись, поставленных в очередь для выбранного диска в течение интервала выборки. Это лучший способ проверить, достаточно ли мощны ваши физические диски для своевременной обработки всех запросов на чтение и запись. Если Ср. Длина очереди диска превышает 2 на физический диск (например, в конфигурации RAID 1 или RAID 5), то у вас, вероятно, узкое место на диске.
  • СерверСерверные сеансы
    Количество сеансов, активных в данный момент на сервере. Показывает текущую активность сервера.
  • СерверЗапросы на блокировку отклонены
    Сколько раз сервер отклонял блокировку SMB из-за недостаточного количества бесплатных рабочих элементов. Указывает, требуется ли настройка параметров сервера MaxWorkItem или MinFreeWorkItems.
  • Нехватка сервероврабочих элементов
    Сколько раз STATUS_DATA_NOT_ACCEPTED возвращался во время индикации приема. Это происходит, когда рабочий элемент недоступен или не может быть выделен для обслуживания входящего запроса. Указывает, требуется ли корректировка параметров InitWorkItems или MaxWorkItems.

Лучшие практики и решения

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

  • Лучший из лучших вводов/выводов
    Ваш файловый сервер чрезвычайно зависит от дискового ввода-вывода. Используйте лучшее оборудование, которое вы можете найти. Используйте диски SCSI (предпочтительно диски 15K). Используйте аппаратные решения RAID, избегайте использования программных решений RAID (5). Проконсультируйтесь с рекомендациями поставщика оборудования для достижения оптимального ввода-вывода. Рассмотрите возможность использования решений для хранения данных SAN/NAS.
  • Максимизируйте пропускную способность сети
    Используйте проверенные технологии, обеспечивающие высокую пропускную способность сети. Gigabit Ethernet в наши дни стал почти товаром. Если вы этого не сделали, обновите свои сетевые карты. Копирование файлов по сети (например, загрузка профиля) потребляет значительную часть пропускной способности сети.
  • Жесткий код дуплекса и настройки скорости
    Очень многое связано с ранее обсуждавшимися сетевыми настройками, жестко закодируйте эти настройки дуплекса и скорости! Настройте свои сетевые карты для работы на «максимальных» скоростях и уровнях дуплекса и жестко закодируйте их на соответствующих портах коммутаторов доступа к сети. Не полагайтесь на настройки автоматического определения. Игнорирование этого может вызвать у вас много головной боли.
  • Ограничить перенаправление файлов
    Как правило, рекомендуется перенаправлять «Мои документы» на ваш файловый сервер в целях защиты данных. За пределами «Моих документов» не перенаправляйте больше ничего. Оставить/закинуть в профиль все, включая.ini файлы. Таким образом, размер вашего профиля может немного увеличиться, но это не соответствует приросту производительности, который вы получите. Таким образом, вы получите доступ ко всем необходимым данным в локальном хранилище, которое, безусловно, является самым быстрым. В качестве дополнительного бонуса вы также снизите нагрузку на свой файловый сервер.
  • Настройка службы сервера
    Windows позволяет вам (частично) настраивать службу Windows Server. Windows должна автоматически выбрать соответствующую настройку, но вы можете проверить это сами. Когда вы выбираете свойства подключения, а затем выбираете свойства «общий доступ к файлам и принтерам для сетей Microsoft», вы должны получить такие окна:

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

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

  • Ограничить размер профиля
    Помимо моей рекомендации «складывать все в профиль», очень важно следить и ограничивать размер профилей. Помните, что сюда входят профили терминального сервера, а также профили «обычных рабочих станций». Нередко по сети проходят профили размером в несколько сотен мегабайт, если вы не контролируете это. Используйте групповую политику для ограничения роста или стороннее программное обеспечение. В качестве альтернативы вы можете использовать обязательные профили или гибкий профиль, чтобы сократить размер профиля.
  • Отключить подписывание SMB
    Это типичный случай, когда повышенная безопасность может привести к снижению производительности. В двух словах, блоки сообщений сервера (SMB) — это то, из чего состоит трафик между файловым сервером и клиентом.
    Подписание SMB — это процесс, который используется для цифровой подписи блоков сообщений сервера (SMB), чтобы гарантировать, что они не будут изменены при передаче. Этот процесс может довольно интенсивно использовать процессор, в зависимости от объема трафика. Вам решать, стоит ли снижение безопасности повышения производительности.

Вывод

К сожалению, файловое обслуживание в среде терминального сервера является распространенным узким местом производительности. В этой серии из двух частей мы рассмотрели, что включает в себя Fileserving в средах Terminal Server, как определить, есть ли у вас узкое место в Fileserving, и что вы можете сделать, чтобы предотвратить возникновение проблем с производительностью. Обязательно прочитайте мою другую статью на Thincomputing.net, если вам нужно довести свою файловую среду до предела.

«Обслуживание файлов в среде терминального сервера (часть 1)»