Все о тюнинге авто

8.3 как отключить рабочий процесс

Буквально вчера обновили все программное обеспечение сервера. Затронем, пожалуй, самые интересные и новые возможности кластера серверов «1С:Предприятие 8.3».

Как настроить кластер серверов для «1С:Предприятие 8.2» можно посмотреть в предыдущей . На некоторых моментах заострять внимание не буду, они уже были описаны в ранее.

ТАК ЧТО ЖЕ ИЗМЕНИЛОСЬ В КЛАСТЕРЕ «1С:Предприятие 8.3»:

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

Пробный запуск фоновых заданий основной базы заставило кластер «1С:Предприятие 8.3» безконечно перегружать rphost.exe и дополнительный rphost.exe никак не хотел создаваться. Покопавшись в настройках все стало понятно.

Максимальный объем памяти рабочих процессов - это объем памяти, который могут использовать рабочие процессы вместе. Нужно быть очень внимательными при установке параметра, измеряется в байтах . Если установить неверное значение (недостаточное для нормальной работы пользователей) пользователям будет выдана ошибка «Недостаточно свободной памяти на сервере «1С:Предприятие»». Так же эту ошибку можно получить, когда на сервере «1С:Предприятие» закончилась квота по памяти.

Безопасный расход памяти за один вызов - позволяет контролировать расход памяти при серверном вызове, измеряется в байтах . Если вызов использует больше памяти чем положено, этот вызов будет завершен в рамках кластера 1С без перезапуска рабочего процесса (rphost.exe ). Соответственно «неудачник», который выполнил вызов сервера, утратит сеанс с базой данных без влияния на работу других пользователей.

Объем памяти рабочих процессов, до которого сервер считается производительным - при превышении этого параметра сервер в кластере «1С:Предприятие 8.3» перестанет принимать новые соединения.

Количество ИБ на процесс - позволяет изолировать информационные базы по рабочим процессам. По умолчанию у текущего кластера «1С:Предприятие 8.3» было установлено значение - «8», но на протяжении нескольких часов работы сервер вел себя нестабильно, сеансы пользователей зависали. После изоляции каждой информационной базы (значение - «1») проблемы пропали.

Количество соединений на процесс - по умолчанию значение «128». Так как у текущей базы очень большая нагрузка фоновыми заданиями (расчет логистики, анализ прайс-листов, анализ конкурентов и прочее) было принято решение уменьшить количество до «25».

Немного изменились настройки и самого кластера «1С:Предприятие 8.3»:


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

Режим распределения нагрузки - есть два варианта параметра: «Приоритет по производительности» — памяти сервера тратится больше и производительность выше, «Приоритет по памяти» — кластер «1С:Предприятие 8.3» экономит память сервера.

Вместо послесловия. Кластер «1С:Предприятие 8.3» работает заметно шустрее и надежнее, создание сеанса пользователя с информационной базой происходит в разы быстрее, интерфейс в режиме совместимости с «1С:Предприятие 8.2.16», можно сказать, летает. Конечно, есть и нюансы, но куда ж без них. Успехов в настройке нового кластера «1С:Предприятие 8.3».

05.04.2017 |

Кластер 1С 8.3

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

Пробный запуск фоновых заданий основной базы заставило кластер 1С бесконечно перегружать rphost.exe и дополнительный rphost.exe никак не хотел создаваться. Покопавшись в настройках все стало понятно.

Максимальный объем памяти рабочих процессов - это объем памяти, который могут использовать рабочие процессы вместе. Нужно быть очень внимательными при установке параметра, измеряется в байтах. Если установить неверное значение (недостаточное для нормальной работы пользователей) пользователям будет выдана ошибка "Недостаточно свободной памяти на сервере 1С". Так же эту ошибку можно получить, когда на сервере 1С закончилась квота по памяти.

Безопасный расход памяти за один вызов - позволяет контролировать расход памяти при серверном вызове, измеряется в байтах. Если вызов использует больше памяти чем положено, этот вызов будет завершен в рамках кластера 1С без перезапуска рабочего процесса (rphost.exe). Соответственно "неудачник", который выполнил вызов сервера, утратит сеанс с базой 1С без влияния на работу других пользователей.

в одном ГБ - 1073741824 Байт, следовательно в 2 ГБ - 2147483648 Байта

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

Количество ИБ на процесс - позволяет изолировать информационные базы по рабочим процессам. По умолчанию у текущего кластера 1С было установлено значение - "8", но на протяжении нескольких часов работы сервер себя очень нестабильно, сеансы пользователей зависали. После изоляции каждой информационной базы (значение - "1") проблемы пропали.

Количество соединений на процесс - по умолчанию значение "128". Так как у текущей базы очень большая нагрузка фоновыми заданиями (расчет логистики, анализ прайсов, анализ конкурентов и прочее) было принято решение уменьшить количество до "25".

Немного изменились настройки и самого кластера 1С:

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

Режим распределения нагрузки - есть два варианта параметра: "Приоритет по производительности" - памяти сервера тратится больше и производительность выше, "Приоритет по памяти" - кластер 1С экономит память сервера.

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

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

Это снижает вероятность неправильной настройки сервера и понижает требования к квалификации админов.

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

Стабильность работы при использовании больших объемов памяти определятся новыми параметрами рабочего сервера.

Особенно интересен параметр «безопасный расход памяти за один вызов». Для тех кто плохо представляет что это такое - лучше не тренируйтесь на «продуктивной» базе. Параметр «Максимальный объем памяти рабочих процессов» позволяет при «переполнении» не обваливать весь рабочий процесс, а только один сеанс «с неудачником». «Объем памяти рабочих процессов, до которого сервер считается производительным» позволяет заблокировать новые соединения как только будет преодолен этот порог памяти.

Рекомендую изолировать рабочие процессы по информационным базам, к примеру указать параметр «Количество ИБ на процесс = 1″. При нескольких высоконагруженных базах это позволит уменьшить взаимное влияние как по надежности, так и по производительности.

Отдельный вклад в стабильность системы вносит «расходование» лицензий/ключей. В 8.3 появилась возможность использования «менеджера программных лицензий» напоминая менеджер «аладина». Цель - возможность вынести ключ на отдельную машину.

Реализован он в виде еще одного «сервиса» в менеджера кластера. Вы можете использовать к примеру «свободный» ноутбук. Добавьте его в кластер 1с 8.3, создайте на нем отдельный менеджер с сервисом «сервис лицензирования». В ноутбук можно воткнуть аппаратных hasp-ключ, или активировать программные лицензии.

Наибольший интерес для программистов должен представлять «Требования назначения функциональности».

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

Так на ноутбуке с ключом защиты чтобы не запускать пользователей на сервер кластера надо добавить «требования» для объекта требования «Клиентское соединение с ИБ» - «Не назначать», т.е. запретить рабочим процессам данного сервера обрабатывать клиентские соединения.

Еще больший интерес предоставляет возможность запускать «только фоновые задания» на рабочем сервере кластера без сеансов пользователей. Таким образом можно высоконагруженные задачи (код) вынести на отдельный машины. При чем можно одно фоновое задание «закрытия месяца» через «Значение дополнительного параметра» запускать на одном компьютере, а фоновое задание «Обновление полнотекстового индекса» на другом.Уточнение происходит через указание «Значение дополнительного параметра». Например если указать BackgroundJob.CommonModule в качестве значения, то можно ограничить работу рабочего сервера в кластере только фоновыми заданиями с любым содержимым. Значение BackgroundJob.CommonModule.<Имя модуля>.<Имя метода> - укажет конкретный код.

Кластер 1С 8.2

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

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

Отказоустойчивость сервера 8.2 достигается за счет:

  • Хранение информации о сеансе работы пользователя.
  • Пользователь не привязан больше к рабочему процессу.
  • Резервирование рабочих процессов в кластере.
  • Должно быть несколько рабочих процессов, в том числе резервируемые
  • Резервирование кластеров.

Указывается запасной кластер, при подключении - перечисляются в строке соединения

Это позволяет обеспечить непрерывность работы!

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

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

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

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

теперь немного подробнее:

Кластер 1С 8.3

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

Пробный запуск фоновых заданий основной базы заставило кластер 1С бесконечно перегружать rphost.exe и дополнительный rphost.exe никак не хотел создаваться. Покопавшись в настройках все стало понятно.

Максимальный объем памяти рабочих процессов - это объем памяти, который могут использовать рабочие процессы вместе. Нужно быть очень внимательными при установке параметра, измеряется в байтах. Если установить неверное значение (недостаточное для нормальной работы пользователей) пользователям будет выдана ошибка "Недостаточно свободной памяти на сервере 1С". Так же эту ошибку можно получить, когда на сервере 1С закончилась квота по памяти.

Безопасный расход памяти за один вызов - позволяет контролировать расход памяти при серверном вызове, измеряется в байтах. Если вызов использует больше памяти чем положено, этот вызов будет завершен в рамках кластера 1С без перезапуска рабочего процесса (rphost.exe). Соответственно "неудачник", который выполнил вызов сервера, утратит сеанс с базой 1С без влияния на работу других пользователей.

в одном ГБ - 1073741824 Байт, следовательно в 2 ГБ - 2147483648 Байта

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

Количество ИБ на процесс - позволяет изолировать информационные базы по рабочим процессам. По умолчанию у текущего кластера 1С было установлено значение - "8", но на протяжении нескольких часов работы сервер себя очень нестабильно, сеансы пользователей зависали. После изоляции каждой информационной базы (значение - "1") проблемы пропали.

Количество соединений на процесс - по умолчанию значение "128". Так как у текущей базы очень большая нагрузка фоновыми заданиями (расчет логистики, анализ прайсов, анализ конкурентов и прочее) было принято решение уменьшить количество до "25".

Немного изменились настройки и самого кластера 1С:

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

Режим распределения нагрузки - есть два варианта параметра: "Приоритет по производительности" - памяти сервера тратится больше и производительность выше, "Приоритет по памяти" - кластер 1С экономит память сервера.

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

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

Это снижает вероятность неправильной настройки сервера и понижает требования к квалификации админов.

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

Стабильность работы при использовании больших объемов памяти определятся новыми параметрами рабочего сервера.

Особенно интересен параметр «безопасный расход памяти за один вызов». Для тех кто плохо представляет что это такое - лучше не тренируйтесь на «продуктивной» базе. Параметр «Максимальный объем памяти рабочих процессов» позволяет при «переполнении» не обваливать весь рабочий процесс, а только один сеанс «с неудачником». «Объем памяти рабочих процессов, до которого сервер считается производительным» позволяет заблокировать новые соединения как только будет преодолен этот порог памяти.

Рекомендую изолировать рабочие процессы по информационным базам, к примеру указать параметр «Количество ИБ на процесс = 1″. При нескольких высоконагруженных базах это позволит уменьшить взаимное влияние как по надежности, так и по производительности.

Отдельный вклад в стабильность системы вносит «расходование» лицензий/ключей. В 8.3 появилась возможность использования «менеджера программных лицензий» напоминая менеджер «аладина». Цель - возможность вынести ключ на отдельную машину.

Реализован он в виде еще одного «сервиса» в менеджера кластера. Вы можете использовать к примеру «свободный» ноутбук. Добавьте его в кластер 1с 8.3, создайте на нем отдельный менеджер с сервисом «сервис лицензирования». В ноутбук можно воткнуть аппаратных hasp-ключ, или активировать программные лицензии.

Наибольший интерес для программистов должен представлять «Требования назначения функциональности».

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

Так на ноутбуке с ключом защиты чтобы не запускать пользователей на сервер кластера надо добавить «требования» для объекта требования «Клиентское соединение с ИБ» - «Не назначать», т.е. запретить рабочим процессам данного сервера обрабатывать клиентские соединения.

Еще больший интерес предоставляет возможность запускать «только фоновые задания» на рабочем сервере кластера без сеансов пользователей. Таким образом можно высоконагруженные задачи (код) вынести на отдельный машины. При чем можно одно фоновое задание «закрытия месяца» через «Значение дополнительного параметра» запускать на одном компьютере, а фоновое задание «Обновление полнотекстового индекса» на другом.Уточнение происходит через указание «Значение дополнительного параметра». Например если указать BackgroundJob.CommonModule в качестве значения, то можно ограничить работу рабочего сервера в кластере только фоновыми заданиями с любым содержимым. Значение BackgroundJob.CommonModule.<Имя модуля>.<Имя метода> - укажет конкретный код.

Кластер 1С 8.2

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

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

Отказоустойчивость сервера 8.2 достигается за счет:

  • Хранение информации о сеансе работы пользователя.
  • Пользователь не привязан больше к рабочему процессу.
  • Резервирование рабочих процессов в кластере.
  • Должно быть несколько рабочих процессов, в том числе резервируемые
  • Резервирование кластеров.

Указывается запасной кластер, при подключении - перечисляются в строке соединения

Это позволяет обеспечить непрерывность работы!

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

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

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

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

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

Решение

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

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

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

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

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

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

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

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

Итого

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

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

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

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

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

Стабильность работы при использовании больших объемов памяти определятся новыми параметрами рабочего сервера.


Особенно интересен параметр "безопасный расход памяти за один вызов". Для тех кто плохо представляет что это такое - лучше не тренируйтесь на "продуктивной" базе. Параметр "Максимальный объем памяти рабочих процессов" позволяет при "переполнении" не обваливать весь рабочий процесс, а только один сеанс "с неудачником". "Объем памяти рабочих процессов, до которого сервер считается производительным" позволяет заблокировать новые соединения как только будет преодолен этот порог памяти.

Рекомендую изолировать рабочие процессы по информационным базам, к примеру указать параметр «Количество ИБ на процесс = 1″. При нескольких высоконагруженных базах это позволит уменьшить взаимное влияние как по надежности, так и по производительности.

Отдельный вклад в стабильность системы вносит «расходование» лицензий/ключей. В 8.3 появилась возможность использования «менеджера программных лицензий» напоминая менеджер «аладина». Цель — возможность вынести ключ на отдельную машину.

Реализован он в виде еще одного «сервиса» в менеджера кластера. Вы можете использовать к примеру «свободный» ноутбук. Добавьте его в кластер 1с 8.3, создайте на нем отдельный менеджер с сервисом «сервис лицензирования». В ноутбук можно воткнуть аппаратных hasp-ключ, или активировать программные лицензии.

Наибольший интерес для программистов должен представлять «Требования назначения функциональности».

Так на ноутбуке с ключом защиты чтобы не запускать пользователей на сервер кластера надо добавить «требования» для объекта требования «Клиентское соединение с ИБ» — «Не назначать», т.е. запретить рабочим процессам данного сервера обрабатывать клиентские соединения.

Еще больший интерес предоставляет возможность запускать «только фоновые задания» на рабочем сервере кластера без сеансов пользователей. Таким образом можно высоконагруженные задачи (код) вынести на отдельный машины. При чем можно одно фоновое задание «закрытия месяца» через «Значение дополнительного параметра» запускать на одном компьютере, а фоновое задание «Обновление полнотекстового индекса» на другом.Уточнение происходит через указание "Значение дополнительного параметра". Например если указать BackgroundJob.CommonModule в качестве значения, то можно ограничить работу рабочего сервера в кластере только фоновыми заданиями с любым содержимым. Значение BackgroundJob.CommonModule..- укажет конкретный код.

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