АдминистрированиеРабочийПроцесс.ДоступнаяПроизводительность

Свойства · AvailablePerformance

Тип: Число. Средняя за последние 5 минут доступная производительность. Определяется по времени реакции рабочего процесса на эталонный запрос. В соответствии с доступной производительностью кластер серверов принимает решение о распределении клиентов между рабочими процессами.

Полное описание, параметры и ограничения

АдминистрированиеРабочийПроцесс.ДоступнаяПроизводительность (AdministrationWorkProcess.AvailablePerformance)

АдминистрированиеРабочийПроцесс (AdministrationWorkProcess)

ДоступнаяПроизводительность (AvailablePerformance)

Доступен, начиная с версии 8.3.14.

Использование:
Только чтение.
Описание:
Тип: Число.
Средняя за последние 5 минут доступная производительность. Определяется по времени реакции рабочего процесса на эталонный запрос. В соответствии с доступной производительностью кластер серверов принимает решение о распределении клиентов между рабочими процессами.
Доступность:

Тонкий клиент, сервер, толстый клиент, интеграция.

Использование в версии:

Доступен, начиная с версии 8.3.14.

Методическая информация

Практические примеры

Отличить показатели распределения клиентов от загрузки CPU

ОтносительнаяПроизводительность используется при распределении клиентов и имеет диапазон 1..1000. ДоступнаяПроизводительность основана на реакции на эталонный запрос; это не CPU%.

Где и как запускать

Управляемая форма учебной обработки; чтение совместимого ras только отдельного изолированного учебного кластера.

Подготовка

  1. Только отдельный учебный кластер 1С:Предприятия 8.5.1.1343 с уже настроенным ras совместимой версии. Не подключайтесь к рабочему серверу для обучения.

  2. Создайте внешнюю обработку с управляемой формой. Добавьте реквизиты АдресRAS (Строка), ПортRAS (Число), ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера (Строка). Выведите поля на форму; у элементов ввода паролей в свойствах включите Режим пароля (PasswordMode).

  3. АдресRAS относится к машине серверного выполнения кода. Пример для ras на этой же тестовой машине: 127.0.0.1 и порт 1545; подтвердите фактические адрес и порт у администратора.

  4. Используйте законные учётные данные учебного агента и кластера. Оставлять имя и пароль пустыми можно только если соответствующие администраторы не зарегистрированы и среда допускает такую аутентификацию.

  5. При первом запуске оставьте ИдентификаторКластера пустым: код выведет идентификаторы и имена кластеров. Скопируйте идентификатор нужного учебного кластера в поле и повторите.

  6. Вставьте клиентскую процедуру и серверную функцию отдельно на уровне модуля формы. Код не запускает ras и не настраивает учётные записи.

  7. Добавьте реквизит ИдентификаторУчебногоПроцесса (Строка) и выведите его на форму. Создайте команду с именем клиентской процедуры соответствующего примера.

  8. После выбора учебного кластера оставьте UUID процесса пустым: получите список UUID/PID. Вставьте UUID нужного процесса, не PID Windows, затем повторите.

  9. Код только читает процесс учебного кластера. Не останавливает/перезапускает процессы, не записывает настройки и не меняет распределение клиентов.

&НаКлиенте
Процедура ПрочитатьПроизводительностьПроцесса(Команда)
    Результат = ПрочитатьПроизводительностьПроцессаНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера, ИдентификаторУчебногоПроцесса);
    Сообщить(Результат);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПрочитатьПроизводительностьПроцессаНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера, ИдентификаторУчебногоПроцесса)
    Сервер = Новый АдминистрированиеСервера(АдресRAS, ПортRAS);
    Сервер.ВыполнитьАутентификацию(ПарольАгента, ИмяАгента);
    Кластеры = Сервер.ПолучитьКластеры();
    Если Не ЗначениеЗаполнено(ИдентификаторКластера) Тогда
        Строки = Новый Массив;
        Для Каждого Элемент Из Кластеры Цикл
            Строки.Добавить(Строка(Элемент.ИдентификаторКластера) + " — " + Элемент.Имя);
        КонецЦикла;
        Если Строки.Количество() = 0 Тогда
            Возврат "Кластеров нет";
        КонецЕсли;
        Возврат СтрСоединить(Строки, Символы.ПС);
    КонецЕсли;
    Кластер = Неопределено;
    Для Каждого Элемент Из Кластеры Цикл
        Если НРег(Строка(Элемент.ИдентификаторКластера)) = НРег(СокрЛП(ИдентификаторКластера)) Тогда
            Кластер = Элемент;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если Кластер = Неопределено Тогда
        ВызватьИсключение "Указанный учебный кластер не найден";
    КонецЕсли;
    Кластер.ВыполнитьАутентификацию(ИмяАдминистратораКластера, ПарольАдминистратораКластера);
    Процессы = Кластер.ПолучитьРабочиеПроцессы();
    Если Не ЗначениеЗаполнено(ИдентификаторУчебногоПроцесса) Тогда
        Строки = Новый Массив;
        Для Каждого Элемент Из Процессы Цикл
            Строки.Добавить(СтрШаблон("UUID=%1; PID=%2; узел=%3", Элемент.ИдентификаторРабочегоПроцесса,
                Элемент.ИдентификаторПроцесса, Элемент.ИмяКомпьютера));
        КонецЦикла;
        Если Строки.Количество() = 0 Тогда
            Возврат "Рабочих процессов в учебном кластере нет";
        КонецЕсли;
        Возврат СтрСоединить(Строки, Символы.ПС);
    КонецЕсли;
    Процесс = Неопределено;
    Для Каждого Элемент Из Процессы Цикл
        Если НРег(Строка(Элемент.ИдентификаторРабочегоПроцесса)) = НРег(СокрЛП(ИдентификаторУчебногоПроцесса)) Тогда
            Процесс = Элемент;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если Процесс = Неопределено Тогда
        ВызватьИсключение "Рабочий процесс с данным UUID не найден в выбранном учебном кластере";
    КонецЕсли;
    Возврат СтрШаблон("Относительная производительность: %1; доступная за 5 минут: %2; среднее клиентских потоков: %3",
        Процесс.ОтносительнаяПроизводительность, Процесс.ДоступнаяПроизводительность,
        Процесс.СреднееКоличествоПотоков);
КонецФункции

Разбор по шагам

  1. Относительная производительность относится к выбору процесса для очередного клиента, не числу физических ядер.

  2. Доступная производительность — усреднённая за пять минут оценка реакции процесса.

  3. СреднееКоличествоПотоков относится к клиентским потокам процесса, не ко всем потокам ОС.

Как проверить результат

  1. Выведены три отдельных фактических показателя, относительный соответствует заявленному диапазону 1..1000.

  2. Ни один результат не подписан CPU%, загрузкой всех ядер или числом процессов.

Ожидаемый результат

Разобраны три разных показателя производительности без переключения балансировки.

На что обратить внимание

  1. Значение 500 не означает 50% загрузки CPU.

  2. Не меняйте производительность/распределение клиентов по одному наблюдению без измерения конкретной нагрузки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.