Почему системные фоновые задания 1С:Предприятия запускаются непредсказуемо и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

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

Что такое системные фоновые задания?

Системные фоновые задания в 1С:Предприятии — это внутренние операции, которые платформа выполняет автоматически в фоновом режиме, незаметно для пользователя. Их основное предназначение — асинхронное выполнение различных прикладных задач. Это могут быть обновления конфигурации базы данных, загрузка курсов валют, обновление классификаторов, отложенное проведение документов, извлечение текста, обновление ответов ЕГАИС, обновление индексов полнотекстового поиска и многие другие операции. Фактическое выполнение регламентного задания, настроенного администратором, осуществляется через фоновое задание. Планировщик заданий регулярно проверяет расписание регламентных заданий и при совпадении условий создает и запускает соответствующее фоновое задание.

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

Как проявляется проблема непредсказуемого запуска фоновых заданий?

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

  1. Высокая нагрузка и зависания: Неконтролируемый запуск или зависание фоновых заданий приводит к значительной нагрузке на процессор и оперативную память сервера, делая работу в 1С практически невозможной. Сообщения пользователей подтверждают, что сервер может "виснуть", а все его ресурсы "съедаются" этими заданиями. В таких ситуациях крайне важен мониторинг качества работы информационных баз, позволяющий отследить статистику блокировок и длительных запросов.
  2. Захват лицензий: Запущенные фоновые задания могут захватить все доступные лицензии на 1С сервере, оставляя обычных пользователей без возможности подключения.
  3. Блокировка операций: Зависшие фоновые задания могут блокировать выполнение других критически важных операций, таких как обновление конфигурации или резервное копирование, требуя монопольного доступа к базе данных.
  4. Ошибка "разделенного доступа к базе данных": Эта ошибка часто возникает при попытке обновить базу данных, когда фоновое задание не дает установить монопольный режим, требуемый для обновления.
  5. Ошибка "Информационная база не обнаружена": В некоторых случаях фоновое задание может завершаться с ошибкой "Информационная база не обнаружена", особенно при взаимодействии с другими базами или при нестабильности кластера. Для своевременного выявления таких сбоев рекомендуется использовать инструменты анализа и информирования о невыполненных регламентных заданиях — есть контроль регламентных заданий и уведомление в Telegram.

Время появления таких заданий абсолютно рандомно – это может быть и 10:15, и 12:55, что еще больше усложняет диагностику и поиск причины.

Возможные причины непредсказуемого запуска и зависаний

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

  1. Проблемы с платформой 1С:Предприятие:

    • Баги в версиях 8.3.27: Многие пользователи связывают проблему с платформами серии 8.3.27. Например, на платформе 8.3.27.1719 системные фоновые задания "заманали", вызывая зависания сервера раз в час. Также есть отзывы о том, что платформа 8.3.27.1936 "еще хуже".
    • Неоднозначность обновлений: В то же время, есть сообщения о том, что переход на 8.3.27.1859 "вроде как перестало беспокоить" некоторых пользователей, но другие на той же версии (8.3.27.1859, 1С:БП 3.0.188.17) столкнулись с зависанием фоновых заданий и захватом лицензий. Это указывает на комплексный характер проблемы, которая может зависеть от множества факторов, включая особенности конфигурации и специфику использования.
  2. Перезапуск рабочих процессов rphost:

    • Один из пользователей предположил, что проблема может возникать, когда rphost (рабочий процесс кластера 1С) перезапускается, и настройки переносятся на новый процесс. Это может инициировать определенные внутренние служебные операции, которые платформа интерпретирует как "системные фоновые задания" для фонового обновления или реструктуризации.
  3. Внутренние механизмы платформы, связанные с обновлением конфигурации:

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

Как решить проблему непредсказуемого запуска системных фоновых заданий?

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

  1. Анализ и обновление платформы 1С:Предприятия

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

    • Изучаем текущую версию: Если мы используем одну из версий серии 8.3.27, таких как 8.3.27.1719 или 8.3.27.1936, которые часто упоминаются как проблемные, то вполне вероятно, что источник наших бед кроется именно здесь.
    • Рассматриваем обновление: По отзывам, некоторые пользователи отмечали улучшение после перехода на 8.3.27.1859, хотя другие на этой же версии сталкивались с проблемами. Тем не менее, первым шагом всегда является обновление платформы 1С до актуальной и, главное, стабильной и рекомендованной версии. Разработчики постоянно выпускают исправления, и в новых релизах могут быть устранены ошибки, вызывающие непредсказуемое поведение фоновых заданий.
    • Тестируем перед внедрением: Перед обновлением рабочей системы, обязательно протестируйте новую версию платформы на тестовой копии базы данных, чтобы убедиться в отсутствии регрессий и появлении новых проблем.

    Один из пользователей отметил, что после перехода на платформу 8.3.27.1859 проблема "вроде как престало беспокоить". Это дает нам надежду, но не является гарантией для всех.

  2. Управление регламентными и фоновыми заданиями

    Мы можем использовать встроенные механизмы 1С для контроля над фоновыми заданиями или воспользоваться более удобными инструментами, такими как кроссплатформенная консоль администрирования кластера серверов 1С.

    1. Блокировка регламентных заданий:

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

      • Для серверных баз: Мы можем включить блокировку в свойствах информационной базы в консоли администрирования серверов 1С. Для этого необходимо установить флажок "Блокировка регламентных заданий включена".
      • Для файловых баз: Для файловых информационных баз блокировка может быть настроена через параметр запуска /AllowExecuteScheduledJobs –off в строке запуска 1С:Предприятия.

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

    2. Анализ и отключение ненужных или оптимизация расписания заданий:

      Многие фоновые задания в 1С:Предприятии (например, загрузка курсов валют, обновление классификаторов) могут быть неактуальны или некритичны для нашего бизнеса — решается через инструментарий для управления регламентными и фоновыми заданиями. Их отключение или корректировка расписания выполнения позволяет значительно снизить нагрузку и повысить производительность системы.

      • Где искать: Перейдем в раздел "Администрирование" - "Обслуживание" - "Регламентные и фоновые задания".
      • Что делать: Внимательно проанализируем список заданий. Если какие-то задания нам не нужны, мы можем их отключить. Для критически важных, но ресурсоемких заданий, таких как обновление индексов полнотекстового поиска, скорректируем расписание, перенеся их выполнение на нерабочее время (ночь, выходные дни), когда нагрузка на сервер минимальна.
  3. Настройка и контроль рабочих процессов rphost

    Как мы выяснили, перезапуск rphost может быть связан с возникновением проблемы. Мы можем влиять на поведение рабочих процессов для стабилизации системы.

    1. Причины перезапуска rphost:

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

    2. Настройка кластера 1С:

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

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

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

  4. Ручное управление зависшими системными заданиями

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

    1. Отмена или удаление заданий через консоль:

      Зависшие фоновые задания можно попытаться отменить или удалить через консоль регламентных и фоновых заданий (раздел "Администрирование" - "Обслуживание" - "Регламентные и фоновые задания"). Для этого найдем проблемное задание и попробуем изменить его статус или удалить.

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

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

    3. "Деликатное" удаление проблемного rphost по PID:

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

      • Определим рабочий процесс rphost.exe, в котором "висит" системное фоновое задание. Это можно сделать через консоль администрирования серверов 1С, сопоставив зависшее задание с конкретным рабочим процессом.
      • Отметим этот рабочий процесс как неиспользуемый.
      • Подождем, пока все пользовательские и другие служебные соединения перейдут на другие доступные рабочие процессы.
      • Затем завершим процесс rphost.exe по его уникальному идентификатору (PID) через диспетчер задач операционной системы или панель управления сторонним инструментом.
  5. Дополнительные меры оптимизации и настройки

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

    1. Перенос на отдельный сервер для фоновых заданий:

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

    2. Проверка прав пользователя:

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

    3. Единое время на всех серверах:

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

    4. Анализ технологического журнала:

      Для глубокого анализа причин проблем, связанных с фоновыми заданиями, необходимо настроить и изучать технологический журнал (ТЖ) 1С. Также полезно внедрить комплекс мониторинга Yellow Watcher, который поможет собрать статистику по управляемым блокировкам и длительным запросам.

  6. Особый случай: Системное фоновое задание UpdateConfigurationLicense

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

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

← На главную