Сброс серверного кэша 1С:Предприятия без потери настроек кластера
Содержание
Чтобы почистить кэш сервера
1С 8, остановите службу «Агент сервера 1С:Предприятия 8.3», удалите в каталоге кластера srvinfo\reg_1541 все папки, имя которых начинается с snccntx, и снова запустите службу. Файлы *.lst и папки с GUID информационных баз не трогайте: в них лежит реестр кластера и служебные данные баз.
Вся процедура занимает 5–10 минут, но на это время сервер недоступен для всех пользователей. Поэтому чистку делают вне рабочего времени или после предупреждения сотрудников. Ниже — где именно лежат файлы на Windows и Linux, готовые скрипты и разбор того, что идёт не так.
Когда серверный кэш действительно мешает
Сервер 1С хранит на диске сеансовые данные и служебную информацию кластера. Это ускоряет работу, пока данные согласованы. После аварийной остановки, переполнения диска или смены версии платформы кэш может «залипнуть», и сервер начинает работать с устаревшим состоянием.
Признаки, при которых чистка кэша сервера оправдана:
- 🔴 после обновления конфигурации у части пользователей открываются старые формы или старый код модулей, хотя конфигурация БД обновлена;
- 🔴 сеансы «висят» в консоли кластера и не завершаются даже принудительно;
- 🔴 после сбоя питания служба агента запускается, но пользователи получают ошибки соединения с рабочим процессом;
- 🔴 папка
srvinfoразрослась до десятков гигабайт, а диск сервера заканчивается; - 🔴 после перехода на новую версию платформы появились странные ошибки, которых не было на старой.
Когда чистить кэш сервера не нужно:
- 🟢 ошибка воспроизводится только у одного пользователя — начните с клиентского кэша (запуск с параметром
/ClearCache); - 🟢 база в файловом варианте — серверного кэша у неё нет, есть только клиентский;
- 🟢 проблема в блокировках данных или долгих запросах — их чистка кэша не решает, нужен анализ в консоли кластера и технологическом журнале.
Сначала исключите клиентскую сторону. Если на соседнем компьютере та же база работает нормально, кэш сервера ни при чём.
Что лежит в каталоге srvinfo и что из этого кэш
Каталог кластера по умолчанию:
| Платформа и ОС | Путь по умолчанию |
|---|---|
| 1С 8.3, Windows, 64 бит | C:\Program Files\1cv8\srvinfo |
| 1С 8.3, Windows, 32 бит | C:\Program Files (x86)\1cv8\srvinfo |
| 1С 8.2, Windows | C:\Program Files\1cv82\srvinfo |
| 1С 8.3, Linux | /home/usr1cv8/.1cv8/1C/1cv8 |
Путь может быть другим, если при установке его меняли. Точное место видно в параметрах запуска службы: ключ -d в строке ragent.exe указывает каталог кластера. На Windows эту строку показывает оснастка services.msc в свойствах службы, поле «Исполняемый файл».
Внутри каталога кластера есть подпапка reg_1541 (число — порт менеджера кластера; если кластер на другом порту, номер будет другим). В ней:
| Объект | Что это | Удалять при чистке кэша |
|---|---|---|
папки snccntx… | сеансовые данные и кэш контекстов | ✅ да |
| папки с именами-GUID | служебные данные информационных баз, в том числе полнотекстовый индекс | ❌ нет |
1CV8Clst.lst | реестр кластера: базы, рабочие серверы, настройки | ❌ никогда |
1cv8wsrv.lst (уровнем выше) | список кластеров центрального сервера | ❌ никогда |
прочие *.lst | служебные реестры | ❌ нет |
Удаление 1CV8Clst.lst стирает регистрацию всех информационных баз в кластере. Сами данные в СУБД останутся, но базы придётся заново добавлять в консоли, а настройки кластера (администраторы, профили безопасности, требования назначения функциональности) пропадут.
Перед первой чисткой скопируйте весь каталог srvinfo целиком в отдельное место. Это займёт минуту и позволит откатиться, если что-то удалили лишнее.
Ручная очистка кэша сервера в Windows
Шаг 1. Предупредите пользователей и завершите сеансы
Остановка службы обрывает все сеансы. Несохранённые документы пропадут, фоновые задания прервутся на середине.
- Откройте консоль администрирования серверов 1С.
- Разверните кластер →
Информационные базы→ нужная база →Сеансы. - Убедитесь, что нет важных фоновых заданий (закрытие месяца , обмен, загрузка выписок).
- Попросите пользователей выйти. Оставшиеся сеансы завершите из консоли.
Если на сервере несколько баз, проверьте сеансы в каждой: служба одна на весь кластер.
Шаг 2. Остановите службу агента сервера
Откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» и нажмите «Остановить». Для 8.2 название аналогичное, с цифрами 8.2.
Дождитесь, пока в диспетчере задач исчезнут процессы ragent.exe, rmngr.exe и rphost.exe. Если rphost.exe висит больше минуты — завершите его вручную, иначе файлы в папке будут заблокированы.
Шаг 3. Удалите папки snccntx
- Перейдите в
C:\Program Files\1cv8\srvinfo\reg_1541. - Выделите все папки, имя которых начинается с
snccntx. - Удалите их.
Больше ничего в этой папке не трогайте.
Шаг 4. Запустите службу
Вернитесь в services.msc и запустите службу агента. Через 20–40 секунд в диспетчере задач появятся rmngr.exe и хотя бы один rphost.exe, а в reg_1541 — новая папка snccntx….
Первые входы пользователей будут медленнее обычного: сервер заново наполняет кэш. Это нормально и проходит за несколько минут работы.
Скрипты: bat и PowerShell для Windows
Ручной вариант удобен разово. Если чистка нужна регулярно, например после каждого обновления платформы, проще держать скрипт.
Сначала узнайте точное имя службы. Оно отличается от отображаемого и зависит от того, как ставили платформу:
sc query state= all | findstr /i "1C"
Пример bat-файла (запускать от имени администратора):
@echo off
set SRV="1C:Enterprise 8.3 Server Agent (x86-64)"
set REG=C:\Program Files\1cv8\srvinfo\reg_1541
net stop %SRV%
timeout /t 15 /nobreak
taskkill /f /im rphost.exe 2>nul
taskkill /f /im rmngr.exe 2>nul
for /d %%D in ("%REG%\snccntx*") do rd /s /q "%%D"
net start %SRV%
То же самое на PowerShell:
$svc = Get-Service | Where-Object { $_.Name -like "1C:Enterprise*Server Agent*" }
$reg = "C:\Program Files\1cv8\srvinfo\reg_1541"
Stop-Service -InputObject $svc -Force
Start-Sleep -Seconds 15
Get-Process rphost, rmngr -ErrorAction SilentlyContinue | Stop-Process -Force
Get-ChildItem -Path $reg -Directory -Filter "snccntx*" | Remove-Item -Recurse -Force
Start-Service -InputObject $svc
Если на сервере установлено несколько версий платформы с разными службами, фильтр по имени найдёт их все. В таком случае укажите службу явно, по имени из sc query.
Скрипт можно повесить в планировщик заданий Windows на ночь. Но регулярная автоматическая чистка — скорее симптом, чем лечение: если кэш приходится сбрасывать каждую неделю, ищите причину (нехватка памяти, диск, сбойная версия платформы).
Очистка кэша сервера 1С на Linux
Логика та же: остановить сервер
, удалить snccntx*, запустить. Отличаются имена службы и пути.
Как называется служба
Зависит от способа установки и версии платформы:
- старые сборки 8.3 ставили init-скрипт
srv1cv83; - в новых сборках 8.3 сервер запускается юнитом systemd, в имени которого есть номер версии платформы.
Найти точное имя:
systemctl list-units --all | grep -i 1cv8
Последовательность команд
# 1. Остановить сервер (подставьте имя юнита из списка выше)
sudo systemctl stop <имя_юнита>
# 2. Убедиться, что процессов не осталось
ps aux | grep -E "ragent|rmngr|rphost" | grep -v grep
# 3. Удалить кэш сеансовых данных
sudo rm -rf /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/snccntx*
# 4. Запустить сервер
sudo systemctl start <имя_юнита>
sudo systemctl status <имя_юнита>
Если сервер запущен под другим пользователем или с другим каталогом кластера, путь будет иным. Каталог видно в параметре -d командной строки процесса ragent в выводе ps aux.
Перед rm -rf выполните ту же команду с ls вместо удаления и убедитесь, что под маску попали только папки snccntx. Опечатка в пути под sudo стоит дорого.
Разница между 1С 8.2 и 8.3
Принцип очистки кэша одинаковый для обеих версий. Отличия касаются путей, имён и инструментов.
| Что | 1С 8.2 | 1С 8.3 |
|---|---|---|
| Каталог платформы | 1cv82 | 1cv8 |
| Служба | Агент сервера 1С:Предприятия 8.2 | Агент сервера 1С:Предприятия 8.3 (x86-64) |
| Утилита командной строки | нет | rac вместе с сервером ras |
| Несколько версий на одном сервере | редко | часто, каждая со своей службой и портами |
На 8.3 часто стоят две-три версии платформы одновременно, например старая для одной базы и новая для другой. У каждой своя служба и свой каталог кластера, обычно на разных портах (reg_1541, reg_2541 и так далее). Чистите кэш именно той службы, к которой подключена проблемная база: адрес сервера и порт видны в списке баз при запуске 1С.
Если после чистки что-то пошло не так
Отдельный случай — полнотекстовый поиск. Если по ошибке удалили папку с GUID базы, после запуска поиск по данным перестанет находить документы. Индекс нужно перестроить: в БП 3.0 это делается в Администрирование → Обслуживание → Полнотекстовый поиск.
Как сделать, чтобы кэш реже засорялся
Большая часть проблем с кэшем сервера растёт из нескольких корней. Их проще убрать один раз, чем чистить папки каждую неделю.
Настройте перезапуск рабочих процессов
В консоли кластера откройте свойства кластера. Там есть параметры:
- «Интервал перезапуска» — рабочие процессы будут плавно перезапускаться по расписанию, без обрыва сеансов;
- «Допустимый объём памяти» — порог, после превышения которого процесс перезапускается;
- «Интервал превышения допустимого объёма памяти» — сколько секунд процесс может держаться выше порога.
Типичная практика — интервал перезапуска раз в сутки (86 400 секунд). Порог памяти выбирайте от фактического потребления: посмотрите в диспетчере задач, сколько обычно занимает rphost.exe в рабочий день, и добавьте запас.
Следите за диском
Когда на диске с srvinfo заканчивается место, сервер не может записать сеансовые данные, и кэш портится первым. Держите на этом разделе свободными хотя бы 15–20% объёма. Если диск системный и маленький, каталог кластера лучше перенести на отдельный том при следующей переустановке службы.
Исключите srvinfo из антивирусной проверки
Антивирус, проверяющий каждый файл в srvinfo, блокирует запись и замедляет сервер. Добавьте каталог кластера в исключения. То же касается программ резервного копирования: сеансовые данные бэкапить не нужно.
Обновляйте платформу аккуратно
После установки новой версии платформы старая служба должна быть остановлена, а новая — зарегистрирована и запущена. Если оставить обе на одних портах, процессы будут конфликтовать. При переходе на новую версию полезно сразу очистить кэш на новой службе перед первым запуском пользователей.
Как убедиться, что очистка помогла
После запуска службы пройдитесь по короткому списку:
Регламентные задания проверьте отдельно. После остановки службы задание, прерванное на середине, может не запуститься до следующего расписания. В БП 3.0 и ЗУП 3.1 их список и время последнего запуска смотрите в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
Если ошибка исчезла, но первые полчаса база работает медленнее обычного, — это прогрев кэша. Через несколько часов работы скорость вернётся к привычной.