1С и динамическое планирование долевого распределения
Первое, что вы должны сделать, это открыть PowerShell в режиме администратора и проверить, работает ли DFSS или нет. Если будет стоять 1, то значит работает и вам нужно его менять на 0, при ноле делать больше ничего не нужно.
(gwmi win32_terminalservicesetting -N «root\cimv2\terminalservices»).enabledfss
Так как мы получили 1, то вам нужно у двух ключей EnableCpuQuota и EnableFairShare нужно выставить значение «0». Я приводил выше ссылки, где лежат ключи, как вариант вы можете это сделать через групповую политику или скриптом. Если будите делать через GPO, то не забудьте ее потом обновить вручную.
Убедительно вас прошу, когда вы сделаете изменения в реестре, обязательно перезагрузите сервер, если это RDSH хост, то не забываем его перевести в режим стока или просто уведомить пользователей, что будет перезагрузка, дабы они успели сохранить свои документы и данные
Дополнительные методы решения
- Постарайтесь перейти на более свежую версию программы, очень часто, что в новых версиях исправляют ряд проблем и оптимизируют скорость работы
- Для сверхбольшого (тысячи) одновременных соединений к серверу 1С необходимо отредактировать сетевой стек Windows. Откройте реестр Windows и переудите в ветки:
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters
Там ключи:
- MaxFreeTcbs = 100000
- TcpTimedWaitDelay = 30
- MaxUserPort = 65535
HKLM\System\CurrentControlSet\Services\AFD\Parameters
Там ключи:
- EnableDynamicBacklog = 1
- MinimumDynamicBacklog = 20
- MaximumDynamicBacklog = 20000
- DynamicBacklogGrowthDelta = 10
В командной строке от имени администратора установите диапазон исходящих портов (1025; 65535)
netsh int ipv4 set dynamicport tcp start=1025 num=64510
netsh int ipv4 set dynamicport udp start=1025 num=64510
- Если вы используете подключение USB ключа 1С по сети, через DIGI, SEH, DongleServer, то рассмотрите вариант обновления драйверов на сервере 1С и прошивок на самом оборудовании
- Еще одной из причин может служить проблема с самим кодом 1С
- Проверьте производительность сервера БД
- Постарайтесь перевести 1С на SQL Server (Серверный режим), там работа будет выглядеть вот так, когда пользователь сделает запрос, то он будет обрабатываться программой на самом сервере, и обратившемуся будет представлена только та информация, что соответствует его запросу и не больше. То есть с места хранения базы (сервера) тянется не вся информация, а только та, что требуется для пользователя. Это увеличивает производительность 1С в разы. Так же это позволяет избежать блокировок. Когда пользователь проводит документ, для обеспечения корректности анализируемых алгоритмом проведения данных блокируются на изменение таблицы БД (регистры накопления, хранящие, например, остатки товаров). Если другой пользователь в этот же момент попытается провести свой схожий документ, то программа не даст ему это сделать – «зависнет» и будет ожидать завершения проведения первого документа (и разблокировки для изменения необходимых таблиц). Серверный режим это поправит.
На этом у меня все, в данной публикации я постарался ответить на вопрос, почему тормозит 1С на терминальном сервере. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Удаление антивируса
Понятно, что не хорошо такое советовать, но в момент поиска причины медленной работы 1С, я советую не отключить, а именно удалить ваше антивирусное решение, чтобы точно удостовериться, что причина не в нем, так как я очень часто с этим сталкивался. Потом если понятно, что дело в нем нужно реализовывать совместную работу. Основная идея в том, что нужно добавить компоненты 1С:Предприятия (например, папку C:\Program Files\1cv8\BIN и C:\Program Files\1cv8\server) и C:\Program Files (x86)\1cv8 в исключения. Также добавить в исключения рабочие (1Cv8*.1C? — маска для (1Cv8.1CD \ 1Cv8tmp.1CD \ 1Cv8.1CL \ 1Cv8tmp.1CL)
- 1Cv8.pfl
- 1Cv8.log
- *.epf
- *.dt
- *.cf
- *.cfu)
- и временные файлы, используемые 1С:Предприятие.
Описание проблемы
Не так давно я развернул новую RDS ферму на базе Windows Server 2016 и мигрировал на нее пользователей с RDS фермы 2012 R2. Все было замечательно, пока основная масса людей полностью не перешла на новые сервера, по ситу это все те же виртуальные машины на базе ESXI 6.5. В какой-то момент стали поступать обращения в техническую поддержку, о том что конфигуратор 1С и сама 1Ска долго открывается и подтормаживает. Секунд по 30-40 висело вот такое окно конфигуратора, после чего открывалось и пользователи продолжали работу, кого-то это напрягало, а кого-то нет, в любом случае на прошлой RDS ферме этой проблемы не было. Давайте смотреть причины данной ситуации.
1С:предприятие с терминала
Для тех, у кого развита фантазия, приведем более понятный пример; представьте себе, что все бумажные данные компании лежат в определенном хранилище, которое находится на одном из этажей, и все эти документы разложены на одном стеллаже. Если кому-то из работников компании понадобилось почитать или исправить какой-нибудь из этих документов, он идет в хранилище и берет не только этот документ, а весь стеллаж целиком – чтобы случайно документы не перепутались; потом он с этим стеллажом идет по узкому коридору в личный кабинет, где может делать все что угодно с этими документами, а после этого возвратить все назад в хранилище. Потом другой пользователь наконец сможет также получить доступ к файлам, проделав те же самые действия.
Улучшение компьютера или ОС в данном случае аналогичны ускорению работы с документами в кабинете сотрудника, или расширению узкого коридора, но таскать документы все равно приходится.
Но у этих проблем на самом деле есть простое и несложное решение – обработка документов в хранилище, вместо того чтобы носить целый стеллаж по коридору. Например, можно сделать в хранилище читальный зал, где каждый работник сможет поработать с документами; здесь нужно провести аналогию читального зала с терминальным сервером, то есть компьютером, который одновременно работает с несколькими пользователями.
Работники предприятий, советуясь об этом с компьютерщиками, часто слышат странные слова, например, РПД, или Сервер терминалов, а также Терминальное подключение.
Попробуем объяснить эти слова просто и понятно. Сервер терминалов – это обозначение компьютера, за которым одновременно могут трудиться несколько пользователей. Конечно, при этом у каждого из них отдельный монитор, клавиатура и мышь; это на случай, если вы представили себе, как несколько человек пытаются уместиться на одном кресле.
Для пользователя все в данном случае выглядит просто – он, как всегда, кликает на ярлык на рабочем столе, и оказывается на так называемом удаленном рабочем столе. Там все привычно, разве что, кроме панельки в верхней части экрана, но именно эта панелька позволяет потом возвращаться на обычный рабочий стол.
Запуск 1С:Предприятие через терминал
Но в таком режиме, в отличие от обычного, 1С не будет тормозить и выключаться. Причем это не единственная проблема, которую способны решать сервера терминалов. Они также могут помочь:
— ускорить работу 1С в 10-20 раз;
— удаленный доступ к базе и документам 1С: вам не нужно работать непосредственно в офисе, вы также можете подключаться по сети, находясь в отпуске или в выходные дни;
— безопасность данных при сбоях: даже если 1С будет выключаться, данные будут сохранены; подключившись вновь, вы будете возвращены на то же место в документе или справочнике, где было до этого;
— быстрая и удобная работа: скорость и комфорт работы с 1С не зависят от компьютера, на котором работает пользователь;
— отсутствие проблем с кодовой страницей, поэтому возможет доступ с компьютеров и с ОС Windows XP и Windows Vista; вообще, работать можно со всех операционных систем, будь то Windows7, MAC OS X или Linux
Проверка достаточности ресурсов
На терминальных серверах очень часто может не хватать ресурсов, в виду того, что системный администратор не правильно оценил масштабы нагрузки на один хост. Напоминаю, что на одном RDSH сервере могут одновременно спокойно сидеть и по 40 и по 100 человек, тут важна балансировка и понимание, какие данные и ПО создают нагрузку
Первое на что я вам советую обратить внимание, это на загрузку CPU, в идеале у вас должна быть своя система мониторинга, которая следит за всеми показателями и где потом легко понять почему сервер и приложение 1С тормозили. Например у меня на работе используется Zabbix
Запустите диспетчер задач, сделать это можно через одновременное нажатие CTRL+SHIFT+ESC. Переходим на вкладку производительность и смотрим нагрузку на CPU в реальном времени. Если она высокая, то сразу переходим в мониторинг ресурсов.
В мониторе ресурсов откройте вкладку ЦП и посмотрите самые нагруженные процессы, вы там легко можете увидеть ваш антивирус, который я предложу удалить в следующем пункте. Хочу отметить, что если будет загружен процессор под 100%, то у вас могут теряться сетевые пакеты и сервер может быть не доступен по сети, это особенно чувствуется, когда вы используете виртуальные машины с устаревшими сетевыми интерфейсами E1000.
Так же я вам тут же советую проверить загрузку вашей дисковой подсистемы, так как она может не выдерживать текущие нагрузки. Сделать это можно на вкладке «Диск»
Тут нужно обратить внимание на два момента:
- Время ответа у процессов — для SSD этот показатель не более 30-40, для HDD не более 100-120
- Длина очереди к диску — Если она больше 1, например 5, то это плохо и есть проблемы с производительностью
Нагрузку на диски, память и дисковую подсистему вы можете уменьшить или убрать, путем миграции на другой ESXI хост, уменьшить количество одновременно работающих пользователей за RDSH хостом, это делается через оснастку управления RDS. Так же убедитесь, что у вас сам хост гипервизора не нагружен под 100%, такое то же бывает и могут легко быть предупреждения «Host CPU usage и host memory usage». Рассмотрите вариант расширения ресурсов у данного сервера или добавление еще одного и распределение нагрузки пользователей между ними.
Настройка удаленного десктопа средствами Windows
Чтобы компьютеры могли взаимодействовать, они должны быть правильно настроены. Технически задача не выглядит слишком сложной, хотя здесь есть свои нюансы, особенно в случае управления через интернет. Итак, давайте посмотрим, как настроить удаленный рабочий стол средствами системы. Во-первых, на ПК, к которому будет осуществляться доступ, должна быть установлена версия Windows не ниже Pro, управлять же можно и с домашней версии
Второе и очень важно условие – это необходимость наличия статического IP-адреса на удаленном ПК
Конечно, можно попробовать настроить его вручную, но тут есть проблема. Дело в том, что внутренний IP дается ПК DHCP-сервером интернет-центра на определенный срок, по истечении которого компьютеру нужно будет запросить новый IP. Он может оказаться тем же самым, но может и измениться, тогда вы не сможете использовать протокол RDP. Так бывает с серыми, динамическими адресами, и, надо сказать, именно такие адреса выделяют своим клиентам большинство провайдеров. Поэтому самым правильным было бы обращение в службу поддержки провайдера с просьбой выделить вашему компьютеру статический адрес.
Если не хотим платить за белый IP (услуга предоставляется за дополнительную плату), пробуем настроить подключение вручную. Командой control /name Microsoft.NetworkAndSharingCenter откройте «Центр управления сетями и общим доступом», кликните по вашему подключению и нажмите в открывшемся окошке кнопку «Сведения».
Запишите данные IPv4, маски подсети, шлюза по умолчанию и DNS-сервера.
Эти же данные вы можете получить, выполнив в консоли CMD или PowerShell команду ipconfig /all. Закройте окошко сведений и откройте свойства в окне состояния.
Выберите в списке IPv4, перейдите в его свойства и введите полученные данные в соответствующие поля. Сохраните настройки.
Статический адрес у вас есть, теперь нужно включить разрешение доступа подключения. Откройте командой systempropertiesremote вкладку «Удаленный доступ» в свойствах системы и включите радиокнопку «Разрешить удаленные подключения к этому компьютеру».
Если нужно, добавляем юзеров, которым хотим предоставить возможность удаленного подключения.
В Windows 10 1709 получить доступ ко всем этим настройкам можно из подраздела «Удаленный рабочий стол» приложения «Параметры».
При использовании стороннего фаервола откройте в нем порт TCP 3389. На данном этапе общая настройка удаленного рабочего стола завершена.
Если подключение выполняется в локальной сети, можете приступать к работе немедленно. Запустите командой mstsc встроенное приложение RDP, введите в открывшемся окошке IP-адрес или имя удаленного хоста, выберите пользователя и нажмите «Подключить».
Далее вам нужно будет ввести данные учетной записи пользователя удаленного компьютера и нажать «OK». Появится предупреждение «Не удается проверить подлинность…».
Игнорируем его, отключаем запросы на подключение (снять галку) и жмем «Да». В случае удачного соединения вы увидите рабочий стол удаленного хоста.
Настроить удаленный рабочий стол через интернет сложнее, так как здесь придется выполнить проброс порта 3389 на IP-адрес вашего ПК, а затем подключиться к внешнему IP маршрутизатора, что может стать для пользователя настоящей головной болью, так как придется копаться в настройках роутера. Узнать свой публичный IP не составляет труда, достаточно зайти на сайт 2ip.ua/ru либо аналогичный ресурс.
Далее заходим в настройки роутера по адресу 192.168.0.1 или 192.168.1.1. Здесь все у всех может быть по-разному в зависимости от модели роутера и его прошивки.
В случае с TP-Link необходимо зайти в раздел Переадресация – Виртуальные серверы, нажать «Добавить» и ввести в поля «Порт сервера» и «Внутренний порт» 3389, в поле «IP-адрес» указывается используемый компьютером IP, в полях «Протокол» и «Состояние» должно быть выставлено «Все» и «Включено» соответственно. Сохраните настройки.
Теперь можно пробовать подключиться к удаленному десктопу с основного ПК. Запустите командой mstsc программу RDP и введите в поле «Компьютер» ранее полученный внешний IP-адрес с номером порта через двоеточие, например, 141.105.70.253:3389. Далее все точно так же, как и в примере с подключением в локальной сети.
В роутерах D-Link нужные настройки следует поискать в разделе Межсетевой экран – Виртуальные серверы.
Перед пробросом рекомендуется зарезервировать используемый компьютером IP-адрес в настройках TP-Link-роутера DHCP – Резервирование адресов.