Допустимое отклонение количества ошибок сервера

09.09.2014

Мониторинг состояния кластера

Реализовано в версии 8.3.6.1977.

1С:Предприятие используется для автоматизации довольно широкого круга задач. Вопрос надёжности, безусловно, важен для каждой из этих задач. Однако есть две области применения 1С:Предприятия, в которых надёжность системы является не просто важной, а очень-очень важной. Это корпоративные внедрения и облачные сервисы.

В этих областях, как мы считаем, есть два направления для повышения надёжности:

  1. Повышение качества за счёт уменьшения количества ошибок. Это касается как платформы, так и прикладных решений;
  2. Повышение защищённости системы от последствий ошибок.

Мы работаем в обоих направлениях. И в этой статье мы хотим рассказать про очередной шаг в направлении №2.

Этот шаг заключается в том, чтобы повысить защищённость сервера 1С:Предприятия от ошибок, которые могут возникнуть в его рабочих процессах. Это могут быть самые разные ошибки. Они могут быть следствием некорректной работы платформы. Или они могут возникнуть в результате выполнения некорректного прикладного кода, который исполняют рабочие процессы сервера.

Ошибки в рабочих процессах приводят к нескольким проблемам. Для устранения каждой узкой проблемы можно было бы сделать отдельный механизм. Но мы решили попробовать сделать сразу комплексное решение. Его рабочее название — система мониторинга. Мы понимаем, что название не совсем конкретное, но пока остановились на нём.

Суть системы мониторинга можно описать фразой из известной шутки: «В Одессе быстро поднятое не считается упавшим». А если говорить серьёзно, то задача системы мониторинга в том, чтобы своевременно обнаружить проблему и автоматически её исправить.

Систему мониторинга мы внедрили в процесс агента сервера. Каждые 10 секунд она производит опрос процессов кластера. В кластер может объединяться несколько рабочих серверов, каждым из которых управляет собственный агент сервера. Поэтому опрос процессов кластера производит только агент, управляющий центральным сервером:

Опрашиваются все процессы, функционирующие в кластере: менеджеры кластера, рабочие процессы. Процессы, исполняемые на рабочих серверах, опрашиваются через агентов этих серверов. Таким образом дополнительно проверяется ещё и работоспособность самих агентов.

Каждый процесс система мониторинга проверяет по следующим критериям:

  • Соединение с процессом; оно должно быть установлено в течение 20 секунд;
  • Стандартный запрос (тест скорости выполнения, соединения с базой данных, дисковые операции);
  • Объем памяти, занимаемой процессом;
  • Количество ошибок на количество запросов (сообщений типа EXCP на сообщения типа CALL в технологическом журнале в минуту);
  • Завершение процессов, удаленных из реестра кластера; такие процессы должны завершиться в течение 20 минут.

Результаты проверки записываются в технологический журнал.

Для настройки критерия Анализ количества ошибок на количество запросов мы ввели новую опцию Допустимое отклонение количества ошибок сервера. Её нужно задавать в процентном отношении от среднего значения по остальным процессам. Например, вы установили её в значение 50. При этом среднее количество ошибок на запрос в минуту за последние 5 минут было 100. Тогда проблемными будут признаны такие процессы, которые вызвали более 150 ошибок на запрос в минуту.

Процесс может быть признан проблемным и по другим критериям (кроме критерия Стандартный запрос). Проблемные процессы система мониторинга может завершать самостоятельно, создавая перед этим дамп памяти процесса. Эта возможность включается опцией Принудительно завершать проблемные процессы.

Для того чтобы вы могли интерактивно и программно управлять опциями системы мониторинга, мы внесли необходимые доработки в утилиту администрирования клиент-серверного варианта, добавили новые методы объекту V83.COMConnector, добавили новые параметры в кроссплатформенный интерфейс администрирования кластера и новые события в технологический журнал.

С началом использования системы мониторинга для нас будет важно понять, насколько правильно мы выбрали стратегию определения уровня «здоровья» рабочего процесса. Нет ли ложных срабатываний, качественно ли определяются реальные проблемы. В этом смысле самым сложным нам представляется параметр Допустимое отклонение количества ошибок сервера. Потому что это косвенный способ оценки. Будем вместе с вами смотреть на практике, хорошо ли это работает.

Система мониторинга не единственное решение, направленное на повышение надёжности. В ближайшее время мы расскажем и о другом усовершенствовании, которое сделает работу кластера более прогнозируемой при разрывах сетевых соединений. 

Теги:
кластер 
8.3.6 

FAQ

Ошибка «Свойства кластера ‘Допустимое отклонение количества ошибок сервера’, ‘Режим распределения нагрузки’ или свойства рабочего сервера ‘Максимальный объем памяти рабочих процессов’, ‘Безопасный расход памяти за один вызов’, ‘Объем памяти рабочих процессов, до которого сервер считается производительным’, ‘Количество ИБ на процесс’ содержат значения, отличные от значений по умолчанию.» возникает при попытке подключения 11-го и более пользователя к любой базе данных, расположенной не сервере 1С:Предприятие 8 с версией платформы 8.3.12.1852, 8.3.13.1791 и 8.3.14.1592 и выше. Проблема наблюдается только у пользователей с лицензиями уровня ПРОФ, а также уровня КОРП, которые еще не обновили лицензии.

Все дело в том, что фирма 1С прекратила бета-тестирование корпоративного функционала и ввела с 9 сентября 2019 года ограничение на его использование на техническом уровне. Теперь для того, чтобы использовать в информационной базе более 500 пользователей или «крутить» ее на сервере с 12 физическими ядрами необходимо наличие лицензии уровня КОРП.

При этом, если с информационной базой работают не более 10 пользователей, то функционал КОРП доступен даже с лицензиями уровня ПРОФ. Думаю, лазейка оставлена для разработчиков прикладных решений для крупных внедрений.

Как решить проблему?

Если Ваш сервер удовлетворяет требованиям лицензии ПРОФ (имеет до 12 физических ядер), то можно решить проблему малой кровью. Чтобы пользователи смогли подключаться к базе, необходимо изменить настройки кластера на значения по умолчанию:

  • Допустимое отклонение количества ошибок сервера = 0
  • Режим распределения нагрузки = По производительности

а также настройки рабочего сервера:

  • Максимальный объем памяти рабочих процессов = 0
  • Безопасный расход памяти за один вызов = 0
  • Объем памяти рабочих процессов, до которого сервер считается производительным = 0
  • Количество ИБ на процесс = 8

Что делать, если на сервере более 12 ядер?

Вот мои рекомендации (приведены в порядке убывания трудоемкости):

  1. В первую очередь рекомендую обратиться на горячую линию фирмы 1С и уточнить все нюансы. Возможно есть шанс обновить лицензии или выполнить их upgrade;
  2. Выполнить откат обновления платформы (надеюсь, вы не их тех людей, которые обновляют платформу сразу на боевом сервере без предварительного тестирования) на последнюю рабочую версию. Будьте внимательны, т.к. на некоторых релизах downgrade невозможен без реструктуризации базы данных и возможной потери данных;
  3. Переконфигурировать ваш физический сервер в виртуальный, разделив тем самым ресурсы между виртуальными серверами так, чтобы это удовлетворяло требованиям лицензии ПРОФ (до 12 физических ядер);

Читайте также:

  • Изменение работы лицензий «1С:Предприятия 8″ в крупных внедрениях

Поделиться страницей в соц.сетях

Метки: Метки Клиент-сервер

09.09.2014

Мониторинг состояния кластера

Реализовано в версии 8.3.6.1977.

1С:Предприятие используется для автоматизации довольно широкого круга задач. Вопрос надёжности, безусловно, важен для каждой из этих задач. Однако есть две области применения 1С:Предприятия, в которых надёжность системы является не просто важной, а очень-очень важной. Это корпоративные внедрения и облачные сервисы.

В этих областях, как мы считаем, есть два направления для повышения надёжности:

  1. Повышение качества за счёт уменьшения количества ошибок. Это касается как платформы, так и прикладных решений;
  2. Повышение защищённости системы от последствий ошибок.

Мы работаем в обоих направлениях. И в этой статье мы хотим рассказать про очередной шаг в направлении №2.

Этот шаг заключается в том, чтобы повысить защищённость сервера 1С:Предприятия от ошибок, которые могут возникнуть в его рабочих процессах. Это могут быть самые разные ошибки. Они могут быть следствием некорректной работы платформы. Или они могут возникнуть в результате выполнения некорректного прикладного кода, который исполняют рабочие процессы сервера.

Ошибки в рабочих процессах приводят к нескольким проблемам. Для устранения каждой узкой проблемы можно было бы сделать отдельный механизм. Но мы решили попробовать сделать сразу комплексное решение. Его рабочее название — система мониторинга. Мы понимаем, что название не совсем конкретное, но пока остановились на нём.

Суть системы мониторинга можно описать фразой из известной шутки: «В Одессе быстро поднятое не считается упавшим». А если говорить серьёзно, то задача системы мониторинга в том, чтобы своевременно обнаружить проблему и автоматически её исправить.

Систему мониторинга мы внедрили в процесс агента сервера. Каждые 10 секунд она производит опрос процессов кластера. В кластер может объединяться несколько рабочих серверов, каждым из которых управляет собственный агент сервера. Поэтому опрос процессов кластера производит только агент, управляющий центральным сервером:

Опрашиваются все процессы, функционирующие в кластере: менеджеры кластера, рабочие процессы. Процессы, исполняемые на рабочих серверах, опрашиваются через агентов этих серверов. Таким образом дополнительно проверяется ещё и работоспособность самих агентов.

Каждый процесс система мониторинга проверяет по следующим критериям:

  • Соединение с процессом; оно должно быть установлено в течение 20 секунд;
  • Стандартный запрос (тест скорости выполнения, соединения с базой данных, дисковые операции);
  • Объем памяти, занимаемой процессом;
  • Количество ошибок на количество запросов (сообщений типа EXCP на сообщения типа CALL в технологическом журнале в минуту);
  • Завершение процессов, удаленных из реестра кластера; такие процессы должны завершиться в течение 20 минут.

Результаты проверки записываются в технологический журнал.

Для настройки критерия Анализ количества ошибок на количество запросов мы ввели новую опцию Допустимое отклонение количества ошибок сервера. Её нужно задавать в процентном отношении от среднего значения по остальным процессам. Например, вы установили её в значение 50. При этом среднее количество ошибок на запрос в минуту за последние 5 минут было 100. Тогда проблемными будут признаны такие процессы, которые вызвали более 150 ошибок на запрос в минуту.

Процесс может быть признан проблемным и по другим критериям (кроме критерия Стандартный запрос). Проблемные процессы система мониторинга может завершать самостоятельно, создавая перед этим дамп памяти процесса. Эта возможность включается опцией Принудительно завершать проблемные процессы.

Для того чтобы вы могли интерактивно и программно управлять опциями системы мониторинга, мы внесли необходимые доработки в утилиту администрирования клиент-серверного варианта, добавили новые методы объекту V83.COMConnector, добавили новые параметры в кроссплатформенный интерфейс администрирования кластера и новые события в технологический журнал.

С началом использования системы мониторинга для нас будет важно понять, насколько правильно мы выбрали стратегию определения уровня «здоровья» рабочего процесса. Нет ли ложных срабатываний, качественно ли определяются реальные проблемы. В этом смысле самым сложным нам представляется параметр Допустимое отклонение количества ошибок сервера. Потому что это косвенный способ оценки. Будем вместе с вами смотреть на практике, хорошо ли это работает.

Система мониторинга не единственное решение, направленное на повышение надёжности. В ближайшее время мы расскажем и о другом усовершенствовании, которое сделает работу кластера более прогнозируемой при разрывах сетевых соединений. 

Теги:
кластер 
8.3.6 

Несколько рабочих процессов на одном сервере дают возможность эффективно использовать объем оперативной памяти и ресурсы процессора для выполнения запросов, а также подключить клиентский сеанс к другому рабочему процессу при «крахе» текущего.
За понимание, что запущено на конкретном сервере, отвечает программа «Агент сервера» (ragent). Остановка агента сервера сделает сервер недоступным для использования кластером. Свою информацию агент хранит в файле srvribrg.lst.

Информацией о рабочих базах, задействованных рабочих процессах владеет «Менеджер сервера» (rmngr). Эту информацию он хранит в файле 1CV8Reg.lst. Остановка менеджера сервера может привести к перезапуску клиентских приложений в случаи удачного рестарта менеджера или к полной остановке работы рабочих серверов всего кластера.

1С: Предприятие допускает возможность создания на одном сервере несколько независимых кластеров. Каждый из них идентифицируется в сети уникальным «IP портом» и уникальным номером в служебных файлах. Первый кластер по умолчанию получает порт 1541.

Для управления кластером предназначена оснастка «Серверы предприятия».
Подключаться к серверам можно по имени или IP адресу сервера.

Оптимизация 1С

Агент сервера

Агент сервера «знает» о всех кластерах, которые запущены на сервере. Эта информация хранится в файле srvribrg.lst со списком кластеров и администраторов списка. Основной порт агента – 1540. На каждом Рабочем сервере может быть запущен только один агент, обслуживающей все возможные кластера на данном сервере.

Разберемся поподробнее со свойствами кластера

Оптимизация 1С

Интервал перезапуска

Данный параметр перезапускает рабочие процессы сервера 1С по заданному значению в секундах. Обычно параметр используется на тех серверах приложений, которые имеют 32х разрядную систему, так как там объем памяти ограничен ~ 3.7 гб., если используется операционная система 64х разрядная, а сервер приложений 32х. Если же ОС использует 32х разрядную архитектуру, тогда общий объем потребления памяти рабочего процесса составляет ~ 1.7 гб. И пользователи часто могут получать сообщение об ошибке вида “Недостаточно памяти на сервере 1С Предприятие”. Самый простой способ избежать данной ошибки, это сделать перезапуск рабочих процессов, к примеру 86400 секунд (1 сутки). При изменении параметра, отсчет времени начинается со старта службы сервера приложений 1С.

Допустимый объем памяти

Перезапуск рабочих процессов по достижению определенного порога занятой памяти рабочим процессом в килобайтах.

Интервал превышения допустимого объема памяти

Означает, если в течении заданного количества секунд произойдет превышение памяти, заданного в параметре “допустимый объем памяти”, тогда сервер 1С примет решение перезапустить рабочий процесс.

Допустимое отклонение количества ошибок сервера

Вычисляется следующим образом. У нас есть серверные вызовы, которые возможно увидеть в технологическом журнале по событию “CALL” а также есть различные исключительные ситуации, которые в технологическом журнале можно увидеть по событию “EXCP”. Платформа вычисляет соотношение данных событий. Предполагается, что данных событий должно быть приблизительно одинаково. Если же в каком-либо рабочем процессе данное соотношение превышает соотношение данных событий в других рабочих процессах на некую значительную величину, то такой рабочий процесс признается проблемным. Как раз данная величина задается в этом параметре. Рекомендуемое значение – 50.

Принудительно завершать проблемные процессы

Если мы включим данный параметр, то по параметру “допустимое отклонение количества ошибок сервера”, проблемные процессы будут завершены. Если параметр выключен, то платформа выводит событие технологического журнала “ATTN”, которое обозначает проблемный процесс.

Выключенные процессы останавливать через

Если сработает один из параметров “интервал перезапуска” или “допустимый объем памяти, то при перезапуске рабочего процесса, он может “отвалиться”. Если клиент во время перезапуска не обращается к серверу (бездействует), то при следующем обращении он плавно переключится на новый рабочий процесс. Если же клиент обращается к серверу в момент перезапуска рабочего процесса, то в данном случае он получит сообщение об ошибке и завершит свою работу. Чтобы этого не произошло, необходимо задать значение данного параметра в секундах. Обычно хватает 120 секунд. За это время рабочий процесс успеет обработать текущие запросы клиентов и перевести их на новый рабочий процесс. Тех активных клиентов, которых процесс не успел обработать, завершается и клиенты возможно могут получить ошибку.

Уровень отказоустойчивости

Данная настройка живет сама по себе не зависимо от количества центральных серверов. Уровень отказоустойчивости может принимать любые значения. К примеру, уровень отказоустойчивости = 1, тогда каждый сеанс пользователя удваивается. Если уровень отказоустойчивости = 2, то каждый сеанс умножается на 3. Также возрастает нагрузка на сервер. При изменении уровня отказоустойчивости, если у нас центральный сервер, он реплицирует на каждый центральный сервер: “реестр кластера”, “сервис блокировок кластера”. Также идет репликация на остальные серверы таких сервисов, как “сервис сеансовых данных”, “сервис оперативной отметки времени”, “сервис блокировок объектов”, “сервис лицензирования”, “сервис нумерации”. Среди них самым тяжелым является “сервис сеансовых данных”.

Режим распределения нагрузки

По производительности. Когда клиентское соединение подключается, оно будет подключено к тому серверу, где присутствует рабочий процесс с более доступной производительностью. Доступная производительность задается в свойствах рабочего процесса:

Оптимизация 1С

Доступная производительность на уровне 1С вычисляется следующим образом: ко всем рабочим процессам делается эталонный серверный вызов 1 раз в 10 минут и замеряется время данного вызова. Полученное число делится на 10000 (десять тысяч) и механизмами сервера приложения вычисляется эталонное время. В том случае, если производительность какого-либо рабочего процесса стала на 25 % меньше, чем у остальных, с данного рабочего процесса соединения начинают уходить на остальные рабочие процессы до тех пор, пока все соединения не уйдут.

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

Менеджер кластера

Менеджер кластера отвечает за работу кластера. У каждого кластера свой Менеджер. Менеджер хранит информацию о кластере в файле 1CV8Reg.lst (реестр кластера). У каждого Менеджера кластера также есть свой порт на Рабочем сервере. Для первого кластера по умолчанию порт Менеджера 1541. Именно этот порт отображается в оснастке «Серверы 1С: Предприятия» в ветке «Кластеры», идентифицируя кластер.
Менеджер принимает запросы от клиентской части 1С: Предприятия и принимает решение, какому Рабочему процессу отдать этот запрос на обслуживание.

Для взаимодействия с рабочими процессами Менеджер использует служебный порт.

Рабочий процесс

За «работу с клиентами» отвечает Рабочий процесс. Рабочих процессов в кластере 1С: Предприятия 8 может быть несколько. Количество рабочих процессов не создается вручную, а рассчитывается исходя из описаний требований задач по отказоустойчивости и надежности. Менеджер сервера решает, какой из рабочих процессов будет обслуживать клиентское подключение. Для клиентских подключений Рабочим процессам по умолчанию выделяется диапазон IP портов 1560 – 1591. Кроме этого, каждому Рабочему процессу назначается Служебный порт для обмена с менеджером кластера.

Настройки рабочего сервера, по документации фирмы 1С, можно изменять только в версии КОРП сервера приложений 1С. По факту настройки работают как в версии КОРП, так и в версии ПРОФ. Если данные настройки использовать в версии ПРОФ, это будет являться нарушением лицензионного соглашения.

Оптимизация 1с

Максимальный объем памяти рабочих процессов

Данный параметр сам по себе ничего не ограничивает. Он работает в связке с параметром “безопасный расход памяти за один вызов”. Представим, что все наши рабочие процессы суммарно достигли приблизительно расхода по памяти от заданного значения данного параметра. И теперь некий пользователь хочет сделать некий серверный вызов, который хочет потребить большое число памяти. Как только серверный вызов превысит объем заданной памяти в данном параметре на объем памяти параметра “безопасный расход памяти за один вызов”, именно данный пользователь получит ошибку вида: “превышен безопасный расход памяти за один клиент-серверный вызов”.  Это нужно для того, чтобы один какой-либо пользователь не смог “завалить” рабочий сервер. Значение параметра 0 равно 80 % памяти, установленной на сервере 1С.

Безопасный расход памяти за один вызов

Значение 0 (по умолчанию) составляет 5 % от значения параметра “максимальный объем памяти рабочих процессов”. Может быть значение -1. Это означает, что любой клиент-серверный вызов, превысивший заданное значение параметра “максимальный объем памяти рабочих процессов”.

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

Означает, если установлено значение и рабочие процессы заняли объем памяти, указанный в данном параметре, сервер будет продолжать работать, но не будет принимать новые подключения до тех пор, пока память не освободится.

Количество ИБ на процесс

Возможно снижение производительности, когда много информационных баз и один рабочий процесс. Поэтому данным параметром возможно уменьшить количество баз на 1 процесс. Если поставить значение 1 (в большинстве случаем это работает достаточно оптимально), то на каждую информационную базу будет создаваться новый рабочий процесс (rphost). 

Количество соединений на процесс

Так же как параметр выше, только зависит от количества соединений на процесс. Значение 0 будет означать, что на каждом рабочем сервере будет только один рабочий процесс.

Менеджер под каждый сервис

У каждого центрального рабочего сервера есть главный менеджер кластера с определенными сервисами:

Оптимизация 1С

Они выполняются одной службой “rmngr”. Представим, что данная служба начинает потреблять много памяти или тратить процессорные ресурсы. Обычно есть несколько типичных подозреваемых. Но вдруг вы встали в “тупик” и не можете понять, что именно нагружает службу, вы можете установить галочку “менеджер под каждый сервис”, служба разобьется на 21 процесс (таково количество сервисов в главном менеджере кластера). И соответственно по PID процесса можно будет вычислить, какой сервис нагружает систему.

Центральный сервер

Это сервер, у которого хранится реестр кластера в файле 1СV8Clst.lst. В файле хранится список баз, список администраторов кластера, список требования назначения функциональности, список профилей безопасности, в общем все настройки кластера. Данный файл присутствует только там, где установлена галочка “центральный сервер”. Центральных серверов может быть несколько. Так же на центральных серверах присутствуют такие сервисы, как “сервис блокировки кластера”, “сервис конфигурации кластера”. Пока хотя бы один центральный сервер работоспособен, кластер функционирует. Как только самый последний центральный сервер вышел из строя, кластер становится неработоспособным не зависимо от настроек отказоустойчивости.

Требование назначения функциональности

Кластер серверов 1С Предприятия 8.3 предоставляет некоторый набор функциональных возможностей (называемые объекты требований), распределением которых между рабочими серверами внутри кластера можно управлять. Например, можно указать, что все фоновые задания в кластере будут выполняться на выбранном рабочем сервере. Для того, чтобы поместить соединение или сервис кластера на какой-либо рабочий сервер, необходимо для выбранного рабочего сервера создать требование назначения функциональности. Это требование определяет возможность или невозможность конкретного сервера выполнять ту или иную работу. Рассмотрим более подробно, что собой представляет требование назначения функциональности.

Перенос пользовательских соединений

Допустим мы хотим, чтобы пользовательские соединения работали на рабочем сервере № 1, но если этот сервер выходит из строя, мы хотим, чтобы они переходили на другой рабочий сервер № 2

Для этого нам необходимо на сервере № 1 создать требование назначения функциональности:

Оптимизация 1с

На сервере № 2 прописать такие же настройки, но изменить приоритет:

Оптимизация 1с

Важность приоритета реализована наоборот. То есть, приоритет 1 выше, чем приоритет 2.

Вывести рабочий сервер из кластера

Вывести рабочий сервер из кластера мы можем и просто, удалив его из списка, но в таком случае всех пользователей “выкинет” из системы. Чтобы более безболезненно осуществить вывод, можно сделать следующее:

Создать требование назначения функциональности со следующими настройками:

Оптимизация 1С.jpg

Данная настройка означает, что новые подключения к этому рабочему серверу не будут. Те пользователи, которые работали, они продолжат работу, но постепенно перейдут на другие рабочие сервера.

Сервис лицензирования

Вынести сервис лицензирования на отдельный сервер. Это хорошо тем, что программные лицензии можно привязать к определенному компьютеру. Создадим требование назначения функциональности со следующими настройками:

9.jpg

Фоновые задания

С выходом платформы 8.3.7, фоновые задания разделились на 2 группы:

1.      Фоновые задания, вызываемые из кода конфигурации

2.      Регламентные задания

Поэтому необходимо несколько настроек назначения функциональности:

1.      Запретить все фоновые задания

10.jpg

1.      Запретить все регламентные задания

Оптимизация 1С

1.      Чтобы фоновые задания выполнялись быстро, необходимо добавить сеансовые данные для фоновых и регламентных заданий

Оптимизация 1С.jpg

1.      Запретить остальные сервисы

13.jpg

После создания необходимых требований назначения функциональности, необходимо их применить:

Оптимизация 1С

Частичное – применение, которое не нарушит работу пользователей

Полное – применение, которое может нарушить работу пользователей.

На практике ни разу не встречалось, чтобы при полном применении нарушало работу пользователей или что-то подобное. Но все возможно, имейте ввиду. После применения, перезапуск службы сервера приложений 1С не обязателен.

Вы всегда можете обратиться к специалистам по оптимизации работы 1С, наш практический опыт сэкономит Ваше время. 

Несколько рабочих процессов на одном сервере дают возможность эффективно использовать объем оперативной памяти и ресурсы процессора для выполнения запросов, а также подключить клиентский сеанс к другому рабочему процессу при «крахе» текущего.
За понимание, что запущено на конкретном сервере, отвечает программа «Агент сервера» (ragent). Остановка агента сервера сделает сервер недоступным для использования кластером. Свою информацию агент хранит в файле srvribrg.lst.

Информацией о рабочих базах, задействованных рабочих процессах владеет «Менеджер сервера» (rmngr). Эту информацию он хранит в файле 1CV8Reg.lst. Остановка менеджера сервера может привести к перезапуску клиентских приложений в случаи удачного рестарта менеджера или к полной остановке работы рабочих серверов всего кластера.

1С: Предприятие допускает возможность создания на одном сервере несколько независимых кластеров. Каждый из них идентифицируется в сети уникальным «IP портом» и уникальным номером в служебных файлах. Первый кластер по умолчанию получает порт 1541.

Для управления кластером предназначена оснастка «Серверы предприятия».
Подключаться к серверам можно по имени или IP адресу сервера.

Оптимизация 1С

Агент сервера

Агент сервера «знает» о всех кластерах, которые запущены на сервере. Эта информация хранится в файле srvribrg.lst со списком кластеров и администраторов списка. Основной порт агента – 1540. На каждом Рабочем сервере может быть запущен только один агент, обслуживающей все возможные кластера на данном сервере.

Разберемся поподробнее со свойствами кластера

Оптимизация 1С

Интервал перезапуска

Данный параметр перезапускает рабочие процессы сервера 1С по заданному значению в секундах. Обычно параметр используется на тех серверах приложений, которые имеют 32х разрядную систему, так как там объем памяти ограничен ~ 3.7 гб., если используется операционная система 64х разрядная, а сервер приложений 32х. Если же ОС использует 32х разрядную архитектуру, тогда общий объем потребления памяти рабочего процесса составляет ~ 1.7 гб. И пользователи часто могут получать сообщение об ошибке вида “Недостаточно памяти на сервере 1С Предприятие”. Самый простой способ избежать данной ошибки, это сделать перезапуск рабочих процессов, к примеру 86400 секунд (1 сутки). При изменении параметра, отсчет времени начинается со старта службы сервера приложений 1С.

Допустимый объем памяти

Перезапуск рабочих процессов по достижению определенного порога занятой памяти рабочим процессом в килобайтах.

Интервал превышения допустимого объема памяти

Означает, если в течении заданного количества секунд произойдет превышение памяти, заданного в параметре “допустимый объем памяти”, тогда сервер 1С примет решение перезапустить рабочий процесс.

Допустимое отклонение количества ошибок сервера

Вычисляется следующим образом. У нас есть серверные вызовы, которые возможно увидеть в технологическом журнале по событию “CALL” а также есть различные исключительные ситуации, которые в технологическом журнале можно увидеть по событию “EXCP”. Платформа вычисляет соотношение данных событий. Предполагается, что данных событий должно быть приблизительно одинаково. Если же в каком-либо рабочем процессе данное соотношение превышает соотношение данных событий в других рабочих процессах на некую значительную величину, то такой рабочий процесс признается проблемным. Как раз данная величина задается в этом параметре. Рекомендуемое значение – 50.

Принудительно завершать проблемные процессы

Если мы включим данный параметр, то по параметру “допустимое отклонение количества ошибок сервера”, проблемные процессы будут завершены. Если параметр выключен, то платформа выводит событие технологического журнала “ATTN”, которое обозначает проблемный процесс.

Выключенные процессы останавливать через

Если сработает один из параметров “интервал перезапуска” или “допустимый объем памяти, то при перезапуске рабочего процесса, он может “отвалиться”. Если клиент во время перезапуска не обращается к серверу (бездействует), то при следующем обращении он плавно переключится на новый рабочий процесс. Если же клиент обращается к серверу в момент перезапуска рабочего процесса, то в данном случае он получит сообщение об ошибке и завершит свою работу. Чтобы этого не произошло, необходимо задать значение данного параметра в секундах. Обычно хватает 120 секунд. За это время рабочий процесс успеет обработать текущие запросы клиентов и перевести их на новый рабочий процесс. Тех активных клиентов, которых процесс не успел обработать, завершается и клиенты возможно могут получить ошибку.

Уровень отказоустойчивости

Данная настройка живет сама по себе не зависимо от количества центральных серверов. Уровень отказоустойчивости может принимать любые значения. К примеру, уровень отказоустойчивости = 1, тогда каждый сеанс пользователя удваивается. Если уровень отказоустойчивости = 2, то каждый сеанс умножается на 3. Также возрастает нагрузка на сервер. При изменении уровня отказоустойчивости, если у нас центральный сервер, он реплицирует на каждый центральный сервер: “реестр кластера”, “сервис блокировок кластера”. Также идет репликация на остальные серверы таких сервисов, как “сервис сеансовых данных”, “сервис оперативной отметки времени”, “сервис блокировок объектов”, “сервис лицензирования”, “сервис нумерации”. Среди них самым тяжелым является “сервис сеансовых данных”.

Режим распределения нагрузки

По производительности. Когда клиентское соединение подключается, оно будет подключено к тому серверу, где присутствует рабочий процесс с более доступной производительностью. Доступная производительность задается в свойствах рабочего процесса:

Оптимизация 1С

Доступная производительность на уровне 1С вычисляется следующим образом: ко всем рабочим процессам делается эталонный серверный вызов 1 раз в 10 минут и замеряется время данного вызова. Полученное число делится на 10000 (десять тысяч) и механизмами сервера приложения вычисляется эталонное время. В том случае, если производительность какого-либо рабочего процесса стала на 25 % меньше, чем у остальных, с данного рабочего процесса соединения начинают уходить на остальные рабочие процессы до тех пор, пока все соединения не уйдут.

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

Менеджер кластера

Менеджер кластера отвечает за работу кластера. У каждого кластера свой Менеджер. Менеджер хранит информацию о кластере в файле 1CV8Reg.lst (реестр кластера). У каждого Менеджера кластера также есть свой порт на Рабочем сервере. Для первого кластера по умолчанию порт Менеджера 1541. Именно этот порт отображается в оснастке «Серверы 1С: Предприятия» в ветке «Кластеры», идентифицируя кластер.
Менеджер принимает запросы от клиентской части 1С: Предприятия и принимает решение, какому Рабочему процессу отдать этот запрос на обслуживание.

Для взаимодействия с рабочими процессами Менеджер использует служебный порт.

Рабочий процесс

За «работу с клиентами» отвечает Рабочий процесс. Рабочих процессов в кластере 1С: Предприятия 8 может быть несколько. Количество рабочих процессов не создается вручную, а рассчитывается исходя из описаний требований задач по отказоустойчивости и надежности. Менеджер сервера решает, какой из рабочих процессов будет обслуживать клиентское подключение. Для клиентских подключений Рабочим процессам по умолчанию выделяется диапазон IP портов 1560 – 1591. Кроме этого, каждому Рабочему процессу назначается Служебный порт для обмена с менеджером кластера.

Настройки рабочего сервера, по документации фирмы 1С, можно изменять только в версии КОРП сервера приложений 1С. По факту настройки работают как в версии КОРП, так и в версии ПРОФ. Если данные настройки использовать в версии ПРОФ, это будет являться нарушением лицензионного соглашения.

Оптимизация 1с

Максимальный объем памяти рабочих процессов

Данный параметр сам по себе ничего не ограничивает. Он работает в связке с параметром “безопасный расход памяти за один вызов”. Представим, что все наши рабочие процессы суммарно достигли приблизительно расхода по памяти от заданного значения данного параметра. И теперь некий пользователь хочет сделать некий серверный вызов, который хочет потребить большое число памяти. Как только серверный вызов превысит объем заданной памяти в данном параметре на объем памяти параметра “безопасный расход памяти за один вызов”, именно данный пользователь получит ошибку вида: “превышен безопасный расход памяти за один клиент-серверный вызов”.  Это нужно для того, чтобы один какой-либо пользователь не смог “завалить” рабочий сервер. Значение параметра 0 равно 80 % памяти, установленной на сервере 1С.

Безопасный расход памяти за один вызов

Значение 0 (по умолчанию) составляет 5 % от значения параметра “максимальный объем памяти рабочих процессов”. Может быть значение -1. Это означает, что любой клиент-серверный вызов, превысивший заданное значение параметра “максимальный объем памяти рабочих процессов”.

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

Означает, если установлено значение и рабочие процессы заняли объем памяти, указанный в данном параметре, сервер будет продолжать работать, но не будет принимать новые подключения до тех пор, пока память не освободится.

Количество ИБ на процесс

Возможно снижение производительности, когда много информационных баз и один рабочий процесс. Поэтому данным параметром возможно уменьшить количество баз на 1 процесс. Если поставить значение 1 (в большинстве случаем это работает достаточно оптимально), то на каждую информационную базу будет создаваться новый рабочий процесс (rphost). 

Количество соединений на процесс

Так же как параметр выше, только зависит от количества соединений на процесс. Значение 0 будет означать, что на каждом рабочем сервере будет только один рабочий процесс.

Менеджер под каждый сервис

У каждого центрального рабочего сервера есть главный менеджер кластера с определенными сервисами:

Оптимизация 1С

Они выполняются одной службой “rmngr”. Представим, что данная служба начинает потреблять много памяти или тратить процессорные ресурсы. Обычно есть несколько типичных подозреваемых. Но вдруг вы встали в “тупик” и не можете понять, что именно нагружает службу, вы можете установить галочку “менеджер под каждый сервис”, служба разобьется на 21 процесс (таково количество сервисов в главном менеджере кластера). И соответственно по PID процесса можно будет вычислить, какой сервис нагружает систему.

Центральный сервер

Это сервер, у которого хранится реестр кластера в файле 1СV8Clst.lst. В файле хранится список баз, список администраторов кластера, список требования назначения функциональности, список профилей безопасности, в общем все настройки кластера. Данный файл присутствует только там, где установлена галочка “центральный сервер”. Центральных серверов может быть несколько. Так же на центральных серверах присутствуют такие сервисы, как “сервис блокировки кластера”, “сервис конфигурации кластера”. Пока хотя бы один центральный сервер работоспособен, кластер функционирует. Как только самый последний центральный сервер вышел из строя, кластер становится неработоспособным не зависимо от настроек отказоустойчивости.

Требование назначения функциональности

Кластер серверов 1С Предприятия 8.3 предоставляет некоторый набор функциональных возможностей (называемые объекты требований), распределением которых между рабочими серверами внутри кластера можно управлять. Например, можно указать, что все фоновые задания в кластере будут выполняться на выбранном рабочем сервере. Для того, чтобы поместить соединение или сервис кластера на какой-либо рабочий сервер, необходимо для выбранного рабочего сервера создать требование назначения функциональности. Это требование определяет возможность или невозможность конкретного сервера выполнять ту или иную работу. Рассмотрим более подробно, что собой представляет требование назначения функциональности.

Перенос пользовательских соединений

Допустим мы хотим, чтобы пользовательские соединения работали на рабочем сервере № 1, но если этот сервер выходит из строя, мы хотим, чтобы они переходили на другой рабочий сервер № 2

Для этого нам необходимо на сервере № 1 создать требование назначения функциональности:

Оптимизация 1с

На сервере № 2 прописать такие же настройки, но изменить приоритет:

Оптимизация 1с

Важность приоритета реализована наоборот. То есть, приоритет 1 выше, чем приоритет 2.

Вывести рабочий сервер из кластера

Вывести рабочий сервер из кластера мы можем и просто, удалив его из списка, но в таком случае всех пользователей “выкинет” из системы. Чтобы более безболезненно осуществить вывод, можно сделать следующее:

Создать требование назначения функциональности со следующими настройками:

Оптимизация 1С.jpg

Данная настройка означает, что новые подключения к этому рабочему серверу не будут. Те пользователи, которые работали, они продолжат работу, но постепенно перейдут на другие рабочие сервера.

Сервис лицензирования

Вынести сервис лицензирования на отдельный сервер. Это хорошо тем, что программные лицензии можно привязать к определенному компьютеру. Создадим требование назначения функциональности со следующими настройками:

9.jpg

Фоновые задания

С выходом платформы 8.3.7, фоновые задания разделились на 2 группы:

1.      Фоновые задания, вызываемые из кода конфигурации

2.      Регламентные задания

Поэтому необходимо несколько настроек назначения функциональности:

1.      Запретить все фоновые задания

10.jpg

1.      Запретить все регламентные задания

Оптимизация 1С

1.      Чтобы фоновые задания выполнялись быстро, необходимо добавить сеансовые данные для фоновых и регламентных заданий

Оптимизация 1С.jpg

1.      Запретить остальные сервисы

13.jpg

После создания необходимых требований назначения функциональности, необходимо их применить:

Оптимизация 1С

Частичное – применение, которое не нарушит работу пользователей

Полное – применение, которое может нарушить работу пользователей.

На практике ни разу не встречалось, чтобы при полном применении нарушало работу пользователей или что-то подобное. Но все возможно, имейте ввиду. После применения, перезапуск службы сервера приложений 1С не обязателен.

Вы всегда можете обратиться к специалистам по оптимизации работы 1С, наш практический опыт сэкономит Ваше время. 

1c83-server-prof-korp-000.png10 сентября 2019 года вступило в силу анонсированное ранее программное разделение пользовательских лицензий 1С:Предприятие 8 по уровням ПРОФ и КОРП. Нельзя сказать что это произошло неожиданно, данная информация появилась в конце февраля и доводилась до сведения пользователей в том числе и средствами платформы, которая выводила предупреждения при запуске информационной базы, но многие оказались не готовы к изменениям. Данная статья призвана помочь в этой ситуации и расскажет, как правильно выставить настройки, чтобы снова все заработало.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Прежде всего давайте разберемся, что такое лицензии уровня КОРП. Это новый тип лицензий на платформу, введенный еще в 2014 году и предусматривающий предоставление пользователю дополнительных возможностей, а именно:

  • фоновое обновление конфигурации базы данных;
  • дополнительное управление распределением по рабочим серверам кластера в разрезе информационных баз, видов клиентских приложений и фоновых заданий:
    • сервисов кластера;
    • соединений с информационными базами;
  • гибкое управление нагрузкой в кластере:
    • безопасный расход памяти за один вызов;
    • количество ИБ на процесс;
    • объем памяти рабочих процессов, до которого сервер считается производительным;
    • максимальный объем памяти рабочих процессов;
    • стратегия балансировки (по памяти, по производительности);
  • внешнее управление сеансами;
  • механизм управления потреблением ресурсов;
  • профили безопасности;
  • возможность обновления тонкого клиента с сервера;
  • возможность публикации списка баз и обновлений тонкого клиента через http;
  • возможность использования «1С:Сервера взаимодействия».

Но долгое время данное разделение только декларировалось в лицензионном соглашении (которое никто не читает) и по факту все эти возможности были доступны любому пользователю 1С, как говорится, из коробки. Многие из этих возможностей активно использовались пользователями, подразумевающими их как нечто само собой разумеющееся и с сегодняшнего дня это способно вызвать массу проблем. А именно невозможность запустить базу с ошибкой:

Операция не может быть выполнена с текущим составом лицензий.
Свойства кластера ‘Допустимое отклонение количества ошибок сервера’, ‘Режим распределения нагрузки’ или свойства рабочего сервера ‘Максимальный объем памяти рабочих процессов’, ‘Безопасный расход памяти за один вызов’, ‘Объем памяти рабочих процессов, до которого сервер считается производительным’, ‘Количество ИБ на процесс’ содержат значения, отличные от значений по умолчанию. Использование этих функций возможно только для лицензий на платформу уровня КОРП. Обратитесь к администратору для решения вопросов приобретения и установки лицензий уровня КОРП.

1c83-server-prof-korp-001.pngМы, в рамках этой статьи, не будем обсуждать обоснованность такого разделения, хотя, на наш взгляд, лицензии ПРОФ получились очень сильно ограниченными. Но выразим свое недоумение тем, что фирма 1С не предусмотрела легкой возможности перехода. Достаточно одной кнопки или пакетного файла в составе поставки конфигурации, которые бы возвращали настройки сервера 1С в состояние, соответствующее ограничениям лицензии ПРОФ, сколько неприятных моментов и простоев удалось бы избежать, не говоря о негативе в адрес фирмы. На худой конец можно было бы автоматически сбросить настройки на нужное состояние.

Но это еще не все. В ряде случаев данный переход способен оказаться бомбой замедленного действия. Это обусловлено двумя особенностями:

  • защита реализована начиная с версий 8.3.12.1852, 8.3.13.1791 и 8.3.14.1592 платформы;
  • до 10 сеансов включительно доступен полный функционал уровня КОРП;

Таким образом вопрос не исчерпывается только датой 10.09.2019, наоборот, все только начинается. Вышел из отпуска сотрудник — программа перестала работать, обновили платформу — все сломалось. В ближайшее время мы станем свидетелями массы таких историй. Поэтому давайте рассмотрим, какие настройки следует вернуть в состояние «по умолчанию» и что под ним подразумевается, чтобы вы быстро могли восстановить работоспособность вашего сервера.

Далее везде представлены настройки для платформы 8.3.13.1926, внешний вид и состав настроек других версий платформы, в частности 8.3.15 может отличаться, но настройки разделения функционала КОРП — ПРОФ это не затрагивает.

Настройки кластера

Скажем честно, данные настройки не блещут обилием возможностей и большинство из них под ограничения не попали.

1c83-server-prof-korp-002.pngОграничениями лицензии ПРОФ являются:

  • Допустимое отклонение количества ошибок сервера, значение по умолчанию 0;
  • Режим распределения нагрузки, значение по умолчанию Приоритет по производительности.

Настройки сервера

А вот здесь все гораздо хуже, практически все возможности настройки сервера у пользователей ПРОФ забрали.

1c83-server-prof-korp-003.pngПод ограничения попали:

  • Максимальный объем памяти рабочих процессов, значение по умолчанию 0;
  • Безопасный расход памяти за один вызов, значение по умолчанию 0;
  • Объем памяти рабочих процессов, до которого сервер считается производительным, значение по умолчанию 0;
  • Количество ИБ на процесс, значение по умолчанию 8.

Любые значения, отличные от значений по умолчанию, являются недопустимыми.

Столь жесткое ограничение вызывает самое большое количество нареканий, по сути пользователей ПРОФ лишили какой-либо возможности регулировать потребление ресурсов сервером, что больнее всего скажется на пользователях 32-битной версии сервера, в большинстве случаев им придется переходить на 64-битную версию с существенной доплатой.

Настройки информационной базы

Мы не думаем, что кто-то реально столкнется с этим ограничением, но приведем его на всякий случай.

1c83-server-prof-korp-004.pngВо всех информационных базах должны быть установлены следующие значения:

  • Внешнее управление сеансами — пустая строка;
  • Обязательное использование внешнего управления — флаг снят.

Еще раз обращаем ваше внимание, что если данные значения отличаются даже в одной информационной базе, то запуск всех остальных информационных баз также будет невозможен.

Настройки публикации на веб-сервере

Возможность работы базой, опубликованной на веб-сервере, также широко используется пользователями. Но и здесь появились ограничения и при попытке запуска такой базы вы можете столкнуться с ошибкой:

1c83-server-prof-korp-005.pngПоэтому, если вы использовали обновления тонкого клиента с сервера или публикацию на веб-сервере списка баз, то от этих возможностей придется отказаться.

1c83-server-prof-korp-006.pngВ частности, это относится к настройкам Публиковать дистрибутив, которые не следует путать с опцией Публиковать тонкий клиент и веб-клиент, если вы снимите этот флажок, то подключение к базе тонким и веб-клиентом будет невозможно.

Надеемся, что данная статья будет вам полезна, также она будет дополняться новыми данными по мере их появления и приобретения нами и нашими коллегами нового опыта.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Понравилась статья? Поделить с друзьями:
  • Допустить ошибку снять одежду
  • Допустимые ошибки при сдаче на категорию а
  • Дорама ложная ошибка
  • Допустить ошибку проступок не признать ошибку преступление
  • Допущенная случайно нелепая ошибка