Тип: Число. Относительная производительность процесса. Может находиться в диапазоне от 1 до 1000. Используется в процессе выбора рабочего процесса, к которому будет подсоединен очередной клиент. Клиенты распределяются между рабочими процессами пропорционально производительности рабочих процессов.
Полное описание, параметры и ограничения
АдминистрированиеРабочийПроцесс.ОтносительнаяПроизводительность (AdministrationWorkProcess.Capacity)
АдминистрированиеРабочийПроцесс (AdministrationWorkProcess)
ОтносительнаяПроизводительность (Capacity)
Доступен, начиная с версии 8.3.14.
Использование:
Только чтение.
Описание:
Тип: Число.
Относительная производительность процесса. Может находиться в диапазоне от 1 до 1000. Используется в процессе выбора рабочего процесса, к которому будет подсоединен очередной клиент. Клиенты распределяются между рабочими процессами пропорционально производительности рабочих процессов.
Доступность:
Тонкий клиент, сервер, толстый клиент, интеграция.
Использование в версии:
Доступен, начиная с версии 8.3.14.
Методическая информация
Практические примеры
Отличить показатели распределения клиентов от загрузки CPU
ОтносительнаяПроизводительность используется при распределении клиентов и имеет диапазон 1..1000. ДоступнаяПроизводительность основана на реакции на эталонный запрос; это не CPU%.
Где и как запускать
Управляемая форма учебной обработки; чтение совместимого ras только отдельного изолированного учебного кластера.
Подготовка
Только отдельный учебный кластер 1С:Предприятия 8.5.1.1343 с уже настроенным ras совместимой версии. Не подключайтесь к рабочему серверу для обучения.
Создайте внешнюю обработку с управляемой формой. Добавьте реквизиты АдресRAS (Строка), ПортRAS (Число), ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера (Строка). Выведите поля на форму; у элементов ввода паролей в свойствах включите Режим пароля (PasswordMode).
АдресRAS относится к машине серверного выполнения кода. Пример для ras на этой же тестовой машине: 127.0.0.1 и порт 1545; подтвердите фактические адрес и порт у администратора.
Используйте законные учётные данные учебного агента и кластера. Оставлять имя и пароль пустыми можно только если соответствующие администраторы не зарегистрированы и среда допускает такую аутентификацию.
При первом запуске оставьте ИдентификаторКластера пустым: код выведет идентификаторы и имена кластеров. Скопируйте идентификатор нужного учебного кластера в поле и повторите.
Вставьте клиентскую процедуру и серверную функцию отдельно на уровне модуля формы. Код не запускает ras и не настраивает учётные записи.
Добавьте реквизит ИдентификаторУчебногоПроцесса (Строка) и выведите его на форму. Создайте команду с именем клиентской процедуры соответствующего примера.
После выбора учебного кластера оставьте UUID процесса пустым: получите список UUID/PID. Вставьте UUID нужного процесса, не PID Windows, затем повторите.
Код только читает процесс учебного кластера. Не останавливает/перезапускает процессы, не записывает настройки и не меняет распределение клиентов.
&НаКлиенте
Процедура ПрочитатьПроизводительностьПроцесса(Команда)
Результат = ПрочитатьПроизводительностьПроцессаНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера, ИдентификаторУчебногоПроцесса);
Сообщить(Результат);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПрочитатьПроизводительностьПроцессаНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера, ИдентификаторУчебногоПроцесса)
Сервер = Новый АдминистрированиеСервера(АдресRAS, ПортRAS);
Сервер.ВыполнитьАутентификацию(ПарольАгента, ИмяАгента);
Кластеры = Сервер.ПолучитьКластеры();
Если Не ЗначениеЗаполнено(ИдентификаторКластера) Тогда
Строки = Новый Массив;
Для Каждого Элемент Из Кластеры Цикл
Строки.Добавить(Строка(Элемент.ИдентификаторКластера) + " — " + Элемент.Имя);
КонецЦикла;
Если Строки.Количество() = 0 Тогда
Возврат "Кластеров нет";
КонецЕсли;
Возврат СтрСоединить(Строки, Символы.ПС);
КонецЕсли;
Кластер = Неопределено;
Для Каждого Элемент Из Кластеры Цикл
Если НРег(Строка(Элемент.ИдентификаторКластера)) = НРег(СокрЛП(ИдентификаторКластера)) Тогда
Кластер = Элемент;
Прервать;
КонецЕсли;
КонецЦикла;
Если Кластер = Неопределено Тогда
ВызватьИсключение "Указанный учебный кластер не найден";
КонецЕсли;
Кластер.ВыполнитьАутентификацию(ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Процессы = Кластер.ПолучитьРабочиеПроцессы();
Если Не ЗначениеЗаполнено(ИдентификаторУчебногоПроцесса) Тогда
Строки = Новый Массив;
Для Каждого Элемент Из Процессы Цикл
Строки.Добавить(СтрШаблон("UUID=%1; PID=%2; узел=%3", Элемент.ИдентификаторРабочегоПроцесса,
Элемент.ИдентификаторПроцесса, Элемент.ИмяКомпьютера));
КонецЦикла;
Если Строки.Количество() = 0 Тогда
Возврат "Рабочих процессов в учебном кластере нет";
КонецЕсли;
Возврат СтрСоединить(Строки, Символы.ПС);
КонецЕсли;
Процесс = Неопределено;
Для Каждого Элемент Из Процессы Цикл
Если НРег(Строка(Элемент.ИдентификаторРабочегоПроцесса)) = НРег(СокрЛП(ИдентификаторУчебногоПроцесса)) Тогда
Процесс = Элемент;
Прервать;
КонецЕсли;
КонецЦикла;
Если Процесс = Неопределено Тогда
ВызватьИсключение "Рабочий процесс с данным UUID не найден в выбранном учебном кластере";
КонецЕсли;
Возврат СтрШаблон("Относительная производительность: %1; доступная за 5 минут: %2; среднее клиентских потоков: %3",
Процесс.ОтносительнаяПроизводительность, Процесс.ДоступнаяПроизводительность,
Процесс.СреднееКоличествоПотоков);
КонецФункцииРазбор по шагам
Относительная производительность относится к выбору процесса для очередного клиента, не числу физических ядер.
Доступная производительность — усреднённая за пять минут оценка реакции процесса.
СреднееКоличествоПотоков относится к клиентским потокам процесса, не ко всем потокам ОС.
Как проверить результат
Выведены три отдельных фактических показателя, относительный соответствует заявленному диапазону 1..1000.
Ни один результат не подписан CPU%, загрузкой всех ядер или числом процессов.
Ожидаемый результат
Разобраны три разных показателя производительности без переключения балансировки.
На что обратить внимание
Значение 500 не означает 50% загрузки CPU.
Не меняйте производительность/распределение клиентов по одному наблюдению без измерения конкретной нагрузки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.