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

  • Дата: 02.04.2024

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

Интервал перезапуска – отвечает за частоту перезапуска рабочих процессов кластера. Этот параметр необходимо выставлять при круглосуточной работы сервера. Рекомендуется частоту перезапуска связывать с технологическим циклом информационных баз кластера. Обычно это каждые 24 часа (86400 сек). Как известно, рабочие процессы серверов 1С обрабатывают и хранят рабочие данные.

Автоматический перезапуск был разработан в платформе «для минимизации отрицательных последствий фрагментации и утечки памяти в рабочих процессах». На ИТС есть даже информация о том, как организовать перезапуск рабочих процессов по другим параметрам (объем памяти, занимаемые ресурсы и т.п.).

Допустимый объем памяти – защищает сервера 1С от перерасхода памяти. При превышении процессом этого объема в интервале превышения допустимого объема , процесс перезапускается. Можно рассчитать как максимальный размер памяти, занимаемый процессами «rphost» в периоды пиковой нагрузки серверов. Также стоит установить небольшой интервал превышения допустимого объема.

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

Выключенные процессы останавливать через. При превышении допустимого объема памяти, рабочий процесс не завершается сразу, а становится «выключенным», чтобы было время «перенести» рабочие данные без потери на новый запущенный рабочий процесс. Если указан этот параметр, то «выключенный» процесс в любом случае завершится по истечении этого времени. Если наблюдаются «зависшие» рабочие процессы в работе сервера 1С, то можно стоит этот параметр на 2-5 минут.
Эти настройки устанавливаются для каждого сервера 1С индивидуально.

Максимальный объем памяти рабочих процессов – это объем совокупной памяти, которую могут занимать рабочие процессы (rphost) на текущем кластере. Если параметр установлен в «0», то занимает 80% оперативной памяти сервера. «-1» - без ограничений. Когда на одном сервере работают СУБД и сервер 1С, им нужно делить между собой оперативную память. Если в процессе эксплуатации обнаружится, что серверу СУБД не хватает памяти, то можно ограничить память, выделяемую серверу 1С с помощью этого параметра. Если СУБД и 1С разделены по серверам, то имеет смысл рассчитать этого параметр по формуле:

«Max объем» = «Общая оперативная память» – «Оперативная память ОС»;

«Оперативная память ОС» рассчитывается по принципу 1 Гб на каждые 16 Гб оперативной памяти сервера

Безопасный расход памяти за один вызов . В общем случае, отдельные вызовы не должны занимать всю оперативную память, выделенную рабочему процессу. Если параметр установлен в «0», то объем безопасного расхода будет равен 5 % от «Максимального объема памяти рабочих процессов» . «-1» - без ограничения, что крайне не рекомендуется. В большинстве случаев этот параметр лучше оставлять «0».

С помощью параметров «Количество ИБ на процесс» и «Количество соединений на процесс» можно управлять распределением работы сервера 1С по рабочим процессам. Например, запускать под каждую информационную базу отдельный «rphost», чтобы в случае «падений» процесса, отключались только пользователи одной базы. Эти параметры стоит подбирать индивидуально под каждую конфигурацию сервера.

Ограничение на использование оперативной памяти сервером СУБД – У сервера СУБД MS SQL есть одна замечательная особенность – он любит загружать базы, с которыми ведется активная работа в оперативную память полностью. Если его не ограничивать, то он заберет себе всю оперативную память, какую только сможет.

  • Если сервер 1С:Предприятия установлен вместе с Microsoft SQL Server, то верхний порог памяти необходимо уменьшить на величину, достаточную для работы сервера 1С.
  • Если на сервере работает только СУБД, то для СУБД по формуле:

«Память СУБД» = «Общая оперативная память» – «Оперативная память ОС»;

Shared memory – об этом параметре известно много, но до сих пор встречается, что про него забывают. Выставляем в «1», если сервер 1С и СУБД работают на одном физическом или виртуальном сервере. Кстати, работает, начиная с платформы 8.2.17.

Max degree of parallelism – определяет, сколько процессоров используется при выполнении одного запроса. СУБД распараллеливается получение данных при выполнении сложных запросов на несколько потоков. Для 1С рекомендуется устанавливать в «1», то есть одним потоком.

Авторасширение файлов БД - определяем шаг в МБ, с которым «расширяется» файл базы данных. Если шаг будет маленький, то при активном росте БД, частые расширения приведут к дополнительной нагрузке на дисковую систему. Лучше установить в 500 – 1000 МБ.

Реиндексация и дефрагментация индексов – рекомендуется делать дефрагментацию/реиндексацию хотя бы раз в неделю. Реиндексация блокирует таблицы, поэтому лучше запускать в нерабочее время или периоды минимальной нагрузки. Нет смысла делать дефрагментацию после перестроения индекса (реиндексации). По рекомендации Microsoft дефрагментацию делают в том случае, если фрагментация индекса не превышает 30 %. Если выше, рекомендуется сделать реиндексацию.

План электропитания – в настройках электропитания операционной системы установить на высокую производительность.

Термины, понятия

Зачем нужен сервер 1С

Под понятием «кластер серверов» понимается несколько компьютеров (серверов) выполняющих общую задачу.

Задачи, решаемые кластером серверов 1С:Предприятие 8 на рисунке ниже.

Разница между 8.1 и 8.2

Кластер 1С 8.1

Кластер серверов 1C:Предприятие 8.1 – это реализация идей распределения нагрузки на сервера, обслуживающие клиентские запросы. Такой механизм реализует распределение нагрузки на вычислительные ресурсы в рамках одного сервера или нескольких серверов («Рабочих серверов»), обеспечивая, таким образом, масштабирование приложения. Кластер серверов дублирует код, обслуживающий клиентские соединения. Дублирующийся исполняемый код кластера назван «Рабочим процессом» (rphost). При установке кластера создается только один рабочий процесс.
Несколько рабочих процессов на одном сервере дают возможность эффективно использовать объем оперативной памяти и ресурсы процессора для выполнения запросов, а также подключить клиентский сеанс к другому рабочему процессу при «крахе» текущего.
За понимание, что запущено на конкретном сервере, отвечает программа «Агент сервера» (ragent). Остановка агента сервера сделает сервер недоступным для использования кластером. Свою информацию агент хранит в файле srvribrg.lst.
Информацией о рабочих базах, задействованных рабочих процессах владеет «Менеджер сервера» (rmngr). Эту информацию он хранит в файле 1CV8Reg.lst. Остановка менеджера сервера может привести к перезапуску клиентских приложений в случаи удачного рестарта менеджера или к полной остановке работы рабочих серверов всего кластера.
1С:Предприятие 8.1 допускает возможность создания на одном сервере несколько независимых кластеров. Каждый из них идентифицируется в сети уникальным «IP портом» и уникальным номером в служебных файлах. Первый кластер по умолчанию получает порт 1541.
Для управления кластером предназначена оснастка «Серверы предприятия».
Подключаться к серверам можно по имени или IP адресу сервера.

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

Агент сервера «знает» о всех кластерах, которые запущены на сервере. Эта информация хранится в файле srvribrg.lst со списком кластеров и администраторов списка. Основной порт агента – 1540. На каждом Рабочем сервере может быть запущен только один агент, обслуживающей все возможные кластера на данном сервере.
Чтобы получить более детальную информацию наглядно, воспользуйтесь утилитой Process Explorer (разработчик Sysinternals). Программа позволяет глубже заглянуть внутрь любых выполняемых процессов, в том числе кластера серверов 1С:Предприятия 8.1.

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

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

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

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

За «работу с клиентами» отвечает Рабочий процесс. Можно сказать, что в предыдущей версии 1С:Предприятия 8.0 «Рабочий процесс» был один.
Рабочих процессов в кластере 1С:Предприятия 8.1 может быть несколько. Менеджер сервера решает, какой из рабочих процессов будет обслуживать клиентское подключение. Для клиентских подключений Рабочим процессам по умолчанию выделяется диапазон IP портов 1560 – 1591. Кроме этого, каждому Рабочему процессу назначается Служебный порт для обмена с менеджером кластера. Каждый рабочий процесс использует до 2 Gb ОЗУ в 32х разрядной операционной системе. В 64х разрядной операционной системе ограничение накладывается физическим объемом ОЗУ

Кластер 1С 8.2

Кластер серверов 1C:Предприятие 8.2 – дальнейшее развитие технологий сервера 8.2.

Сервер может работать «как 8.1», т.е. в нем осталась совместимость с предыдущими технологиями.

И плюс реализован новый подход к работе сервера. Теперь вместо процессов важную роль сеансы.

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

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

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

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

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

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

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

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

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

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

Кластер 1С 8.3

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

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

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

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

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

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

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

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

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

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

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

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

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

В случае выбора существующей учетной записи вы должны указать правильный пароль и подтверждение, иначе запуск серверной части далее приведет к ошибке.
При первом запуске Агента кластера создается кластер «по умолчанию».
Кластер по умолчанию имеет следующие характеристики:
· номер порта – 1541;
· диапазон IP портов – 1560:1591;
· поддержка многих рабочих процессов – выключена;
· один рабочий процесс, номер порта устанавливается из указанного диапазона.
Если при первом запуске агента кластера возникли какие-либо проблемы, то кластер по умолчанию может быть не создан. Это проявляется в том, что при запуске агента сервера (ragent) он стартует, но не запускает другие процессы кластера (rmngr, rphost). Список кластеров srvribrg.lst при этом выглядит так:
{
{0},
В этом случае можно остановить процесс ragent, удалить список кластеров (srvribrg.lst) и запустить ragent снова.

Проверьте совпадение портов, указанного в параметре port командной строки запуска сервиса агента сервера и заданного в диалоге параметров центрального сервера консоли кластеров:

— Остановите сервис 1C:Enterprise 8.1 Server Agent.

Если Агент серверов запущен как приложение, остановка выполняется нажатием комбинации клавиш Ctrl+C.
— Убедитесь, в Диспетчере задач (Task Manager), что все процессы ragent, rmngr, rphost завершились. При необходимости завершите их при помощи Task Manager.

— Откройте свойства сервиса 1C:Enterprise 8.1 Server Agent.

— Обратите внимание на строку «Исполняемый файл» (Path to executable). В ней имеется параметр -d, за которым следует каталог данных кластера. Все файлы, относящиеся к кластеру, находятся в этом каталоге.
— Удалите все содержимое этого каталога.
— Запустите сервис 1C:Enterprise 8.1 Server Agent.
— Убедитесь, в Диспетчере задач (Task Manager), что все процессы ragent, rmngr, rphost стартовали.
— Запустите консоль кластера и зарегистрируйте в ней центральный сервер. Консоль должна подсоединиться к центральному серверу и показать один кластер, созданный по умолчанию.
Возможными проблемы отказа работы Кластера серверов являются проблемы с ключами защиты, правами учетной записи служб, некорректными параметрами запуска.

  1. Ключ защиты серверной части устанавливается ЛОКАЛЬНО на каждый сервер предприятия
  2. Не задавайте учетную запись службы с пустым паролем
  3. При нескольких кластерах используемые порты не должны пересекаться

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

Ошибка 1069: служба не запущена из-за ошибки входа в систему

Проблема связана с правами учетной записи на запуск от имени системной службы. Откройте утилиту Local Security Policy (Локальная политика безопасности) и добавьте пользователя (от имени которого происходит запуск Рабочих серверов Кластера) к политикам Logon as service (Работа в качестве сервиса) и Logon as batch (Работа в качестве пакетного задания) job.
При нарушении данных, хранящихся в служебных файлах, и запуск Рабочих серверов Кластера может оказаться неудачным. Убедитесь, что агент сервера 1С:Предприятия 8.1 запущен (процесс ragent в Task Manager).
Не забудьте, что средством анализа также является аудит событий Windows. Для этого посмотрите, появляются ли какие-нибудь «подозрительные» сообщения в журнале событий Windows.

Ошибка 8007056B / 800708C5

The new password does not meet the password policies. The password may be too short or you have already used this password recently.
Причина: указанный пароль для учетной записи в диалоговом окне «Установка сервера 1С:Предприятие» не удовлетворяет требованиям политики безопасности.
Решение: Задать новый пароль для выбранной учетной записи, удовлетворяющий требованиям политики безопасности либо ослабить требования применяемой политики безопасности, т.е. не требовать «сложного» пароля, не ограничивать количество знаков в пароле, не проверять попыток повторения и т.д.

Ошибка 1923: нет привилегий для установки сервисом

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

Ошибка 80070056

Your password could not be changed. Each password must be used for at least x days.
Причина и Решение: Еще одна ошибка, возникающая при нарушении требований политики безопасности к используемым паролям. Решение аналогично ошибке 800708C5.

Windows Sockets — 11004(0х00002AFC)

1) Убедиться, что на Рабочем сервере кластера в Диспетчере задач (Task Manager) запущены:
Агент сервера (ragent.exe),
Менеджер Кластера (rmngr.exe),
Рабочий процесс Кластера (rphost.exe).
2) Для проверки разрешения имен ip-адреса выполните в командной строке:
ping имя_машины
В отклике системы на команду нас интересует, определиться ли ip-адрес.
3) Если имя определилось, но Рабочий процесс по-прежнему не находится, то убедитесь, что определение Ip-адреса имени <имя машины> и <имя машины>.<имя домена> определяются не по-разному.

(Windows Sockets — 10054(0x00002746).

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

(Windows Sockets — 10060(0x0000274C)

Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Сущность этой ошибки – отсутствие отклика в течении определенного времени (таймаута).
1) Убедитесь, что брандмауэр не блокирует трафик приложения. Выключите брандмауэр.
Для этого в командной строке выполните команду (команда доступна начиная с Windows XP и Windows Server 2003, в более ранних версиях встроенного брандмауэра нет, однако может быть установлено стороннее ПО):
netsh firewall set opmode disable
Если команда будет выполнена успешно, вы получите сообщение:
Ок.
Кроме брандмауэра блокировать трафик могут сетевые фильтры. Они по умолчанию выключены. Тем не менее, убедитесь, что это так:

  1. Откройте папку «Сетевые подключения».
  2. Щелкните правой кнопкой мыши сетевое подключение, которое требуется настроить, и выберите команду Свойства .
  3. На вкладке Общие (для подключения по локальной сети) или на вкладке Сеть (для всех остальных подключений) выберите Протокол Интернета (TCP/IP) и нажмите кнопку Свойства .
  4. Нажмите кнопку Дополнительно .
  5. Откройте вкладку Параметры , выберите параметр Фильтрация TCP/IP и нажмите кнопку Свойства .
  6. Убедитесь, что флажок Задействовать фильтрацию TCP/IP (все адаптеры) снят.

2) Убедитесь, что ресурсы процессора не загружены на 100% (CPU%).
3) Выполните замер сетевой активности интерфейсов клиента и сервера. Нагрузка на сетевой адаптер не должна превышать 60%.

(Windows Sockets — 10061(0x0000274D)

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

Ответы на вопросы

Многоплатформенность 1С

Установка сервера

Q:Ошибка установки сервера 1с на MS Server 2008 R2 x64 При установке сервера 1с через командную строку, например такую, ragent.exe -instsrvc -port 2040 -regport 2041 -range 2060:2091 -d «C:\Program Files\1cv82\ (взято с диска ИТС), в командной строке пишет сообшение: «Error! OpenSCManager error!» Сервис при этом не создается. Проверялось на 8.1.15.14 и 8.2.10.77

А: Для установки из коммандной строки на ОС, где присутсвует UAC, нужно пользоваться службой RunAs, т.к. даже если пользователь входит в группу администраторов, то UAC блокирует действия, которые изменяют состояние системы.

Ключи защиты

Q: Ключ защиты от сервера 8.2 позволяет запустить Сервер 8.1?
A: Да, позволяет

Q: чтобы запустить сервер 1С мне нужны хасп-ключи какие-то серверные? Локальный, или на 5 пользователей не пойдет?

A: да, для сервера нужен свой ключ, локальный пользовательский и сетевые не подойдут. Подробнее в « « , слайд № 30.

Q: допустим кластер серверов 1с стоит из 3-х физических серверов. сколько нужно ключей защиты

Q: Имеется терминальный сервер и ключ на 5 лицензий, докупается 6-ая доп. лицензия. Возможно ли ее установить на сервер рядом с ключом на 5? И будут ли все 6 пользователей работать в теминальных сессиях или 5 — под теерминалом, а 1 в файловом варианте?
A: Нет, не будут. 6я лицензия в виде локального ключа должна быть воткнута в компьютер пользователя, но не в терминалку.

Обновления сервера 1С

Q: при выходе новой версии 8.2.xxx платформы какой порядок действий при обновлении серверов и клиентов
A: Дистрибутивы 8.2 инсталируют свои файлы в разные папки (для каждой версии своя папки), т.е. теоретически остается возможность вызова параллельно нескольких версий сервера.

У меня особых проблем не возникало. Однако, надо внимательно отслеживать занимаемые порты экземпляром сервера 1С. Пересечений не должно быть.

Настройка сервера 1С

Q: В 1С 8.1, как лучше размещать информационные базы, если их несколько, в одном кластере или создавать для каждой базы отдельный кластер? A: С большим объем или нагрузкой, а также тестовые базы размещать нужно в отдельные кластера!

Q: ВОПРОС: Рабочй процесс 1С:Предприятие 8.1 является однопоточным приложением или многопоточным? Т.е. может ли загрузить много ядер при одном подключенном пользователе? При нескольких? А рабочий процесс 1С:Предприятие 8.2? Спасибо.
A: 1Сv8.exe и rphost.exe в версии 8.1 отъедали 1 ядро. По сколько в 8.1 соединение клиента находится жестко привязанным к рабочему процессу, то можно условно считать, что обработка клиентов 1С выполняется в рамках одного ядра. Исключение составляет СУБД, которая использует ядра не зависимо, как работает сервера 1С.

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

платформа 8.2 не реализует всех возмжностей многопоточной системы, но она существенно лучше использует возможности железа по сравнению с 8.1, в том числе и в плане параллельности.

Q: Необходимо ли несколько рабочих процессов 1С:Предприятие 8.1, чтобы сервер баз данных (MS SQL) нагружал несколько ядер? (Замечено, что MS SQL обычно «грузит» только одно ядро, т.е. «распараллеливание» обработки одного запроса по нескольким ядрам, как правило, не происходит.) Спасибо.
A: Специально управлять MS SQL не нужно, это достаточно самонастраивающая система, использующая ресурсы по необходимости. Управлять параллельностью исполнения можно:

EXEC sys.sp_configure N’max degree of parallelism’, N’5′
GO
RECONFIGURE WITH OVERRIDE
GO

Создавать несколько рабочих процессов на сервере 1С можно исходя из того, что один рабочий процесс не обеспечивает возможность пользователям сделать повторное подключение в случаи падения рабочего процесса. 2 процесс (на 8.2 его лучше сделать «резервным») решает эту проблему. А вот 3й и более рабочие процессы есть смысл добавлять, только если сильно загруженны (более 90%) первые два рабочих процессах. Без надобности плодить рабочие процессы не стоит, это может ухудшить производительность.

A: Как минимум 1 резервный рабочий процесс в 8.2 должен быть.

Отказоустойчивый кластер

Q: Вопрос про включении резервирования кластеров 1с 8.2. Если у нас упал сервер (уборщица выдернула провод) то сетевое имя, например «server:2540» будет недоступно. как клиент, у которого прописано в строке подключения «server:2540» узнает что нужно подключаться к резервному кластеру? откуда он возмет имя другого сервера? А если через запятую написать кластеры в строке подключения базы?
A: Несколько кластеров объединяются в «группу резервирования». Для этого в оснастке кластера есть «список резервирнования».

При первом обращении клиента к кластеру ему передается список кластеров, входящих в группу резервирования.

Если клиент не разу не обращался, то в этом случаи надо указать вручную адреса всех кластеров, например storm:2541,monster:2541.

Между кластерами резервирования осуществляется обмен синхронизируемых данных.

Q: Что происходит после восстановления работы основного кластера? когда пользователи переключились на резервный.

A: Возвращаются назад. Возможны паузы при переключениях на время синхронизации данных кластеров.

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

Q: Как удалить фоновое задание, запущенное на серверах 1С:8.1 и 1С:8.2?

A: Возможность отмены регламентного задания работает только, если код выполняется в пределах встроенного языка 1С:Предприятия. Если код выполняется во внешних библиотеках, то отменить такое задания нельзя иначе, как принудительно завершив рабочий процесс. Если в процессе блок НачатьТранзакцию() — ЗафиксироватьТранзакцию() то вряд ли. Остальные фоновые задания можно удалить через консоль заданий .

Регламентные процедуры

Q: Возможно ли разрушение базы при проведении ТиИ?

A: Мне такие случаи неизвестны, но имхо возможно все. Поэтому перед ТиИ неплохо бы делать бэкап.

Q: Вячеслав, по каким причинам вы не делаете реиндексацию средствами 1С Тестирование и Исправление?
A: Для этих целей лучше подходят возможности СУБД, так как они посути выполняют тоже перестроение индексов, но не требуют монопольного захвата базы.

Технологический журнал

Q: Добрый день. Вопрос по технологическому журналу: мне необходимо получать копии экранов рабочих станций при ошибках 1С. Нужно ли для этого настраивать технологический журнал и на рабочих станциях, либо же он только для сервера?
A: Можно настроить только получение скриншота при падении платформы, а не при любой ошибки. Впрочем, особой полезности в такой операции не много, вполне достаточно собирать с помощью технологического журнала исключительных ситуаций. При этом, большую часть ошибок можно увидеть с помощюю ТЖ на стороне сервера 1С. Исключение могут составить события вроде «ошибки потока формата», связанной с устаревшим кэшем метаданных.

Неполадки и ошибки

Q: Сталкивались ли вы с проблемой — пропадание настроек отчетов у пользователей при динамическом обновлении конфигураций на платформе 8.2. Есть рекомендации, как с этим бороться?
A: Проблемы связанные с динамическим обновлением отражены в «Сервера 1С:Предпряитие 8.1 и 8.2 — с чем едят «) , слайд №60. Чистить кэш. Возможно в некоторых случаях надо разбираться, где конкретно храняться настройки пользователей. При необходимости хранить в качестве двоичных данных в регистре сведений.

Q: Попутный вопрос, т.к. это актуально для файлового режима: какие ошибки исправляет chdbfl.exe?
A: Это инструмент исправления ошибок структуры хранения данных. Это может быть ситуация когда например возникает «Файл базы данных поврежден …/1Cv8.1CD». Т.е. устраняет повреждения файла базы данных. Однако не выполняет функций ТиИ. Я запускаю chdbfl.exe, если «не продит успешно» ТиИ.

Q: Подскажите пожалуйста сталкнулись с такой проблемой. при нахождении в базе большого количества пользователей (около 40) при проведении больших документов например отражение ЗП в регл. учете около 8000 строк. выдается ошибка нехватает памяти на сервере 1С предприятия и пользователь инициировавший проведение этого документа отваливается. Документ потом можно провести только после перезапуска агента 1С сервера.
A: Похоже на утечки памяти:

1. Рестартовать сервер 1С, увеличить количество рабочих процессов, в кластере держать только одну эту базу.

2. Бить проведение на порции, скажем по 1000 строк за раз. Отследить с помощью ТЖ объекты занимающие память при начале операции, но не освобождающие память по завершению.

3. Поставить х64 версию, увеличить объем оперативки, перейти на 8.2.

Q: Вопрос по тестированию и справлению. Можно ли запускать «Проверка ссылочной целостности» на базе УРБД с отбором по передаваемым данным? (т.е. в некоторых узлах физически отсутствуют объекты, но ссылки на них есть). Спасибо!
A: К сожалению, пока такой возможности нет.

Q: Почему тестирование и исправление сразу не решает все вопросы, приходится запускать несколько раз?

A: Точно ответить могут только разработчики. Я запускаю ТиИ по регламенту (циклически), поэтому для меня этот вопрос не очень актуален. Делать ТиИ надо не один раз, а постоянно как «ТО для автомобиля».

Q: Есть ли разница ТиИ 8.1 и 8.2?

A: На текущий момент написания ответа и релиза 8.2.10 мне разница не известна.

Q: Нужно ли при реструктуризации делать реиндексацию?
A: Не нужно.

Прочее

Q: Уважаемы господа никто не пробовал зеркалировать базы средствами MSSql 2008 вообще это возможно?

Q: Вопрос по принудительному включению shared memory на сервере 1с 8.2

A: Не надо ничего принудительно включать, сервер сам поймет.

Q: Для 1С:Предприятие 8.1 замечены ситуации, когда на одном и том же аппаратном обеспечении файл-серверный вариант с «тяжелыми» операциями и единственным пользователем работает значительно быстрее, чем клиент-серверный, когда все «звенья» (сервер БД, сервер 1С:Предприятие и клиент) установлены на одном сервере. При этом при выполнении этой «тяжелой» операции явно выраженных перегрузок аппаратной части нет (загрузка процессора, памяти, жестких дисков минимальная). То есть аппаратных ресурсов много, а работает медленно. Во что же мы можем «упираться»? Спасибо.
A: Достоинство клиент-серверной архитектуры с точки зрения производительности — возможность ПАРАЛЛЕЛЬНО обрабатывать запросы клиентов к данным. Т.е. скорость потока не тот показатель, по которому стоит делать общие выводы. Механизмы, улучшающие параллельность, все же в рамках одного потока могут несильно снижать производительность.

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

Скорость в одном потоке клиент-серверного варианта будет только догонять призводительность файлового варианта. Стоит заниматься этой проблемой, если время операции в абсолютных цифрах измеряется не меньше чем минуты. Заниматься оптимизацией в рамках 1-3 секундных запросов сомнительно.

Q: О разнице между виндовским терминалом и тонким клиентом 1С.
A: Пока большинство решений не переведы ПОЛНОСТЬЮ под 8.2, говорить о практическом сравнении этих технологий однозначно сложно.

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

Для консервативных прагматичных руководителей проектов, конвертирующих 8.1 под 8.2- терминальное решение. Для небольших проектов с низкой стоимостью ошибок и конфигурацией сразу реализованной с управляемыми формами и СКД — тонкий клиент предпочтительней ИМХО.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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


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

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

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

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


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

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

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


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

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

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

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

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



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



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


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

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

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

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

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

Кластер 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 достигается за счет:

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

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

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

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

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

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

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

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 достигается за счет:

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

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

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

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

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

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

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