Установка минимального количества потоков
Иногда при работе Web-клиента может наблюдаться снижение производительности даже при условии соблюдения всех системных требований. Это может выражаться в виде периодического замедления в начале рабочего дня или после рассылки писем со ссылкой на Web-клиент, в таких случаях замедление обычно продолжается не более 1-2 минут. Время отклика страницы может увеличиваться до минуты.
Причина такого поведения заключается в слишком долгой адаптации сервера Web-клиента к повысившейся активности пользователей.
Решением ситуации является установка минимального числа потоков, которое соответствовало бы операционному состоянию сервера Web-клиента. Значение устанавливается в конфигурационном файле по адресу /usr/lib/docsvision/webclient/DocsVision.WebClient.runtimeconfig.json
.
Минимальное число потоков определяется в соответствии с числом активных пользователей (максимальному числу активных-сессий). Более точное значение можно определить, проанализировав показатели счетчика производительности в течение рабочего дня:
-
Установите средства dotnet-counter и dotnet-stack для Linux.
-
Запустите средство
dotnet-counter
и проанализируйте с его помощью количество потоков:./dotnet-counters collect --counters "System.Runtime[threadpool-thread-count]" -p XXXXX (1)
1 -p XXXXX
замените на PID процесса ВК -
В результате в каталоге средства появится файл
counters.csv
со значением счетчика в разное время. -
Среднее значение счетчика под нагрузкой можно использовать как минимальное число потоков.
Укажите его в конфигурационном файле
/usr/lib/docsvision/webclient/DocsVision.WebClient.runtimeconfig.json
в параметреruntimeOptions.configProperties.System.Threading.ThreadPool.MinThreads
:{ "runtimeOptions": { "tfm": "net6.0", "frameworks": [ { "name": "Microsoft.NETCore.App", "version": "6.0.0" }, { "name": "Microsoft.AspNetCore.App", "version": "6.0.0" } ], "configProperties": { "System.GC.Server": true, "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, "System.Threading.ThreadPool.MinThreads": 100 (1) } } }
1 "System.Threading.ThreadPool.MinThreads"
— минимальное количество потоков.Обратите внимание! Конфигурационный файл будет перезаписан при установке обновления. Рекомендуется изменять настройку в случае, если наблюдаются замедления в работе Web-клиента во время резкого увеличения числа активных пользователей (например, в начале рабочего дня или после рассылки писем со ссылкой на Web-клиент). Можно также превентивно планировать эту конфигурацию при нормальной работе, если ожидается большое число одновременных пользователей.
-
Перезапустите dvwebclient.