Меню

1с сервер настройка перезапуска

Соединения с кластером и регламентный перезапуск рабочих процессов

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

Соединения кластера

Утилита администрирования кластера серверов позволяет посмотреть список соединений:

  • кластера в целом (ветка «Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ / Соединения»);
  • рабочего процесса (ветка «Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ / Процессы/ / Соединения» или ветка «Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ / Рабочие серверы/ / Процессы/ / Соединения»);
  • информационной базы (ветка «Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ Информационные базы/ / Соединения»).

  • пользовательские соединения (1С:Предприятие, Конфигуратор, COM-соединения, WS-соединение, Фоновое задание, Консоль кластера, COM-администратор)
  • служебные соединения (Планировщик заданий, Отладчик)

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

  • своей информационной базы;
  • своего рабочего процесса;
  • кластера в целом.

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

  • своего рабочего процесса;
  • кластера в целом.

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

Разрыв соединения

Утилита администрирования кластера серверов и средства программного администрирования кластера (объект V81.COMConnector) позволяют выполнять принудительный разрыв соединений с кластером. Принудительно могут быть разорваны только пользовательские соединения. Возможность принудительного разрыва пользовательского соединения может зависеть от действия, которое в данный момент выполняется на сервере по инициативе данного соединения:

  • если по инициативе пользовательского соединения на сервере не выполняется никакого действия, то соединение может быть разорвано всегда;
  • если в момент разрыва соединения соединение выполняет на сервере код на встроенном языке, то разрыв соединения возможен при переходе выполнения от одной строки кода на встроенном языке к другой;
  • если соединение выполняет запрос к базе данных, то для MS SQL Server и IBM DB2 1С:Предприятие предпринимает попытку прервать выполнение запроса сервером баз данных. Соединение будет разорвано, если пользователь базы данных, от имени которого сервер 1С:Предприятия выполняет обращение к базе данных, имеет соответствующие права, и СУБД готово выполнить функцию прекращения исполнения запроса;
  • в других случаях попытка принудительного разрыва пользовательского соединения может не привести к фактическому разрыву соединения.

Принудительный разрыв служебных соединений невозможен.

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

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

После выключения запущенного рабочего процесса он останавливается не сразу, а только тогда, когда с ним не будет установлено ни одного пользовательского соединения. При этом новых пользовательских соединений с данным рабочим процессом устанавливаться не будет. Для обеспечения возможности остановки рабочего процесса даже в том случае, когда с ним еще установлены пользовательские соединения, в Утилите администрирования кластера серверов предусмотрен параметр «Выключенные процессы останавливать через. » в свойствах кластера, а в средствах программного администрирования кластера — свойство ExpirationTimeout объекта «Кластер серверов» (IClusterInfo).

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

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

Регламентный перезапуск рабочих процессов

Для минимизации отрицательных последствий фрагментации и утечки памяти в рабочих процессах может быть предусмотрен их автоматический перезапуск. В 1С:Предприятие встроена возможность автоматического перезапуска рабочих процессов через заданные интервалы времени. Для этого в Утилите администрирования кластера серверов предназначен параметр «Рабочие процессы перезапускать через. » в свойствах кластера, а в средствах программного администрирования кластера — свойство LifeTimeLimit объекта «Кластер серверов» (IClusterInfo). Если этот параметр отличен от 0, то для каждого рабочего процесса через заданное количество секунд после его запуска:

  • создается и запускается новый процесс;
  • текущий процесс выключается.

Это позволяет обеспечить автоматическое ограничение времени жизни рабочих процессов. Рекомендуется время, заданное параметрами LifeTimeLimit и ExpirationTimeout, связывать с длительностью технологического цикла конкретной информационной базы (сутки, неделя и т. д.).

Если автоматический перезапуск рабочих процессов при окончании заданного времени жизни не решает проблему, то возможна организация программного перезапуска по каким-нибудь другим критериям (объем памяти, занимаемые ресурсы, . ). Для этого при помощи средств программного администрирования кластера объекта V81.COMConnector необходимо:

  • установить время принудительной остановки рабочих процессов (свойство ExpirationTimeout объекта «Кластер серверов»);
  • согласно установленным критериям выбрать рабочий процесс, который необходимо перезапустить;
  • запустить новый процесс;
  • выключить выбранный процесс;
  • после того, как выключенный процесс будет остановлен, удалить его из кластера.

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

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

источник

Guesto.ru

Guesto notes

1С. Настройка автоматического перезапуска рабочих процессов сервера 1С:Предприятие 8.3

Зачастую на машине вместе с сервером 1С:Предприятие работают другие службы — терминальный сервер, SQL-сервер и т.д. И в какой-то момент сервер 1С:Предприятие, а точнее рабочий процесс rphost отъедает памяти больше чем планировалось или же всю память. Что приводит к замедлению работы других служб и зомбированию сервера. Для избежания таких ситуаций необходимо настроить автоматический перезапуск рабочих процессов сервера 1С:Предприятия

Решение

1. Откроем консоль администрирования серверов 1С Предприятия;
2. Развернем дерево центрального сервера до кластеров и выделим интересующий наc кластер. В примере кластер всего один;
3. Откроем свойства выделенного кластера и увидим следующую форму

Свойства кластера сервера 1С:Предприятие 8.3

Разберем пример указанный на изображении:

Интервал перезапуска — время через которое процесс rphost будет принудительно перезапущен. Перед завершением работы процесса запускается новый процесс rphost, на который передаются все соединения, и только тогда будет завершена работа старого процесса. На работе пользователя это никак не скажется. Интервал указывается в секундах, в примере указаны 24 часа.

Допустимый объем памяти — объем памяти, в пределах которого рабочий процесс может без проблемно работать. Объем указывается в килобайтах, в примере указана величина в 20 гигабайт(на самом деле цифра слишком большая и отталкиваться необходимо от конкретной системы, но средняя цифра 4 Гб ). Как только память занятая рабочим процессом превысит указанную величину, так начинается отсчет времени.

Интервал превышения допустимого объема памяти — после того как таймер запущенный после превышения допустимого объема памяти отсчитает указанное время, будет запущен новый рабочий процесс, на который передаются все соединения, старый процесс помечается как выключенный. Интервал указывается в секундах, в примере указаны 30 секунд.

Выключенные процессы останавливать через — время, через которое будет остановлен рабочий процесс, помеченный как выключенный, если указано значение 0, то процесс не будет завершен. Интервал указывается в секундах, в примере указаны 60 секунд.

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

Итого

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

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

источник

Автоматический перезапуск службы агента сервера 1С — скрипт + расписание

Добрый день. Поступила заявка от 1С-ников, что необходимо ночью перезапускать службу агента сервера 1С на 8-ке. Как многим известно, что данную службу просто так нельзя «перезапустить», иначе зависшие сессии так и остаются «висеть», ее необходимо сначала остановить, а после снова запустить. Порывшись немного в интернете, пересмотрев кучу скриптов — собрал из многообразия один, не большой, полностью рабочий, уже оттестировал его на серверах, теперь выкладываю на ваше обозрение и пользование.

Скрипт перезапуска службы агента сервера 1С

В данном разделе я приведу скрипт .bat, который у меня получился, а так же дам краткое описание того, что за что отвечает в моем случае.

Давайте рассмотрим его подробнее:

  1. Первым делом отключаем уведомления о выполнении, пусть это все работает в фоновом режиме
  2. Далее указываем где будет хранится наш лог-файл, куда будет писаться дата и время запуска и остановки службы (можно не писать лог, но на всякий случай пусть будет)
  3. Пишем в Лог дату и время начала остановки
  4. Останавливаем службу агента сервера, в моем случае она называется так — 1C:Enterprise 8.3 Server Agent (1640) и пишем ее статус в лог файл (ниже приведу пример что в логе появляется)
  5. Далее делаем задержку в 15 секунд, чтобы дождаться, пока служба останавливается (пинг равен примерно 1 секунде, первый проходит моментально, поэтому делаем время в секундах +1)
  6. Опять записываем в лог дату в время
  7. Запускаем службу обратно
  8. Делаем задержку в 5 минут, если служба не остановилась за 15 секунд, то она не запустится естественно, что то видимо зависло сильно и будем ждать 5 минут.
  9. Далее проверяем, запустилась ли служба и работает ли она? Если не работает, то выполняем ее повторный старт.
  10. Завершаем работу с cmd.

Все, вот такой вот получился скрипт. Я не программист, поэтому может он не совсем верный с точки зрения выполнения сценариев и программного кода, но для меня важно, чтобы это работало — а это работает! Данный скрипт у меня выполняется каждый день, каждый час с 00:00 до 7:00, но об этом позже.

12.10.2017 0:00:00,10
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» останавливается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно остановлена.
12.10.2017 0:00:15,33
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» запускается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно запущена.
12.10.2017 1:00:00,15
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» останавливается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно остановлена.
12.10.2017 1:00:15,37
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» запускается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно запущена.

Настройка выполнения *.bat по расписанию

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

Для начала идем в «Пуск -> панель управления -> Администрирование» и запускаем там «Планировщик заданий«.

Выбираем пункт «Создать задачу«:

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

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

Далее идем во вкладку Действия и создаем действие на выполнения скрипта.

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

Заключение

Вот так не очень сложно создается скрипт на перезапуск службы агента сервера 1С и настраивается его расписание. Я думаю что многие итак знают как сделать одно или второе, но я думаю что кому то это пригодится. Если у Вас возникнут проблемы или вопросы — задавайте их в комментариях, постараюсь помочь чем смогу. Если будут какие-то дополнения или предложения — с удовольствием тоже выслушаю.

Так же можно почитать про скрипт — удаление файлов старше n дней

источник

Читайте также:  сброс настроек на андроид lg p715

Добавить комментарий

Adblock
detector