Постоянное кэширование точечных рисунков rdp что это
В одном из филиалов периодически, при запуске RDP сеанса, начало выскакивать сообщение — Ошибка кэширования рисунков на диск.
На работоспособности терминала это не сказывалось, но каждый раз при запуске, приходилось жать кнопку ОК. Зайдя в свойства RDP подключения и открыв вкладку «Дополнительно» я выключил Темы и Кэширование графики.
После этого терминалка начала работать ещё шустрее. А в конце концов оказалось, что у юзера просто не было прав на запись файлов в папку TEMP.
Комментарии
| Комментарий от Сергей [ 19 июня, 2013, 17:30 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Комментарий от Андрей [ 18 октября, 2015, 15:24 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Параметр | Путь | Значение по умолчанию | Комментарий |
| Maxiothreads | HKLM\Software\Microsoft\Terminal Server Gateway | Равняется количеству процессоров | Отвечает за количество выходящих потоков, которые обрабатывает RDG |
| MaxPoolThreads | HKLM\System\CurrentControlSet\Services\InetInfo\Parameter | 4 | Количество потоков, которые обрабатывает IIS |
| ServerReceiveWindow | HKLM\Software\Microsoft\Rpc | 64 КБ | Максимальный размер кадра, принимаемого сервером. Может варьироваться от 8 КБ до 1 ГБ. |
| ClientReceiveWindow | HKLM\Software\Microsoft\Rpc | 64 КБ | Максимальный размер кадра, принимаемого клиентом. Может варьироваться от 8 КБ до 1 ГБ. |
Понять, где есть проблемы, помогут счетчики производительности:
шлюз служб терминалов;
RPC/HTTP Proxy Per Server;
сведения о процессоре;
Скажу и пару слов про третью роль – узел виртуализации удаленных рабочих столов. Он необходим для развертывания инфраструктуры виртуальных рабочих столов (Virtual Desktop Infrastructure – VDI), чуть менее популярной, чем обычные терминальные сервера.
Помимо общих рекомендаций для гипервизоров – быстрее, выше, сильнее – в инфраструктуре VDI в режиме пула виртуальных рабочих столов имеет смысл обратить внимание на ненужные службы и возможности в клиентских операционных системах:
обновление WIndows. Все равно машина при подключении разворачивается из шаблона;
автономные файлы. VDI не уходят в оффлайн;
фоновая дефрагментация. Изменения файловой системы откатываются при отключении;
сон или гибернация. Не поддерживается в VDI;
аварийный дамп. При повторном включении машина будет развернута из шаблона;
автоконфигурация WLAN. На VDI нет Wi-Fi;
служба общих сетевых ресурсов проигрывателя Windows Media;
поставщик домашней группы;
общий доступ подключения к интернету;
служба поддержки Bluetooth;
Помимо отключения служб в шаблонной виртуальной машине, для оптимизации хранения не лишним будет включить дедупликацию в любом варианте развертывания VDI. Сделать это можно при помощи команды PowerShell:
Использование дедупликации изрядно поможет сберечь место не только при использовании виртуальных рабочих столов.
Дедупликация
Дедупликация – это метод сжатия массива, когда повторяющиеся данные не дублируются.
Microsoft советует включать дедупликацию в следующих случаях:
файловые серверы общего назначения – общие папки пользователей, перенаправленные папки профилей и т.п.;
серверы инфраструктуры удаленных рабочих столов (VDI);
Во всех прочих случаях выгоды дедупликации стоит предварительно оценить. В этом поможет утилита DDPEval.exe, которая появится после установки роли дедупликации на сервер.
На диске с большим количеством файловых баз 1С дедупликация поможет сэкономить до 70% места.
Установка компоненты дедупликации производится через графический режим или командлетом PowerShell:
Включить удобно командлетом Enable-DedupVolume с параметром – UsageType, который может принимать значения:
HyperV – для дисков хранения виртуальных машин и VDI;
Backup – для виртуализированных приложений резервного копирования;
Подробнее прочитать про дедупликацию и чем отличаются ее виды, предлагаю в документации Microsoft.
Для оптимизации баланса хранения и производительности следует уделить внимание назначенным заданиям дедупликации и тонким ее настройкам.
Механизм дедупликации использует три вида назначенных заданий:
| Название | Что делает | Расписание по умолчанию |
| Оптимизация | Выполняет дедупликацию | Каждый час |
| Сбор мусора | Освобождает место на диске | Каждую субботу в 02:35 |
| Проверка целостности | Ищет и восстанавливает повреждения | Каждую субботу в 03:35 |
Посмотреть назначенные задания можно командлетом Get-DedupSchedule.
Запланированные задания дедупликации по умолчанию.
Разумеется такое расписание может быть неприемлемо, особенно на серверах с высокой загрузкой. В таком случае удобно будет запускать задания только в часы простоя. Отключим задания командой PowerShell:
Добавим новое задание оптимизации в нерабочее время:
И задания сборка мусора и проверки по нерабочим дням:
Подробнее про синтаксис командлета New-DedupSchedule можно почитать в документации.
Большинство тонких настроек дедупликации – то есть большинство параметров для тома – настраивается с помощью командлета Set-DedupVolume.
| Параметр | Описание | Допустимые значения | Комментарий |
| ChunkRedundancyThreshold | Количество ссылок на блок до его копирования в раздел активной зоны хранилища блоков | Положительные целые числа | Обычно нет необходимости изменять значение по умолчанию, но увеличение значения может увеличить быстродействие томов с высокой дупликацией |
| ExcludeFileType | Типы файлов, исключаемые из дедупликации | Массив расширений файлов | Такие файлы как мультимедиа плохо поддаются дедупликации, оптимизировать их нет смысла |
| ExcludeFolder | Папки, исключаемые из дедупликации | Массив путей к папкам | Для повышения производительности можно исключить часть папок |
| InputOutputScale | Уровень параллелизации операций ввода-вывода | 1 – 36 | На сервере с высокой нагрузкой можно уменьшить количество операций ввода-вывода дедупликации, что скажется на скорости выполнения оптимизации, но ускорит общую работу сервера |
| MinimumFileAgeDays | Число дней после создания файла, прежде чем он будет считаться доступным для оптимизации. | Положительные целые числа, включая 0 | Значение по умолчанию – 3, в ряде случаев можно изменить значение для повышения оптимизации |
| MinimumFileSize | Минимальный размер файла, чтобы он мог считаться доступным для оптимизации | Положительные целые числа (байты), большие, чем 32 КБ | Для небольших файлов дедупликация не имеет особого значения |
| NoCompress | Сжатие дедуплицированных блоков | True\False | Для тома, содержащего большое количество сжатых данных, вроде архивов или мультимедиа, сжатие имеет смысл отключить |
| NoCompressionFileType | Файлы, которые не нужно сжимать | Массив расширений файлов | Уже сжатые файлы сжимать нет смысла |
| OptimizeInUseFiles | Использование дедупликации для активных файлов | True\False | В случае если на томе большинство файлов – большие и постоянно используемые, в которых меняется регулярно только часть файлов – лучше включить этот параметр. В противном случае эти файлы не будут оптимизированы |
| OptimizePartialFiles | При включении этого параметра значение MinimumFileAge применяется к сегментам файла, а не ко всему файлу | True\False | |
| Verify | Проверка блока данных не только по хэшу, но и по байтово | True\False | Включение параметра замедляет быстродействие, но обеспечивает большую гарантию сохранности данных |
Помимо настроек для тома существуют и общие настройки службы дедупликации. В частности, нас интересует два параметра, находящихся в реестре по следующему адресу:
Теперь, когда дедупликация настроена, можно попробовать выговорить «дедуплицировали, дедуплицировали, да не выдедуплицировали», а потом потратить бюджет не на диски, а на новые серверы в ферму удаленных рабочих столов. И начать тюнить уже их.
А вам приходилось заниматься подобным тюнингом быстродействия терминальных серверов или все «по дефолту»? Был какой-то ощутимый результат?
Как очистить историю подключений через RDP в Windows
При использовании встроенного клиента подключений через удалённый рабочий стол (mstsc.exe) нужно быть готовым к тому, что Windows сохраняет историю подключений. Сохраняются имя или IP-адрес удалённого устройства и имя пользователя, под которым было осуществлено подключение. Иногда это может приводить к глюкам операционной системы. Впрочем, и без последних иногда возникает необходимость очистить историю RDP-подключений.
К примеру, Вы подключаетесь по RDP с общедоступного компьютера. Не лучшая мысль, но иногда так складываются обстоятельства. Информация о подключениях хранится в реестре Windows отдельно для каждого пользователя. Таким образом, если пользователь не обладает правами администратора в системе, историю чужих подключений он не посмотрит. А вот администратор может посмотреть чужие подключения.
Очистка истории подключений через RDP
Нас интересует ветка HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client. Обратим внимание на подразделы Default и Servers. Первый хранит информацию о 10 последних подключениях, а второй содержит в себе перечень всех удалённых устройств и имён пользователей, которые использовались для подключения по RDP.
Зайдя в HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default, вы увидите десять ключей реестра с именами от MRU0 по MRU9 (Most Recently Used). Удалите их, чтобы очистить историю подключений по RDP.
Если развернуть HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers, то можно увидеть перечень хостов, к которым ранее подключались под текущим пользователем. Интересны ключи UsernameHint и CertHash. Это имя пользователя, которое ранее использовалось для подключения к хосту, и отпечаток RDP-сертификата сервера. Имя пользователя из UsernameHint будет подставлено при следующей попытке подключения к удалённому компьютеру.
Удалите содержимое ветки HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers. Если подразделов там много, можно удалить раздел Servers целиком, а потом создать новый пустой с таким же именем.
Далее необходимо удалить файл Default.rdp из каталога Документы текущего пользователя. Файл является скрытым, поэтому предварительно нужно включить отображений скрытых файлов и папок.
Но и это ещё не всё. Информацию о последних RDP-сессиях Windows хранит ещё и в списках быстрого перехода (jump lists). Если набрать в поисковой строке «mstsc», то можно будет увидеть совершённые ранее подключения. Чтобы отключить ведение истории, откройте в реестре ветку HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, найдите там ключ Start_TrackDocs (или создайте, если ключ отсутствует) и задайте ему значение 0 (тип DWORD). Для очистки уже существующих списков, нужно удалить файлы в каталоге %AppData%\Microsoft\Windows\Recent\AutomaticDestinations.
Вышеописанные действия можно автоматизировать. Ниже пример скрипта:
Что делает данный скрипт?
Скрипт с подобной функциональностью в PowerShell будет выглядеть следующим образом:
Запрет на сохранение истории подключений через RDP
Кроме непосредственно очистки истории RDP-подключений можно запретить Windows собирать эту историю как таковую. К сожалению, разработчики Windows не предусмотрели возможность такого отключения через интерфейс системы, и нам снова придётся лезть в реестр.
Щёлкнув правой кнопкой мыши по разделу HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client, выберите пункт Разрешения.
В открывшемся окне нажмите на кнопку Дополнительно и отключите наследование разрешений от родительских объектов. После этого надо выставить запреты на любые действия с этой веткой для всех пользователей. Это помешает операционной системе записать информацию о подключениях в реестр.
Отключение кэширования изображений
Во встроенном RDP-клиенте Windows есть функция кэширования изображений. Клиент RDP сохраняет редко изменяющиеся куски удалённого рабочего стола в виде растровых изображений. Это уменьшает количество данных, передающихся по сети.
Кэш находится в папке %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache и представляет из себя файлы с расширениями bmc и bin. В них хранятся растровые изображения размером 64×64 пикселя. При помощи несложных скриптов из этих изображений можно сложить часть удалённого рабочего стола.
Для отключения кэширования изображений нужно открыть настройки RDP-клиента, нажав Показать параметры. На вкладке Взаимодействие нужно найти пункт Постоянное кэширование точечных рисунков и снять галочку.
После всех этих манипуляций подключения к удалённому рабочему столу в Windows станут чуть приватнее.


















