Что делать, если 1С:Бухгалтерия 3.0 сильно зависает на сервере, а другие базы работают нормально?

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

Зависания информационных баз 1С:Предприятия являются одной из самых неприятных проблем, с которыми сталкиваются пользователи и системные администраторы. Особую сложность вызывает ситуация, когда проблема касается лишь одной или нескольких конфигураций, в то время как другие работают без сбоев. В этой статье мы подробно рассмотрим возможные причины, почему 1С:Бухгалтерия предприятия (БП) 3.0 может сильно зависать, при этом оставляя конфигурации, такие как 1С:Камин или 1С:Документооборот, работоспособными. Мы проанализируем шаги, которые уже были предприняты, и предложим дополнительные методы диагностики и решения проблемы.

Начнем с анализа первоначальных действий и симптомов

Прежде чем углубляться в детали, давайте рассмотрим, что уже было сделано и какие симптомы наблюдаются. Автор столкнулся с ситуацией, когда одномоментно начали сильно зависать рабочая база 1С:БП 3.0 и её копии. Главный признак – это долгое время загрузки (порядка 15 минут) и последующие зависания в процессе работы. При этом другие конфигурации, такие как 1С:Камин и 1С:Документооборот, загружаются за считанные секунды и работают стабильно.

Для устранения проблемы были предприняты следующие шаги:

  1. Перезагрузка серверов: Были перезагружены сервер SQL и сервер приложений 1С. Этот шаг является стандартным для устранения временных сбоев, но в данном случае он не принес результата.
  2. Чистка серверного кэша: Очистка кэша сервера 1С:Предприятия – еще один базовый шаг для решения проблем с производительностью, однако и он не помог.
  3. Обновление платформы: Установка более поздней версии платформы 1С:Предприятия иногда может решить проблемы, связанные с ошибками или неоптимальной работой предыдущих версий. В данном случае это также не дало эффекта.
  4. Восстановление из бекапов: Автор восстанавливал базы из различных бэкапов, но все они зависали. Это крайне важный симптом, указывающий на то, что проблема может быть не в самой базе данных как таковой (если бэкапы были сделаны до возникновения проблемы), а в инфраструктуре или окружении.
  5. Попытка выгрузки/загрузки базы в .dt: Выгрузка базы в файл .dt и последующая загрузка в новую базу является хорошим способом проверки целостности и исправления некоторых логических ошибок, однако этот процесс сам по себе длительный, и его результат еще предстоит оценить.

Важный аспект: проблема затронула только 1С:БП 3.0 и её копии, при этом 1С:Камин и 1С:Документооборот работают стабильно. Это наводит на мысль, что причина либо специфична для конфигурации БП (например, её требования к ресурсам или особенности работы), либо кроется в тех компонентах инфраструктуры, которые БП использует более интенсивно или иначе, чем другие конфигурации.

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

Резкое замедление работы, особенно при загрузке баз и выполнении операций ввода-вывода, очень часто указывает на проблемы с дисковой подсистемой. Тот факт, что 1С:БП 3.0 зависает, а другие базы нет, может объясняться тем, что БП более интенсивно работает с диском или использует другой участок дискового пространства.

  1. Проверка RAID-массива: Мы обязательно проверим состояние RAID-массива, если он используется. Один из дисков в массиве мог выйти из строя, что приводит к деградации производительности всего массива или его переходу в режим восстановления, который сопровождается сильным падением скорости чтения/записи. Обратите внимание на индикаторы состояния дисков на сервере и логи аппаратного RAID-контроллера.
  2. Мониторинг дисковой активности: Воспользуемся встроенными средствами мониторинга операционной системы (например, Монитор ресурсов в Windows) для отслеживания загрузки дисков (IOPS, пропускная способность, длина очереди). Высокая длина очереди диска (Disk Queue Length) может указывать на узкое место в дисковой подсистеме. Мы посмотрим, какие процессы генерируют основную нагрузку во время зависаний 1С:БП.
  3. Размещение файлов базы данных: Убедимся, что файлы .mdf и .ldf всех баз (БП, Камин, Документооборот) физически валяются в одном месте на диске, или на разных разделах/дисках. Если БП находится на отдельном диске или разделе, который имеет проблемы, это объясняет избирательность зависаний.
  4. Перемещение базы: Если есть возможность, попробуем временно разместить файлы проблемной базы 1С:БП на другом, заведомо исправном и быстром диске (или даже на другом физическом сервере, если это файловый вариант или тестовая SQL-среда). Это поможет изолировать проблему и понять, связана ли она с дисками или с чем-то другим.

Важно: Проблемы ввода-вывода, о которых часто сообщают в логах SQL Server или системных логах Windows, являются прямым указанием на проблемы с дисковой подсистемой. Мы внимательно изучим эти логи на предмет соответствующих ошибок и предупреждений.

Оптимизация и диагностика SQL Server

Поскольку большинство современных конфигураций 1С:Предприятия, включая БП 3.0, работают в клиент-серверном варианте с использованием SQL Server, некорректная работа или неоптимальные настройки SQL могут быть ключевой причиной зависаний.

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

    Используйте команду DBCC CHECKDB для проверки целостности базы данных 1С:БП. Запустим её с опциями, которые позволят получить подробный отчет об ошибках:

    DBCC CHECKDB('ИмяВашейБазыБП') WITH NO_INFOMSGS, ALL_ERRORMSGS;

    Если DBCC CHECKDB обнаружит ошибки, возможно, потребуется более глубокое восстановление или повторное развертывание базы после устранения проблем с дисками.

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

    Мы настроим регулярное обслуживание индексов (перестроение или реорганизация) и обновление статистики для базы данных 1С:БП. Если планы обслуживания уже настроены, мы проверим, выполняются ли они корректно и регулярно, и нет ли ошибок в их работе.

    Перестроение индексов:

    ALTER INDEX ALL ON ВашаТаблица REBUILD;

    Обновление статистики:

    UPDATE STATISTICS ВашаТаблица;

    Эти операции лучше выполнять для всей базы данных в целом или с использованием инструментов SQL Server для обслуживания баз.

  3. Настройки SQL Server:
    • Распределение памяти: Мы проверим настройки памяти для SQL Server. Если SQL Server не выделено достаточно памяти или она распределяется неоптимально, это может привести к сбросу данных из кэша на диск и, как следствие, к замедлениям. Убедимся, что для SQL Server установлено адекватное ограничение на используемую память, оставляя достаточно ресурсов для операционной системы и сервера приложений 1С.
    • План обслуживания SQL Server: Мы убедимся, что для базы данных 1С:БП настроен корректный план обслуживания, включающий проверку целостности, резервное копирование, обновление статистики и перестроение индексов.
    • Параметры запуска SQL Server: Проверим, нет ли специфических параметров запуска SQL Server, которые могут негативно влиять на производительность.
  4. Логи SQL Server и Windows: Мы тщательно изучим логи ошибок SQL Server и логи событий Windows на сервере. В них могут быть записи об ошибках, предупреждениях или критических событиях, которые совпадают по времени с моментами зависаний 1С:БП. Особое внимание уделим ошибкам ввода-вывода (I/O errors), которые указывают на проблемы с дисками, или ошибкам, связанным с блокировками или нехваткой ресурсов в SQL Server.

Анализ работы сервера 1С:Предприятия и конфигурации

Если проблемы не обнаружены в дисковой подсистеме или SQL Server, следующим шагом будет анализ работы самого сервера 1С:Предприятия и особенностей конфигурации 1С:БП.

  1. Проверка регламентных заданий: Автор уже грешил на регламентные задания и включал блокировку. Мы подтвердим, что все регламентные задания действительно были отключены или приостановлены на момент тестирования. Некоторые регламентные задания в 1С:БП (например, закрытие месяца, расчет себестоимости, пересчет итогов) могут быть очень ресурсоемкими и вызывать длительные блокировки, если они выполняются неоптимально или сталкиваются с большим объемом данных. Мы проверим журнал регистрации на предмет длительных операций, которые запускаются регламентными заданиями в БП.
  2. Сеансы и соединения в консоли кластера: Мы откроем консоль кластера серверов 1С:Предприятия и проверим список активных сеансов и соединений. Возможно, там присутствуют "странные" или "зависшие" сеансы, которые потребляют ресурсы или блокируют другие операции. Мы внимательно рассмотрим информацию о сеансах 1С:БП, их активности, длительности и потребляемых ресурсах.
  3. Расширения конфигурации и доработки: Автор спрашивает про расширения и закладки в коде. Мы выясним, используются ли в 1С:БП какие-либо расширения конфигурации или внешние отчеты/обработки, которые не применяются в 1С:Камин или 1С:Документооборот. Эти расширения или доработки могут содержать неоптимизированный код, который вызывает длительные запросы, блокировки или утечки памяти, приводя к зависаниям. Попробуем отключить все расширения и проверить работу БП без них.
  4. Технологический журнал 1С:Предприятия: Это мощный инструмент для диагностики проблем производительности. Мы настроим и проанализируем Технологический журнал 1С:Предприятия для базы 1С:БП. Он позволяет собирать подробную информацию о событиях, происходящих на сервере 1С, включая длительность выполнения запросов, блокировки, потребление памяти и CPU.

    Мы обратим особое внимание на события DBMSSQL (длительность запросов к SQL Server), TDEADLOCK (взаимные блокировки), CALL (вызовы методов платформы), EXCP (исключения). Анализ журнала поможет выявить конкретные проблемные запросы, длительные блокировки или другие операции, вызывающие зависания в 1С:БП. Возможно, проблема кроется в каком-то специфическом участке кода 1С:БП, который стал работать неоптимально из-за роста объемов данных или изменившихся условий эксплуатации.

  5. Кеш 1С: Несмотря на то, что серверный кеш уже чистили, мы также проверим клиентский кеш 1С:Предприятия на рабочих станциях. Поврежденный клиентский кеш может вызывать проблемы с загрузкой и работой баз. Удалим папки кэша 1С для пользователей, у которых возникают зависания (обычно находятся в %LOCALAPPDATA%\1C\1Cv8).

Влияние антивирусного программного обеспечения

Антивирусные программы, если они настроены некорректно, могут существенно замедлять работу серверов 1С и SQL Server, особенно если они сканируют активные файлы баз данных. Поскольку проблема избирательна, возможно, антивирус по какой-то причине более активно сканирует файлы, связанные с 1С:БП, или конфликтует с её процессами.

  1. Исключения для антивируса: Мы убедимся, что для SQL Server и сервера приложений 1С:Предприятия исключены из проверки антивирусными программами все необходимые папки и файлы. Это включает:
    • Папки с базами данных SQL Server (файлы .mdf, .ldf, .ndf).
    • Папки с файлами временных баз данных SQL Server (tempdb).
    • Папки с кэшем сервера 1С:Предприятия.
    • Исполняемые файлы сервера 1С (ragent.exe, rmngr.exe, rphost.exe).
    • Исполняемые файлы SQL Server (sqlservr.exe, sqlwriter.exe и другие).

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

Проверка сетевого взаимодействия

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

  1. Тестирование сети: Мы проверим стабильность и пропускную способность сетевого соединения между всеми компонентами:
    • Клиентские компьютеры и сервер 1С.
    • Сервер 1С и сервер SQL.

    Используем утилиты ping, tracert для проверки доступности и задержек. Большие задержки или потери пакетов могут стать причиной замедлений. Проверим сетевое оборудование (коммутаторы, маршрутизаторы) на наличие ошибок или перегрузок. Возможно, сетевой трафик 1С:БП более объемен или содержит специфические запросы, которые вызывают задержки на уровне сети.

Дополнительные рекомендации

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

  1. Создание новой базы и загрузка .dt: Автор уже приступил к выгрузке базы в формат .dt с целью загрузки в новую информационную базу. Это хороший шаг, который иногда помогает решить проблемы, связанные с логическими ошибками в структуре базы данных. Мы дождемся результатов этой операции и проверим производительность новой базы.
  2. Тестирование на другом оборудовании: Если есть возможность, мы развернем проблемную базу 1С:БП на другом сервере с заведомо исправным и производительным оборудованием (как для 1С, так и для SQL). Это поможет полностью исключить аппаратные проблемы и проблемы с операционной системой текущего сервера.

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

Комплексный подход к диагностике, включающий проверку всех звеньев цепочки (диски, SQL Server, сервер 1С, конфигурация, сеть, антивирус), позволит нам локализовать и устранить причину зависаний 1С:Бухгалтерии предприятия 3.0.

← На главную