Многие системные администраторы и пользователи файловых версий 1С:Предприятие 8.3 (особенно конфигураций «Бухгалтерия предприятия 3.0» и «Зарплата и управление персоналом 3.0») сталкиваются с неприятной ситуацией. После штатного закрытия программы в диспетчере задач Windows продолжает «висеть» процесс 1cv8c.exe. Он может потреблять значительное количество оперативной памяти (вплоть до нескольких гигабайт) и нагружать центральный процессор, замедляя работу всего компьютера или терминального сервера.
В этой статье мы подробно разберем, почему так происходит, какие механизмы платформы заставляют программу продолжать работу в фоновом режиме и как эффективно бороться с этим явлением, чтобы освободить ресурсы системы.
Проанализируем механику работы 1С в файловом варианте. В отличие от клиент-серверного режима, где за выполнение регламентных операций отвечает отдельная служба (кластер серверов), в файловой базе роль «сервера» вынужден брать на себя один из клиентских сеансов.
Рассмотрим основные факторы, удерживающие процесс в памяти:
Выясним, как запретить конкретному сеансу брать на себя роль исполнителя фоновых задач. Для этого воспользуемся специальными ключами запуска. Это самый эффективный метод, если вы хотите, чтобы база закрывалась мгновенно.
Выполним следующие шаги:
/AllowExecuteScheduledJobs -Off
Важные замечания по синтаксису:
/SchJobDn -Y, однако для версии 8.3.16 и выше рекомендуется именно /AllowExecuteScheduledJobs -Off.Рассмотрим ситуацию, когда мы не хотим использовать ключи запуска, а желаем навести порядок внутри самой конфигурации. В БП 3.0 и ЗУП 3.0 огромное количество заданий, которые не всегда нужны пользователю.
Проанализируем настройки внутри 1С:
Особое внимание уделим Полнотекстовому поиску: если пользователи не пользуются строкой глобального поиска в верхней части экрана, его лучше отключить совсем. Для этого перейдем в Администрирование — Общие настройки — Полнотекстовый поиск данных и снимем галочку «Полнотекстовый поиск данных разрешен». Это значительно ускорит закрытие программы и снизит потребление памяти до 2–4 Гб в пике.
Посмотрим на проблему с точки зрения системного администрирования. Часто 1С не может закрыться, потому что антивирус блокирует доступ к файлу базы данных 1Cv8.1CD или временным файлам в момент их закрытия.
Настроим исключения антивируса:
*.1CD, *.1CL, *.grs, *.pft.1cv8.exe, 1cv8c.exe.%AppData%\Local\1C\1cv8\ и %Temp%.Если ваша база лежит на сервере, проанализируем тип дискового массива. Использование RAID 5 на обычных SATA-дисках (особенно встроенных в материнскую плату) — это критическая точка отказа производительности. При записи больших объемов данных (а при закрытии 1С именно это и происходит) такие массивы показывают крайне низкую скорость. Рассмотрим возможность перехода на SSD-накопители или зеркальный массив RAID 1, что позволит процессу быстрее завершать операции ввода-вывода.
Выясним, чем рискует пользователь, нажимая «Снять задачу» в диспетчере задач. В момент, когда 1С «висит» в фоне, она может записывать данные регламентного задания в таблицы БД. Если прервать этот процесс некорректно, существует риск:
Поэтому наш совет: вместо принудительного завершения процессов, лучше один раз настроить ключи запуска /AllowExecuteScheduledJobs -Off и оптимизировать список регламентных заданий. Это обеспечит стабильную работу системы и быстрый отклик компьютеров пользователей.