Очистка кэша сервера 1С 8.3: что удалять и в каком порядке

· 9 мин

Содержание

Утром бухгалтеры жалуются: форма документа открывается по минуте, отчёт «думает» там, где вчера летал, а в базе после обновления конфигурации лезут странные ошибки. Железо в порядке, диск не забит. Часто виноват кэш: устаревшие данные в памяти рабочих процессов и мусор на диске. Чтобы почистить кэш сервера 1С 8.3, остановите службу агента сервера, удалите снимки сеансов snccntx* в каталоге кластера и временные файлы, затем запустите службу. На клиентских машинах отдельно чистится кэш пользователя.

Полный порядок ниже. Начните с самого безопасного способа и переходите к радикальным, только если предыдущий не помог.

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

Какой кэш бывает и откуда берутся тормоза

Под словом «кэш» в 1С обычно понимают три разных вещи. Чистить нужно то, что реально мешает.

ЧтоГде живётКогда мешает
Кэш рабочих процессовОперативная память rphostПамять растёт, процесс «пухнет», база тормозит к вечеру
Снимки сеансов и служебные файлы кластераКаталог кластера, папки reg_1541После сбоев, обновлений платформы, при разрастании каталога
Кэш клиентаПрофиль пользователяСтарые формы, «призраки» после обновления конфигурации

Признаки того, что пора чистить:

  • 🐢 один и тот же отчёт то быстрый, то медленный без видимой причины;
  • 📈 процесс rphost держит гигабайты памяти, хотя пользователей мало;
  • 🧩 после смены конфигурации видны старые формы и реквизиты;
  • 📁 каталог кластера занимает десятки гигабайт, хотя базы небольшие;
  • 🔁 помогает только перезагрузка сервера целиком.

Если тормозит всё время, а не «иногда», кэш — не главная причина. Смотрите нагрузку на диск, настройки СУБД, блокировки.

Способ 1. Перезапуск рабочих процессов через консоль кластера

Самый мягкий вариант: сервер остаётся включённым, чистится память процессов. Подходит клиент-серверной версии.

  1. Откройте консоль администрирования серверов 1С (оснастка «Администрирование серверов 1С:Предприятия»).
  2. Разверните свой сервер, затем кластер, и найдите раздел рабочих процессов.
  3. Посмотрите, сколько памяти занимает каждый процесс и сколько соединений на нём висит.
  4. Предупредите пользователей и завершите сеансы нужной базы.
  5. Удалите рабочий процесс: кластер сам поднимет новый, уже с пустой памятью.

💡 Если процессов несколько, а база одна, начните с самого «тяжёлого» по памяти. Часто этого хватает.

Автоматический перезапуск по расписанию кластера

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

  • интервал перезапуска в секундах;
  • допустимый объём памяти процесса;
  • интервал превышения допустимого объёма памяти.

Пример: интервал 86400 секунд (сутки) заставит кластер пересоздавать процессы раз в 24 часа. Если задать допустимый объём, процесс будет перезапущен после превышения порога и истечения заданного интервала. Не ставьте слишком маленькие значения: каждый перезапуск разрывает соединения.

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

Способ 2. Ручная очистка файлов сервера

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

Подготовка

  • Сообщите пользователям и дождитесь, пока все выйдут.
  • Убедитесь, что нет регламентных заданий и фоновых обменов.
  • Найдите каталог кластера. Для Windows по умолчанию это папка srvinfo внутри каталога установки платформы, но администратор мог выбрать другое место. Точный путь указан в свойствах службы «Агент сервера 1С:Предприятия 8.3» в параметре -d.
  • Внутри каталога будет папка вида reg_1541 (число — порт кластера, при нестандартном порту оно другое).

Порядок действий

  1. Остановите службу агента сервера 1С. На Windows — через оснастку «Службы» или командой:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"

Имя службы в вашей системе может отличаться, проверьте его в списке служб.

  1. Убедитесь, что процессы ragent, rmngr, rphost исчезли из диспетчера задач. Если висят, завершите вручную.
  2. Откройте каталог кластера reg_1541.
  3. Удалите папки и файлы со снимками сеансов: имена начинаются с snccntx. Они пересоздаются сами.
  4. Сами папки баз (имена в виде GUID) и файл списка кластеров 1CV8Clst.lst не трогайте. В них настройки кластера и информационных баз.
  5. Запустите службу и дождитесь полного старта.

На Linux всё то же самое, только имя службы и путь другие. Каталог кластера обычно лежит в домашней папке пользователя usr1cv8, в подкаталоге .1cv8. Останавливаем службу через systemctl, чистим те же snccntx*, запускаем обратно.

Не удаляйте всё содержимое каталога кластера «для чистоты». Вместе с кэшем уйдут настройки кластера и список баз.

Способ 3. Временные файлы на сервере

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

  • Для службы под учётной записью USR1CV8 это каталог временных файлов этого пользователя; если служба работает от локальной системной записи, ищите во временной папке системы.
  • На Linux это обычно /tmp и каталоги под пользователем usr1cv8.

Что можно удалять: файлы с расширением .tmp и папки с именами вида 1C_* или v8_*, которые старше суток и не заняты процессами. Остановите службу до чистки, иначе файлы окажутся заблокированными.

Простая проверка на Windows: сколько места занимает папка временных файлов.

dir /s "%TEMP%" | find "File(s)"

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

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

Способ 4. Кэш метаданных и реестр

Здесь осторожнее, это самые радикальные шаги.

Кэш метаданных на сервере

Информационная база хранит служебные структуры метаданных в каталоге своей базы внутри кластера (папка с именем-GUID). Как правило, после обновления конфигурации и перезапуска кластера они пересобираются автоматически. Вручную их удаляют только по рекомендации администратора или поддержки, когда после обновления базы остаются «призраки» старых объектов.

Безопасная последовательность:

  1. Сделайте выгрузку информационной базы в .dt.
  2. Остановите службу сервера.
  3. Скопируйте папку базы в безопасное место.
  4. Только после этого чистите служебные файлы кэша, оставив сами данные.
  5. Запустите службу и проверьте базу.

Реестр Windows

На сервере с 1С отдельного «кэша 1С» в реестре нет, поэтому «чистить реестр» ради кэша не нужно. Утилиты-чистильщики реестра лучше не запускать на сервере вообще. Реестр трогают лишь в специальных случаях, например при переносе лицензий или правке параметров службы, и всегда после экспорта ветки в .reg.

Чистильщики реестра на рабочем сервере — частая причина пропавших настроек службы и неработающего лицензирования.

Файловая и клиент-серверная база: чем отличается

Порядок действий зависит от варианта работы.

Клиент-серверный вариант. Чистится кэш сервера по способам выше и кэш на каждом клиентском компьютере. Начинайте с перезапуска рабочих процессов.

Файловая база. Сервера 1С нет, а значит, нет и rphost и snccntx. Здесь кэш лежит только на клиентских машинах, а на общем ресурсе — сами файлы базы (1Cv8.1CD). Ничего внутри каталога базы удалять нельзя: рядом лежит файл базы с данными. Чистим только кэш клиента.

Кэш клиента

Кэш клиента хранится в профиле пользователя: в каталогах 1C\1cv8 и 1C\1Cv8 в локальных и сетевых данных приложений. Чтобы найти их, нажмите Win+R и введите:

%LOCALAPPDATA%\1C\1cv8
%APPDATA%\1C\1cv8

Порядок такой:

  1. Закройте все окна 1С.
  2. Удалите внутри этих каталогов папки с именами в виде длинных идентификаторов. Они пересоздадутся при следующем входе.
  3. Файл списка баз ibases.v8i лежит рядом: если удалить его, пропадёт список подключённых баз. Скопируйте его заранее, если нужен.
  4. Запустите 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 под конец рабочего дня;
  • размер каталога кластера;
  • количество процессов и соединений на каждом.

Если один из них растёт быстрее остальных, чистить нужно не кэш, а искать причину.

Перед чисткой кэша сервера
Выполнено: 0 / 6

Что делать, если после чистки лучше не стало

Иногда кэш ни при чём. Проверьте остальное в таком порядке:

  • 🔌 Блокировки в СУБД. Долгие транзакции тормозят всех, а кэш тут бесполезен.
  • 💾 Статистика и индексы в СУБД. Если они устарели, запросы идут по плохим планам. Обслуживание индексов делает администратор СУБД.
  • 🧮 Нехватка памяти. Если сервер уходит в подкачку, добавьте оперативную память или разгрузите машину.
  • 🧩 Расширения и обработки. Неоптимальный код в расширении тормозит независимо от кэша.
  • 🌐 Сеть и терминальные серверы. Тормоза у части пользователей чаще связаны с каналом.
Диагностика: выберите симптом

Частые вопросы

Как часто надо чистить кэш сервера 1С?
Регулярно чистить не нужно, если настроен перезапуск рабочих процессов. Ручная чистка нужна после сбоев, обновления платформы или при странном поведении базы.
Можно ли чистить кэш, пока пользователи работают?
Перезапуск процессов через консоль кластера требует завершения сеансов. Удаление файлов кластера возможно только при остановленной службе. Работать в этот момент никто не сможет.
Потеряются ли данные базы?
Нет, если вы удаляете только снимки сеансов и временные файлы. Данные лежат в СУБД или в файле 1Cv8.1CD. Но копию перед чисткой делайте всегда.
Чем кэш сервера отличается от кэша клиента?
Серверный лежит на машине кластера и общий для всех пользователей, клиентский хранится в профиле пользователя. Проблема «только у одного человека» почти всегда в клиентском.
Помогает ли очистка кэша после обновления конфигурации?
Иногда да: если форма или реквизит показываются старыми. Сначала перезапустите клиент, затем чистите кэш клиента, и только потом трогайте сервер.