← На главную
Зависания информационных баз 1С:Предприятия являются одной из самых неприятных проблем, с которыми сталкиваются пользователи и системные администраторы. Особую сложность вызывает ситуация, когда проблема касается лишь одной или нескольких конфигураций, в то время как другие работают без сбоев. В этой статье мы подробно рассмотрим возможные причины, почему 1С:Бухгалтерия предприятия (БП) 3.0 может сильно зависать, при этом оставляя конфигурации, такие как 1С:Камин или 1С:Документооборот, работоспособными. Мы проанализируем шаги, которые уже были предприняты, и предложим дополнительные методы диагностики и решения проблемы.
Начнем с анализа первоначальных действий и симптомов
Прежде чем углубляться в детали, давайте рассмотрим, что уже было сделано и какие симптомы наблюдаются. Автор столкнулся с ситуацией, когда одномоментно начали сильно зависать рабочая база 1С:БП 3.0 и её копии. Главный признак – это долгое время загрузки (порядка 15 минут) и последующие зависания в процессе работы. При этом другие конфигурации, такие как 1С:Камин и 1С:Документооборот, загружаются за считанные секунды и работают стабильно.
Для устранения проблемы были предприняты следующие шаги:
- Перезагрузка серверов: Были перезагружены сервер SQL и сервер приложений 1С. Этот шаг является стандартным для устранения временных сбоев, но в данном случае он не принес результата.
- Чистка серверного кэша: Очистка кэша сервера 1С:Предприятия – еще один базовый шаг для решения проблем с производительностью, однако и он не помог.
- Обновление платформы: Установка более поздней версии платформы 1С:Предприятия иногда может решить проблемы, связанные с ошибками или неоптимальной работой предыдущих версий. В данном случае это также не дало эффекта.
- Восстановление из бекапов: Автор восстанавливал базы из различных бэкапов, но все они зависали. Это крайне важный симптом, указывающий на то, что проблема может быть не в самой базе данных как таковой (если бэкапы были сделаны до возникновения проблемы), а в инфраструктуре или окружении.
- Попытка выгрузки/загрузки базы в .dt: Выгрузка базы в файл .dt и последующая загрузка в новую базу является хорошим способом проверки целостности и исправления некоторых логических ошибок, однако этот процесс сам по себе длительный, и его результат еще предстоит оценить.
Важный аспект: проблема затронула только 1С:БП 3.0 и её копии, при этом 1С:Камин и 1С:Документооборот работают стабильно. Это наводит на мысль, что причина либо специфична для конфигурации БП (например, её требования к ресурсам или особенности работы), либо кроется в тех компонентах инфраструктуры, которые БП использует более интенсивно или иначе, чем другие конфигурации.
Диагностика проблем с дисковой подсистемой
Резкое замедление работы, особенно при загрузке баз и выполнении операций ввода-вывода, очень часто указывает на проблемы с дисковой подсистемой. Тот факт, что 1С:БП 3.0 зависает, а другие базы нет, может объясняться тем, что БП более интенсивно работает с диском или использует другой участок дискового пространства.
- Проверка RAID-массива: Мы обязательно проверим состояние RAID-массива, если он используется. Один из дисков в массиве мог выйти из строя, что приводит к деградации производительности всего массива или его переходу в режим восстановления, который сопровождается сильным падением скорости чтения/записи. Обратите внимание на индикаторы состояния дисков на сервере и логи аппаратного RAID-контроллера.
- Мониторинг дисковой активности: Воспользуемся встроенными средствами мониторинга операционной системы (например, Монитор ресурсов в Windows) для отслеживания загрузки дисков (IOPS, пропускная способность, длина очереди). Высокая длина очереди диска (Disk Queue Length) может указывать на узкое место в дисковой подсистеме. Мы посмотрим, какие процессы генерируют основную нагрузку во время зависаний 1С:БП.
- Размещение файлов базы данных: Убедимся, что файлы
.mdf и .ldf всех баз (БП, Камин, Документооборот) физически валяются в одном месте на диске, или на разных разделах/дисках. Если БП находится на отдельном диске или разделе, который имеет проблемы, это объясняет избирательность зависаний.
- Перемещение базы: Если есть возможность, попробуем временно разместить файлы проблемной базы 1С:БП на другом, заведомо исправном и быстром диске (или даже на другом физическом сервере, если это файловый вариант или тестовая SQL-среда). Это поможет изолировать проблему и понять, связана ли она с дисками или с чем-то другим.
Важно: Проблемы ввода-вывода, о которых часто сообщают в логах SQL Server или системных логах Windows, являются прямым указанием на проблемы с дисковой подсистемой. Мы внимательно изучим эти логи на предмет соответствующих ошибок и предупреждений.
Оптимизация и диагностика SQL Server
Поскольку большинство современных конфигураций 1С:Предприятия, включая БП 3.0, работают в клиент-серверном варианте с использованием SQL Server, некорректная работа или неоптимальные настройки SQL могут быть ключевой причиной зависаний.
- Проверка целостности базы данных: Первым делом мы убедимся в целостности базы данных 1С:БП. Несмотря на то, что восстановление из бэкапов не помогло, проблема могла возникнуть из-за повреждения базы уже после восстановления или из-за скрытых ошибок, которые проявляются только при интенсивной работе.
Используйте команду DBCC CHECKDB для проверки целостности базы данных 1С:БП. Запустим её с опциями, которые позволят получить подробный отчет об ошибках:
DBCC CHECKDB('ИмяВашейБазыБП') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Если DBCC CHECKDB обнаружит ошибки, возможно, потребуется более глубокое восстановление или повторное развертывание базы после устранения проблем с дисками.
- Обслуживание индексов и статистики: Устаревшие или отсутствующие индексы, а также фрагментация индексов и таблиц в базах данных 1С:БП могут значительно замедлять выполнение запросов. 1С:БП, как правило, имеет более сложную структуру данных и генерирует больше разнообразных запросов, чем, например, 1С:Камин, что делает её более чувствительной к состоянию индексов.
Мы настроим регулярное обслуживание индексов (перестроение или реорганизация) и обновление статистики для базы данных 1С:БП. Если планы обслуживания уже настроены, мы проверим, выполняются ли они корректно и регулярно, и нет ли ошибок в их работе.
Перестроение индексов:
ALTER INDEX ALL ON ВашаТаблица REBUILD;
Обновление статистики:
UPDATE STATISTICS ВашаТаблица;
Эти операции лучше выполнять для всей базы данных в целом или с использованием инструментов SQL Server для обслуживания баз.
- Настройки SQL Server:
- Распределение памяти: Мы проверим настройки памяти для SQL Server. Если SQL Server не выделено достаточно памяти или она распределяется неоптимально, это может привести к сбросу данных из кэша на диск и, как следствие, к замедлениям. Убедимся, что для SQL Server установлено адекватное ограничение на используемую память, оставляя достаточно ресурсов для операционной системы и сервера приложений 1С.
- План обслуживания SQL Server: Мы убедимся, что для базы данных 1С:БП настроен корректный план обслуживания, включающий проверку целостности, резервное копирование, обновление статистики и перестроение индексов.
- Параметры запуска SQL Server: Проверим, нет ли специфических параметров запуска SQL Server, которые могут негативно влиять на производительность.
- Логи SQL Server и Windows: Мы тщательно изучим логи ошибок SQL Server и логи событий Windows на сервере. В них могут быть записи об ошибках, предупреждениях или критических событиях, которые совпадают по времени с моментами зависаний 1С:БП. Особое внимание уделим ошибкам ввода-вывода (I/O errors), которые указывают на проблемы с дисками, или ошибкам, связанным с блокировками или нехваткой ресурсов в SQL Server.
Анализ работы сервера 1С:Предприятия и конфигурации
Если проблемы не обнаружены в дисковой подсистеме или SQL Server, следующим шагом будет анализ работы самого сервера 1С:Предприятия и особенностей конфигурации 1С:БП.
- Проверка регламентных заданий: Автор уже грешил на регламентные задания и включал блокировку. Мы подтвердим, что все регламентные задания действительно были отключены или приостановлены на момент тестирования. Некоторые регламентные задания в 1С:БП (например, закрытие месяца, расчет себестоимости, пересчет итогов) могут быть очень ресурсоемкими и вызывать длительные блокировки, если они выполняются неоптимально или сталкиваются с большим объемом данных. Мы проверим журнал регистрации на предмет длительных операций, которые запускаются регламентными заданиями в БП.
- Сеансы и соединения в консоли кластера: Мы откроем консоль кластера серверов 1С:Предприятия и проверим список активных сеансов и соединений. Возможно, там присутствуют "странные" или "зависшие" сеансы, которые потребляют ресурсы или блокируют другие операции. Мы внимательно рассмотрим информацию о сеансах 1С:БП, их активности, длительности и потребляемых ресурсах.
- Расширения конфигурации и доработки: Автор спрашивает про расширения и закладки в коде. Мы выясним, используются ли в 1С:БП какие-либо расширения конфигурации или внешние отчеты/обработки, которые не применяются в 1С:Камин или 1С:Документооборот. Эти расширения или доработки могут содержать неоптимизированный код, который вызывает длительные запросы, блокировки или утечки памяти, приводя к зависаниям. Попробуем отключить все расширения и проверить работу БП без них.
- Технологический журнал 1С:Предприятия: Это мощный инструмент для диагностики проблем производительности. Мы настроим и проанализируем
Технологический журнал 1С:Предприятия для базы 1С:БП. Он позволяет собирать подробную информацию о событиях, происходящих на сервере 1С, включая длительность выполнения запросов, блокировки, потребление памяти и CPU.
Мы обратим особое внимание на события DBMSSQL (длительность запросов к SQL Server), TDEADLOCK (взаимные блокировки), CALL (вызовы методов платформы), EXCP (исключения). Анализ журнала поможет выявить конкретные проблемные запросы, длительные блокировки или другие операции, вызывающие зависания в 1С:БП. Возможно, проблема кроется в каком-то специфическом участке кода 1С:БП, который стал работать неоптимально из-за роста объемов данных или изменившихся условий эксплуатации.
- Кеш 1С: Несмотря на то, что серверный кеш уже чистили, мы также проверим клиентский кеш 1С:Предприятия на рабочих станциях. Поврежденный клиентский кеш может вызывать проблемы с загрузкой и работой баз. Удалим папки кэша 1С для пользователей, у которых возникают зависания (обычно находятся в
%LOCALAPPDATA%\1C\1Cv8).
Влияние антивирусного программного обеспечения
Антивирусные программы, если они настроены некорректно, могут существенно замедлять работу серверов 1С и SQL Server, особенно если они сканируют активные файлы баз данных. Поскольку проблема избирательна, возможно, антивирус по какой-то причине более активно сканирует файлы, связанные с 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С и сервер SQL.
Используем утилиты ping, tracert для проверки доступности и задержек. Большие задержки или потери пакетов могут стать причиной замедлений. Проверим сетевое оборудование (коммутаторы, маршрутизаторы) на наличие ошибок или перегрузок. Возможно, сетевой трафик 1С:БП более объемен или содержит специфические запросы, которые вызывают задержки на уровне сети.
Дополнительные рекомендации
Если перечисленные шаги не привели к однозначному решению проблемы, мы можем рассмотреть следующие дополнительные действия:
- Создание новой базы и загрузка .dt: Автор уже приступил к выгрузке базы в формат .dt с целью загрузки в новую информационную базу. Это хороший шаг, который иногда помогает решить проблемы, связанные с логическими ошибками в структуре базы данных. Мы дождемся результатов этой операции и проверим производительность новой базы.
- Тестирование на другом оборудовании: Если есть возможность, мы развернем проблемную базу 1С:БП на другом сервере с заведомо исправным и производительным оборудованием (как для 1С, так и для SQL). Это поможет полностью исключить аппаратные проблемы и проблемы с операционной системой текущего сервера.
Важно: При проведении любых диагностических и оптимизационных работ всегда делайте актуальные резервные копии баз данных. Это позволит избежать потери данных в случае непредвиденных ситуаций.
Комплексный подход к диагностике, включающий проверку всех звеньев цепочки (диски, SQL Server, сервер 1С, конфигурация, сеть, антивирус), позволит нам локализовать и устранить причину зависаний 1С:Бухгалтерии предприятия 3.0.