Тип: Число. Определяет максимальный период превышения критического объема памяти в секундах. Рабочий процесс будет перезапущен, если объем виртуального адресного пространства рабочего процесса постоянно превышает критический объем памяти в течение указанных в свойстве секунд.
Полное описание, параметры и ограничения
АдминистрированиеКластер.МаксимальныйПериодПревышенияПамяти (AdministrationCluster.MaxMemoryTimeLimit)
АдминистрированиеКластер (AdministrationCluster)
МаксимальныйПериодПревышенияПамяти (MaxMemoryTimeLimit)
Доступен, начиная с версии 8.3.14.
Использование:
Чтение и запись.
Описание:
Тип: Число.
Определяет максимальный период превышения критического объема памяти в секундах.
Рабочий процесс будет перезапущен, если объем виртуального адресного пространства рабочего процесса постоянно превышает критический объем памяти в течение указанных в свойстве секунд.
Доступность:
Тонкий клиент, сервер, толстый клиент, интеграция.
Использование в версии:
Доступен, начиная с версии 8.3.14.
Методическая информация
Практические примеры
Прочитать политику памяти и перезапуска своего кластера
Создаём JSON-снимок настроек реального собственного кластера. Отличаем лимит одного процесса в KiB, интервалы в секундах, расписание и старый период, который 8.5.1 уже игнорирует.
Где и как запускать
Полный модуль собственной управляемой формы учебной обработки. Читает только явно выбранный УчебныйКластер85 через свой loopback ras, если вы сами запускаете его на стенде.
Подготовка
Нужен отдельный собственный серверный стенд 1С 8.5.1.1343 без рабочих баз. Администратор должен заранее установить сервер, запустить совместимый ras и создать кластер с точным именем УчебныйКластер85. Код ничего не устанавливает и не регистрирует.
Запускайте обработку в собственной пустой учебной конфигурации с именем метаданных УчебнаяКонфигурацияСинтаксиса. Серверное выполнение должно находиться на той же машине, что собственный ras: код разрешает только 127.0.0.1. Это адрес сервера выполнения, не обязательно компьютера тонкого клиента.
Создайте учебную обработку с управляемой формой. Добавьте реквизиты формы: ПортRAS — Число без дробной части; ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера, JSONРезультат — Строка. У JSONРезультат длина 0, то есть неограниченная. ИмяАдминистратораКластера — логин, а не имя кластера.
Выведите поля на форму. Для элементов ПарольАгента и ПарольАдминистратораКластера включите Режим пароля; не сохраняйте их значения в настройках и истории. Для JSONРезультат используйте многострочное поле строки только для просмотра. Маскировка ввода не шифрует пароль и не заменяет защищённый стенд.
Создайте команду ПолучитьУчебныйСнимок, назначьте ей клиентский обработчик с таким же именем и вставьте весь приведённый модуль формы. Другие процедуры команд, общий модуль или готовые неизвестные объекты не нужны.
ПортRAS возьмите из фактического запуска своего ras, не из порта ragent или рабочего процесса. Например, 1545 подходит только если именно этот порт настроен на вашем стенде. Используйте законные учётные данные своего агента и своего кластера; пустые допустимы только для намеренно настроенного учебного стенда без соответствующих администраторов.
В первый раз оставьте ИдентификаторКластера пустым: появится JSON только с кластерами УчебныйКластер85. Скопируйте настоящий UUID из результата, вновь введите очищенные пароли и повторите команду. Кластер выбирается одновременно по UUID и точному учебному имени; чужой кластер не принимается.
Выполняйте каждый урок отдельно. JSON формируется в памяти и показывается только на своей форме; код не сохраняет файлы, не пишет настройки кластера, не прерывает сеансы и не запускает команды ОС. Он выполняет сетевое обращение к своему локальному ras только если вы сами запустите его на подготовленном стенде.
Здесь подключение к ras и запуск в 1С не выполнялись. Проверены тексты, сигнатуры и привязки к локальной справке 8.5.1.1343. Пройдите контрольные действия сами только на своём учебном стенде.
&НаКлиенте
Процедура ПолучитьУчебныйСнимок(Команда)
Попытка
JSONРезультат = УчебныйСнимокНаСервере(ПортRAS, ИмяАгента, ПарольАгента,
ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Исключение
JSONРезультат = "Снимок не получен. Проверьте собственный стенд, порт, UUID, учебное имя и права. Подробную серверную ошибку исследуйте в отладчике без публикации учётных данных.";
КонецПопытки;
ПарольАгента = "";
ПарольАдминистратораКластера = "";
КонецПроцедуры
&НаСервереБезКонтекста
Функция УчебныйСнимокНаСервере(ПортRAS, ИмяАгента, ПарольАгента,
ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера)
Если ТипЗнч(ПортRAS) <> Тип("Число") Тогда
ВызватьИсключение "Порт ras должен быть числом";
КонецЕсли;
Если ПортRAS <> Цел(ПортRAS) Или ПортRAS < 1 Или ПортRAS > 65535 Тогда
ВызватьИсключение "Недопустимый порт собственного ras";
КонецЕсли;
ТекстовыеПараметры = Новый Массив;
ТекстовыеПараметры.Добавить(ИмяАгента);
ТекстовыеПараметры.Добавить(ПарольАгента);
ТекстовыеПараметры.Добавить(ИдентификаторКластера);
ТекстовыеПараметры.Добавить(ИмяАдминистратораКластера);
ТекстовыеПараметры.Добавить(ПарольАдминистратораКластера);
Для Каждого ТекстовыйПараметр Из ТекстовыеПараметры Цикл
Если ТипЗнч(ТекстовыйПараметр) <> Тип("Строка") Тогда
ВызватьИсключение "Учётные данные и UUID должны быть строками";
КонецЕсли;
КонецЦикла;
Агент = Новый АдминистрированиеСервера("127.0.0.1", ПортRAS);
Агент.ВыполнитьАутентификацию(ПарольАгента, ИмяАгента);
Кластеры = Агент.ПолучитьКластеры();
Если ПустаяСтрока(СокрЛП(ИдентификаторКластера)) Тогда
Каталог = Новый Массив;
Для Каждого Найденный Из Кластеры Цикл
Если Найденный.Имя = "УчебныйКластер85" Тогда
СтрокаКаталога = Новый Структура;
СтрокаКаталога.Вставить("UUID", Строка(Найденный.ИдентификаторКластера));
СтрокаКаталога.Вставить("Имя", Найденный.Имя);
Каталог.Добавить(СтрокаКаталога);
КонецЕсли;
КонецЦикла;
Возврат СериализоватьСвойСнимок(Новый Структура("УчебныеКластеры", Каталог));
КонецЕсли;
Кластер = Неопределено;
Совпадений = 0;
Для Каждого Найденный Из Кластеры Цикл
Если НРег(Строка(Найденный.ИдентификаторКластера)) = НРег(СокрЛП(ИдентификаторКластера))
И Найденный.Имя = "УчебныйКластер85" Тогда
Кластер = Найденный;
Совпадений = Совпадений + 1;
КонецЕсли;
КонецЦикла;
Если Совпадений <> 1 Тогда
ВызватьИсключение "Нужен один собственный учебный кластер с подтверждённым UUID";
КонецЕсли;
Кластер.ВыполнитьАутентификацию(ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Снимок = Новый Структура;
Снимок.Вставить("UUIDКластера", Строка(Кластер.ИдентификаторКластера));
Снимок.Вставить("ИмяКластера", Кластер.Имя);
Снимок.Вставить("ИмяКомпьютера", Кластер.ИмяКомпьютера);
Снимок.Вставить("Порт", Кластер.Порт);
Снимок.Вставить("ВремяПринудительногоЗавершения", Кластер.ВремяПринудительногоЗавершения);
Снимок.Вставить("ЗавершатьПроблемныеПроцессы", Кластер.ЗавершатьПроблемныеПроцессы);
Снимок.Вставить("ЗаписыватьДампПриЗавершенииПоПревышениюПамяти", Кластер.ЗаписыватьДампПриЗавершенииПоПревышениюПамяти);
Снимок.Вставить("МаксимальныйПериодПревышенияПамяти", Кластер.МаксимальныйПериодПревышенияПамяти);
Снимок.Вставить("ОграничениеПоКоличествуОшибокПроцесса", Кластер.ОграничениеПоКоличествуОшибокПроцесса);
Снимок.Вставить("ОграничениеПоПамятиПроцесса", Кластер.ОграничениеПоПамятиПроцесса);
Снимок.Вставить("ПериодПерезапускаПроцесса", Кластер.ПериодПерезапускаПроцесса);
Снимок.Вставить("РасписаниеПерезапуска", Кластер.РасписаниеПерезапуска);
Если Кластер.ОграничениеПоПамятиПроцесса > 0 Тогда
Снимок.Вставить("ОграничениеПроцессаMiB", Кластер.ОграничениеПоПамятиПроцесса / 1024);
КонецЕсли;
Снимок.Вставить("ПринудительноеЗавершениеВключено", Кластер.ВремяПринудительногоЗавершения <> 0);
Снимок.Вставить("СтарыйПериодНеИспользуетсяС8327", Истина);
Возврат СериализоватьСвойСнимок(Снимок);
КонецФункции
&НаСервереБезКонтекста
Функция СериализоватьСвойСнимок(Снимок)
Писатель = Новый ЗаписьJSON;
Писатель.УстановитьСтроку();
ЗаписатьJSON(Писатель, Снимок);
Возврат Писатель.Закрыть();
КонецФункции
Разбор по шагам
Проверка имени учебной конфигурации и числового порта выполняется до создания соединения. Удалённый адрес не принимается: 127.0.0.1 записан в серверном коде.
У агента порядок аутентификации — пароль, имя; у кластера — имя, пароль. Два вызова имеют разные контракты и не взаимозаменяемы.
Пустой UUID запускает только каталог собственных учебных кластеров. Повторный запуск выбирает один кластер по реальному UUID и точному имени, не первый элемент массива.
В JSON попадают только явно перечисленные диагностические поля. Объект администрирования целиком не сериализуется; пароли и сырая ошибка аутентификации не выводятся.
После любого исхода клиент очищает два поля пароля. Для следующего запуска их нужно вводить заново; остальные параметры и результат остаются на своей форме.
ОграничениеПоПамятиПроцесса по справке задано в килобайтах; делим на 1024 для двоичного представления MiB, не выдаём его за фактическую занятую RAM.
ВремяПринудительногоЗавершения и МаксимальныйПериодПревышенияПамяти — интервалы в секундах, но относятся к разным причинам завершения.
С версии сервера 8.3.27 ПериодПерезапускаПроцесса не используется. Для 8.5.1 снимок показывает сохранённое значение и отдельное предупреждение, а не обещает перезапуск по нему.
РасписаниеПерезапуска — строка пяти полей cron; непустое расписание рабочего сервера имеет приоритет над кластерным. В этом уроке расписание не разбирается и не исполняется.
Как проверить результат
UUID и имя совпадают с собственным выбранным кластером. В JSON есть все поля политики; числовые значения сравните со своей консолью администрирования.
СтарыйПериодНеИспользуетсяС8327 равен true для рассматриваемой платформы 8.5.1. Не ждите перезапуска по этому старому свойству.
Если ВремяПринудительногоЗавершения=0, производный флаг false. Это отключение принудительного завершения по этому интервалу, не обещание отсутствия других механизмов остановки.
Ожидаемый результат
Получен безопасный снимок настроек, пригодный для диагностики причин перезапусков без изменения параметров.
На что обратить внимание
Имя и loopback-адрес — защитные условия учебного сценария, не замена правам администратора и сетевой защите. Не переименовывайте рабочий кластер ради обхода проверки.
Свойства настроек могут быть записываемыми, но этот урок их только читает. Нет Записать, Удалить, Прервать или Отключить и нет автоматического исправления конфигурации.
Снимок меняется со временем. Пустая коллекция и нулевое показание имеют разные причины; проверяйте подготовку, включённые метрики и интервалы наблюдения.
Расширенная серверная ошибка может содержать чувствительные сведения. Клиент показывает нейтральную причину; диагностируйте свой стенд в отладчике, не публикуя учётные данные.
Платформа и ras должны соответствовать установленной версии. Чтение свойства не доказывает, что этот параметр используется текущей версией сервера.
ОграничениеПоКоличествуОшибокПроцесса описывает допустимое отклонение ошибок на запрос в минуту от среднего, не абсолютное число всех ошибок.
Лимит памяти процесса относится к виртуальному адресному пространству. Не сравнивайте бездумно его с рабочим набором процесса или общей физической RAM.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.