Имя: Пароль:
1C
1С v8
Занимаемые 1С порты и их нехватка
0 P_Mis
 
13.09.19
14:39
Сервер 1С находится на одном сервере, пользователи подключаются с другого сервера по тонкому клиенту.
Столкнулись с проблемой: после какого-то кол-ва пользователей зашедших в базу, новых перестает пускать - просто падает платформа. Началось внезапно, ничего не меняли, ни конфигурацию, ни платформу, ни сервер. На текущей платформе проработали больше месяца нормально. Через технологический журнал на клиенте выцепил ошибку, с которой падает платформа "Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт)". Ошибку это возвращает платформе винда, везде пишут, что проблема в том, что не хватает динамических портов, которые можно расширить через реестр, но это не помогло.
Через netstat -ano на сервере удаленных рабочих столов, откуда подключаются пользователи видно, что заняты все порты с 1560 по 1591 тонким клиентом. Но многие клиенты сидят на рандомных портах типа 45434. Заметили, что новые пользователи не могут зайти в базу, когда все порты 1560-1591 заняты. Если убить любого тонкого клиента, который занимает порт в этом диапазоне и порт освобождается, то новый пользователь может зайти в базу.
Так же, когда все эти порты заняты, не получается запустить отладку из конфигуратора, ругается на "Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP" - что тоже описано в инете как проблема занятых портов.
Не понятно, зачем тонкому клиенту на сервере удаленных рабочих столов занимать эти порты, ведь используются они сервером 1С для рабочих процессов. И почему когда свободных портов нет на РДП сервере, клиент не может подключиться к серверу 1С. Но часть клиентов спокойно висят на рандомных портах типа 45434. Такое ощущение, что при коннекте, клиент все таки занимает какой-то из портов в этом диапазоне, а после этого его перекидывает на любой свободный до 65535, но эти порты из диапазона 1560-1591 не успевают освободиться.
Объясните, по какому принципу клиент занимает порты и можно ли это как-то где-то настроить? То, что происходит в описанной ситуации это какой-то сбой либо некорректная настройка и достаточно в настройках службы 1С указать бОльший пул портов? Но никогда не слышал, чтобы в базах, где работает большое кол-во пользователей, увеличивали диапазон портов для рабочих процессов на сервере 1С.
1 P_Mis
 
13.09.19
14:57
В первый раз появилось на платформе 8.3.14.1854, после этого откатились на 8.3.12.1685, на которой были несколько месяцев, ситуация не изменилась.
2 eklmn
 
гуру
13.09.19
15:53
вам хватит на 1 локальный порт 1561 всех подключить
сбрасывайте настройки в дефолт, переустанавливайте платформу.
3 P_Mis
 
13.09.19
16:03
(2) Так какие настройки? На РДП сервере стоит только тонкий клиент, какие и где там настройки можно сбросить?
4 fbear
 
13.09.19
16:05
https://its.1c.ru/db/metod8dev#content:5908:hdoc

6. Необходимо настроить сетевой стек для обеспечения возможности обработки большого числа подключений
Настройки, которые необходимо выполнить (в дополнение к настройке 5.2. Настроить рабочий сервер в соответствии с инструкцией):

Запустить regedit и в ветке HKLM\System\CurrentControlSet\Services\Tcpip\Parameters указать
MaxFreeTcbs= 100000
TcpTimedWaitDelay= 30
MaxUserPort= 65535
Запустить regedit и в ветке HKLM\System\CurrentControlSet\Services\AFD\Parameters указать
EnableDynamicBacklog= 1
MinimumDynamicBacklog= 20
MaximumDynamicBacklog= 20000
DynamicBacklogGrowthDelta= 10
Устанавливаем диапазон исходящих портов (1025; 65535)
Выполнить: netsh int ipv4 set dynamic port tcp start=1025 num=64510
Выполнить: netsh int ipv4 set dynamic port udp start=1025 num=64510
5 P_Mis
 
13.09.19
16:16
(4) Все эти настройки сделаны, это все как раз гуглится по ошибке "Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт)". Но легче не стало вообще. Да и 80 пользователей не так много.
6 P_Mis
 
13.09.19
16:17
Проблема в том, что тонкий клиент почему-то занимает 1560-1591 порты на рдп сервере (не на 1С сервере) и из-за этого не могут подключаться новые клиенты. Так как если через netstat выбрать клиента, который занял 1560 порт, завершить его, то другой пользователь сможет зайти.
7 Fragster
 
гуру
13.09.19
16:19
кто-то подкрутил параметр количество соединений на процесс?
8 Fragster
 
гуру
13.09.19
16:19
сколько rphost на сервере?
9 P_Mis
 
13.09.19
16:27
(7) Вроде никто ничего не крутил. Сейчас стоит 128.
(8) 1.
10 Fragster
 
гуру
13.09.19
17:59
режим отладки при запуске клиента?
11 P_Mis
 
13.09.19
18:43
(10) О, интересная мысль, надо будет проверить. Вообще запускается все без отладки, но вдруг каким-то образом она включается...
12 P_Mis
 
13.09.19
18:46
(10) (11) Во блин, точно! На одном из клиентов, который занял 1562 порт запущена отладка. Каким образом она могла включиться сама то?
13 P_Mis
 
16.09.19
11:25
Нашел в чем была причина, очень все нетривиально оказалось ) У нас в одном документе добавлено очень много доп.реквизитов, а чтобы они не подряд располагались на форме, была изменена форма в пользовательском режиме, красиво и по группам расположили доп.реквизиты.
Чтобы эта настройка применилась у всех, копировали все настройки эталонного пользователя другим пользователям. Видимо, в момент копирования настроек эталонного пользователя, у него была включена отладка, которая так и прилетела всем. Ну и в какой-то момент пользователей просто стало слишком много и проблема проявилась.
14 P_Mis
 
16.09.19
11:28
(13) Соответственно решение это в личных настройках пользователей очистить настройку из закладки Прочие настройки - Прочие настройки. Ну и переписать копирование настроек, если это делается автоматом.