Очистка кэша сервера 1С 8.3: что удалять и в каком порядке
Содержание
Утром бухгалтеры жалуются: форма документа открывается по минуте, отчёт «думает» там, где вчера летал, а в базе после обновления конфигурации лезут странные ошибки. Железо в порядке, диск не забит. Часто виноват кэш: устаревшие данные в памяти рабочих процессов и мусор на диске. Чтобы почистить кэш сервера
1С 8.3, остановите службу агента сервера, удалите снимки сеансов snccntx* в каталоге кластера и временные файлы, затем запустите службу. На клиентских машинах отдельно чистится кэш пользователя.
Полный порядок ниже. Начните с самого безопасного способа и переходите к радикальным, только если предыдущий не помог.
Чистку кэша сервера делайте вне рабочего времени: все сеансы будут отключены. Перед удалением любых файлов в каталоге кластера сделайте копию каталога или хотя бы убедитесь, что есть свежая выгрузка баз.
Какой кэш бывает и откуда берутся тормоза
Под словом «кэш» в 1С обычно понимают три разных вещи. Чистить нужно то, что реально мешает.
| Что | Где живёт | Когда мешает |
|---|---|---|
| Кэш рабочих процессов | Оперативная память rphost | Память растёт, процесс «пухнет», база тормозит к вечеру |
| Снимки сеансов и служебные файлы кластера | Каталог кластера, папки reg_1541 | После сбоев, обновлений платформы, при разрастании каталога |
| Кэш клиента | Профиль пользователя | Старые формы, «призраки» после обновления конфигурации |
Признаки того, что пора чистить:
- 🐢 один и тот же отчёт то быстрый, то медленный без видимой причины;
- 📈 процесс
rphostдержит гигабайты памяти, хотя пользователей мало; - 🧩 после смены конфигурации видны старые формы и реквизиты;
- 📁 каталог кластера занимает десятки гигабайт, хотя базы небольшие;
- 🔁 помогает только перезагрузка сервера целиком.
Если тормозит всё время, а не «иногда», кэш — не главная причина. Смотрите нагрузку на диск, настройки СУБД, блокировки.
Способ 1. Перезапуск рабочих процессов через консоль кластера
Самый мягкий вариант: сервер остаётся включённым, чистится память процессов. Подходит клиент-серверной версии.
- Откройте консоль администрирования серверов 1С (оснастка «Администрирование серверов 1С:Предприятия»).
- Разверните свой сервер, затем кластер, и найдите раздел рабочих процессов.
- Посмотрите, сколько памяти занимает каждый процесс и сколько соединений на нём висит.
- Предупредите пользователей и завершите сеансы нужной базы.
- Удалите рабочий процесс: кластер сам поднимет новый, уже с пустой памятью.
💡 Если процессов несколько, а база одна, начните с самого «тяжёлого» по памяти. Часто этого хватает.
Автоматический перезапуск по расписанию кластера
Чтобы не делать это руками, в свойствах кластера есть параметры перезапуска рабочих процессов. Названия могут чуть отличаться по версиям платформы, ищите по смыслу:
- интервал перезапуска в секундах;
- допустимый объём памяти процесса;
- интервал превышения допустимого объёма памяти.
Пример: интервал 86400 секунд (сутки) заставит кластер пересоздавать процессы раз в 24 часа. Если задать допустимый объём, процесс будет перезапущен после превышения порога и истечения заданного интервала. Не ставьте слишком маленькие значения: каждый перезапуск разрывает соединения.
Для начала поставьте суточный перезапуск в ночное окно и понаблюдайте неделю. Если память к вечеру перестала расти, вопрос решён без ручной чистки.
Способ 2. Ручная очистка файлов сервера
Если перезапуска процессов мало, чистим файлы. Здесь нужна полная остановка службы.
Подготовка
- Сообщите пользователям и дождитесь, пока все выйдут.
- Убедитесь, что нет регламентных заданий и фоновых обменов.
- Найдите каталог кластера. Для Windows по умолчанию это папка
srvinfoвнутри каталога установки платформы, но администратор мог выбрать другое место. Точный путь указан в свойствах службы «Агент сервера 1С:Предприятия 8.3» в параметре-d. - Внутри каталога будет папка вида
reg_1541(число — порт кластера, при нестандартном порту оно другое).
Порядок действий
- Остановите службу агента сервера 1С. На Windows — через оснастку «Службы» или командой:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
Имя службы в вашей системе может отличаться, проверьте его в списке служб.
- Убедитесь, что процессы
ragent,rmngr,rphostисчезли из диспетчера задач. Если висят, завершите вручную. - Откройте каталог кластера
reg_1541. - Удалите папки и файлы со снимками сеансов: имена начинаются с
snccntx. Они пересоздаются сами. - Сами папки баз (имена в виде GUID) и файл списка кластеров
1CV8Clst.lstне трогайте. В них настройки кластера и информационных баз. - Запустите службу и дождитесь полного старта.
На Linux всё то же самое, только имя службы и путь другие. Каталог кластера обычно лежит в домашней папке пользователя usr1cv8, в подкаталоге .1cv8. Останавливаем службу через systemctl, чистим те же snccntx*, запускаем обратно.
Не удаляйте всё содержимое каталога кластера «для чистоты». Вместе с кэшем уйдут настройки кластера и список баз.
Способ 3. Временные файлы на сервере
Кластер и платформа пишут временные файлы в каталог временных данных пользователя, под которым запущена служба.
- Для службы под учётной записью
USR1CV8это каталог временных файлов этого пользователя; если служба работает от локальной системной записи, ищите во временной папке системы. - На Linux это обычно
/tmpи каталоги под пользователемusr1cv8.
Что можно удалять: файлы с расширением .tmp и папки с именами вида 1C_* или v8_*, которые старше суток и не заняты процессами. Остановите службу до чистки, иначе файлы окажутся заблокированными.
Простая проверка на Windows: сколько места занимает папка временных файлов.
dir /s "%TEMP%" | find "File(s)"
Выполняйте от имени пользователя службы, иначе увидите свою папку, а не серверную.
💡 Если каталог временных файлов разрастается каждую неделю, это не нормальный износ. Ищите «зависшие» фоновые задания или крашащиеся рабочие процессы, они оставляют после себя мусор.
Способ 4. Кэш метаданных и реестр
Здесь осторожнее, это самые радикальные шаги.
Кэш метаданных на сервере
Информационная база хранит служебные структуры метаданных в каталоге своей базы внутри кластера (папка с именем-GUID). Как правило, после обновления конфигурации и перезапуска кластера они пересобираются автоматически. Вручную их удаляют только по рекомендации администратора или поддержки, когда после обновления базы остаются «призраки» старых объектов.
Безопасная последовательность:
- Сделайте выгрузку информационной базы в
.dt. - Остановите службу сервера.
- Скопируйте папку базы в безопасное место.
- Только после этого чистите служебные файлы кэша, оставив сами данные.
- Запустите службу и проверьте базу.
Реестр Windows
На сервере с 1С отдельного «кэша 1С» в реестре нет, поэтому «чистить реестр» ради кэша не нужно. Утилиты-чистильщики реестра лучше не запускать на сервере вообще. Реестр трогают лишь в специальных случаях, например при переносе лицензий или правке параметров службы, и всегда после экспорта ветки в .reg.
Чистильщики реестра на рабочем сервере — частая причина пропавших настроек службы и неработающего лицензирования.
Файловая и клиент-серверная база: чем отличается
Порядок действий зависит от варианта работы.
Клиент-серверный вариант. Чистится кэш сервера по способам выше и кэш на каждом клиентском компьютере. Начинайте с перезапуска рабочих процессов.
Файловая база. Сервера 1С нет, а значит, нет и rphost и snccntx. Здесь кэш лежит только на клиентских машинах, а на общем ресурсе — сами файлы базы (1Cv8.1CD). Ничего внутри каталога базы удалять нельзя: рядом лежит файл базы с данными. Чистим только кэш клиента.
Кэш клиента
Кэш клиента хранится в профиле пользователя: в каталогах 1C\1cv8 и 1C\1Cv8 в локальных и сетевых данных приложений. Чтобы найти их, нажмите Win+R и введите:
%LOCALAPPDATA%\1C\1cv8
%APPDATA%\1C\1cv8
Порядок такой:
- Закройте все окна 1С.
- Удалите внутри этих каталогов папки с именами в виде длинных идентификаторов. Они пересоздадутся при следующем входе.
- Файл списка баз
ibases.v8iлежит рядом: если удалить его, пропадёт список подключённых баз. Скопируйте его заранее, если нужен. - Запустите 1С и зайдите в базу.
Первый запуск после чистки будет медленнее обычного: кэш собирается заново.
Для разработчиков есть параметр командной строки запуска /ClearCache. Он очищает кэш клиент-серверных вызовов при старте:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /S "сервер\база" /ClearCache
Номер платформы подставьте свой.
Автоматизация: как не делать это вручную
Если сервер нагружен, ручная чистка быстро надоест.
Вариант 1. Скрипт по расписанию
Простой bat-файл, который останавливает службу, чистит snccntx* и запускает её обратно. Запускайте через планировщик заданий Windows раз в неделю ночью.
@echo off
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
timeout /t 20
for /d %%i in ("D:\srvinfo\reg_1541\snccntx*") do rd /s /q "%%i"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Пути и имя службы подставьте свои и сначала проверьте скрипт на тестовом сервере. Если сеансы пользователей остались, служба остановится принудительно.
Вариант 2. Перезапуск средствами кластера
Параметры автоматического перезапуска процессов из способа 1 избавляют от большинства ручных операций. Это самый безопасный вариант для нагруженного сервера.
Вариант 3. Мониторинг
Раз в неделю смотрите три показателя:
- память
rphostпод конец рабочего дня; - размер каталога кластера;
- количество процессов и соединений на каждом.
Если один из них растёт быстрее остальных, чистить нужно не кэш, а искать причину.
Что делать, если после чистки лучше не стало
Иногда кэш ни при чём. Проверьте остальное в таком порядке:
- 🔌 Блокировки в СУБД. Долгие транзакции тормозят всех, а кэш тут бесполезен.
- 💾 Статистика и индексы в СУБД. Если они устарели, запросы идут по плохим планам. Обслуживание индексов делает администратор СУБД.
- 🧮 Нехватка памяти. Если сервер уходит в подкачку, добавьте оперативную память или разгрузите машину.
- 🧩 Расширения и обработки. Неоптимальный код в расширении тормозит независимо от кэша.
- 🌐 Сеть и терминальные серверы. Тормоза у части пользователей чаще связаны с каналом.
Частые вопросы
Как часто надо чистить кэш сервера 1С?
Можно ли чистить кэш, пока пользователи работают?
Потеряются ли данные базы?
1Cv8.1CD. Но копию перед чисткой делайте всегда.