Настройки кластера 1с допустимый объем памяти

Обновлено: 06.07.2024

Релиз версии 1С: Предприятие 8.3 был анонсирован в 2012 году. Вместо резервного кластера ( как в версии 8.2 ) сделали один кластер, но внутри кластера можно указывать различные параметры, т.е. значительно упростили настройку отказоустойчивости.

В этой версии был существенно переписан весь код самой платформы.

Перед тем, как рассмотреть настройки, отмечу ключевые параметры запуска ragent :

  1. –range – Порты рабочих процессов
  2. –d – Директория, где живет сервер (было рассмотрено в предыдущей статье)
  3. –debug – Флаг отладки на сервере
Строку запуска ragent можно посмотреть в службе, а настроить параметры в редакторе регистра: «HKLM -> SYSTEM -> Current Control Set - > Services». Строку запуска ragent можно посмотреть в службе, а настроить параметры в редакторе регистра: «HKLM -> SYSTEM -> Current Control Set - > Services».

Файлы и каталоги сервера 1С

  1. Общий каталог сервера (C:\Program Files\1cv8\srvinfo\)
  2. lst – файл настроек кластера
  3. lst – файл со списком баз
  4. Каталоги баз:1Cv8FTxt – файлы полнотекстового поиска
    1Cv8Log – файлы журналов регистрации
  5. Snccntx – сеансовые данные.
Поместить во временное хранилище помещает данные в сеансовые данные (snccntx на диске), при этом часть данных может кэшироваться в оперативной памяти.

Основные настройки кластера 1С: 8.3

Защищенное соединение:

Шифрует данные между клиентом и сервером 1С.

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

Рекомендуется оставлять «выключено», тогда будет шифроваться пароль только при первом соединении(!). Не влияет на шифрование данных между 1С и СУБД.

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

Автоматически перезапускает рабочие процессы (rphost). Начало отсчета интервала перезапуска = момент нажатия на кнопку «ОК», поэтому ставите интервал 1 раз в сутки (86 400 с.), то ставьте ночью.

Перезапуск процесса (выключение старого и включение нового) разделен на этапы:

  1. Процесс помечается как выключенный, теперь на него не назначаются новые сеансы.
  2. Создается новый процесс, на который перекидываются все сеансы с выключенного.
  3. Если за интервал времени « проблемные процессы завершать через » (например, 1 минута) остались висеть сеансы, то они обрываются принудительно, а процесс убивается (клиент получит ошибку).

Имеет смысл только для 32 разрядных систем, т.к. там есть фрагментация памяти (рассматривается на занятии 01-01. Знакомство с 1С ). Для 64 полезно использовать только тогда, когда есть утечки памяти, и проблема пока не решается.

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

Имеет смысл только если в кластере более 1 сервера. Максимальный уровень отказоустойчивости - это количество серверов в кластере минус 1, т.е. если в кластере 1 сервер, то уровень отказоустойчивости = 0. Если же их 3, то есть возможность задать значение УО равным от 0 до 2.

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

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

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

Интервал перезапуска – отвечает за частоту перезапуска рабочих процессов кластера. Этот параметр необходимо выставлять при круглосуточной работы сервера. Рекомендуется частоту перезапуска связывать с технологическим циклом информационных баз кластера. Обычно это каждые 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», чтобы в случае «падений» процесса, отключались только пользователи одной базы. Эти параметры стоит подбирать индивидуально под каждую конфигурацию сервера.

2. Рекомендации по настройке СУБД MS SQ

Ограничение на использование оперативной памяти сервером СУБД – У сервера СУБД 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С Предприятия есть несколько настроек перезапуска процессов по превышению порога памяти. Их можно найти в параметрах кластера в консоли администрирования(рис. 1).


Рис. 1. Параметры кластера.

Подробная информация по настройкам указана на странице ITS.

Рекомендуется всегда настраивать параметры

  • Допустимый объем памяти
  • Интервал превышения допустимого объема памяти
  • Выключенные процессы останавливать через

"Допустимый объем памяти" стоит устанавливать из расчета, того, что в случае срабатывания условия превышения показателя будет запущен ещё один процесс rphost того же объема, как при нормальной работе кластера серверов в этой информационной системе.

Например, на рабочем сервере имеем 12 Гб ОЗУ. Допустим для конкретной информационной системы характерен размер rphost около 3 Гб. В этом случае порог превышения памяти следует рассчитывать следующим образом:

"Допустимый объем памяти" = 12 ГБ - 2 Гб (объем, занимаемый процессами системы) - 3 Гб * 1 rphost (объем всех процессов rphost) = 7 Гб. Т.е. процесс rphost в худшем сценарии может вырасти до 7 Гб.

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

"Допустимый объем памяти" = 12 ГБ - 2 Гб (объем, занимаемый процессами системы) - 3 Гб * 2 rphost (объем всех процессов rphost) = 4 Гб. Т.е. процесс rphost в худшем сценарии может вырасти до 4 Гб.

Такая рекомендация исходит из особенностей поведения в момент перезапуска процессов кластера. Как это происходит:

  • процесс rphost превышает "Допустимый объем памяти" в течение "Интервал превышения допустимого объема памяти" секунд, срабатывает условие перезапуска процессов кластера.
  • запускается "новый" процесс rphost
  • "старый" процесс rphost выключается, но не завершается
  • соединения назначаются на "новый" процесс rphost, который сразу полноценно включается в работу
  • "старый" процесс будет исполнять вызовы (которые ещё существуют) максимум в течение ещё "Выключенные процессы останавливать через" секунд, но не более того.
  • через время "Выключенные процессы останавливать через" "старый" процесс rphost завершается.
  • новый процесс полноценно работает

Т.е. в течение периода, указанного в "Выключенные процессы останавливать через" будет одновременно работать как минимум два процесса rphost: "старый" и "новый".

Не следует указывать "Допустимый объем памяти" меньше нормального рабочего объема памяти процесса rphost для вашей системы, т.к. противном случае у вас постоянно будут перезапускаться процессы кластера серверов.

  • Интервал превышения допустимого объема памяти
  • Выключенные процессы останавливать через

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

Чем больше значения указанных параметров, тем менее эффективен может оказаться механизм перезапуска процессов, но зато позволит "успешно выполнить" большее число вызовов.

Как я уже писал предыдущей статье Настройка кластера 1С 8.3 (ч. 1) , в кластере 1С Предприятие 8.3 значительно расширились настройки для оптимизации производительности.

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

Основные настройки сервера в кластере 1С 8.3

Диапазоны ip-портов:

Диапазон портов рабочих процессов. Можно расширить, если сеансов очень много (несколько тысяч) и портов на все соединения не хватает, то целесообразно расширить этот диапазон.

Настройка сервера в кластере 1С 8.3. Диапазоны портов Настройка сервера в кластере 1С 8.3. Диапазоны портов
Так же такая ситуация может возникнуть при нагрузочном тестировании, например на 5000 онлайн пользователей и более.

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

Рекомендуется оставлять по умолчанию. Изменять есть смысл только тогда, когда много слабо нагруженных баз, можно увеличить их количество на 1 процесс, чтобы не плодить rphost-ы.

Настройка сервера 1С 8.3. параметры рабочих процессов Настройка сервера 1С 8.3. параметры рабочих процессов

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

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

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

"Срабатывание" настройки делится на несколько этапов:

  1. Критический объем памяти процессов;
  2. Безопасный расход памяти за один вызов;
  3. Временно допустимый объем памяти процессов;
  4. Интервал превышения допустимого объема памяти процессов.
Если превышает указанное значение, то пользователь получит ошибку «Недостаточно памяти для выполнения операции».

Центральный сервер (ЦС):

Определяет, является ли сервер центральным, т.е.:

  1. через который можно подключиться к кластеру.
  2. на котором работает главный менеджер кластера.
Именно ЦС указывается при подключении к базе данных (к кластеру).

Второй центральный сервер 1С 8.3

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

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

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

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

Ниже рассмотрю ключевые сервисы, которые рекомендуется выделять.

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

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

Так же не будет проблем с дублями используемых лицензий в случае "Уровня Отказоустойчивости" > 0.

Сервис заданий:

Дает возможность указать отдельный сервер для выполнения фоновых заданий. Таким образом снизить нагрузку на оперативную деятельность, а все расчеты вынести на фоновые задания на отдельную машину или виртуалку. Так же можно вынести выполнение фоновых заданий, например, на OS MS Windows, если требуется использование COM-объектов, таких как S Office или внешних компонент. При это большая часть кластера будет работать под Linux.

Сервис сеансовых данных / Сервис журналов регистрации / Сервис полнотекстового поиска:

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

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


Вопрос №1

Добрый день! Вопрос по защищенному соединению. Не ясно отличие значений «выключено» и «только соединение».

В видео-уроке сказано, что при варианте «выключено» производится шифрование пароля при первом обмене. Разве пароль передаётся не только при первом обмене, при аутентификации? Кстати, шифруется только пароль или имя тоже?

Ответ

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


Вопрос №2

Добрый день! В версии 8.3.15 платформы 1С список настроек рабочего сервера изменился (на скрине выделено красным). Можете вкратце рассказать о них?

параметры рабочего сервера

Ответ

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

“Временно допустимый объем памяти процессов” – максимальный объем памяти для всех рабочих процессов сервера. Если рабочий сервер стал использовать памяти больше, чем указано в этом параметре, то на этот рабочий сервер перестают назначаться новые соединения.

“Интервал превышения допустимого объема памяти процессов”- в секундах. Если через количество секунд, которое указано в этом параметре, рабочий сервер все еще продолжает превышать “Временно допустимый объем памяти процессов”, то будут перезапущены рабочие процессы с наибольшим потреблением памяти. Будет перезапущено такое количество процессов, чтобы оставшиеся процессы не потребляли больше, чем указано в параметре “Временно допустимый объем памяти процессов”.

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

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