Серверный кэш 1С: что удалять, где лежит и как не сломать кластер
Содержание
Серверный кэш 1С чистится так: остановить службу агента сервера
, удалить в каталоге кластера (reg_1541) временные папки snccntx* и sess_*, запустить службу снова. Базы, файлы 1CV8Clst.lst и журналы регистрации при этом не трогают.
Без остановки службы удалять нельзя. Агент держит эти файлы открытыми, а вырванный из-под него файл может оставить кластер в нерабочем состоянии. Ниже — где что лежит, как чистить на Windows и Linux, как поставить уборку на расписание и что делать, если чистка не помогла.
Когда чистка серверного кэша действительно нужна
Чистить «на всякий случай» не надо. Кэш нужен серверу: он ускоряет работу, и после удаления первые минуты база откликается медленнее. Повод для чистки — конкретный симптом.
- 🐌 Пользователи жалуются на тормоза после обновления платформы или конфигурации, а нагрузка на сервер нормальная.
- 🔒 Сеансы «зависают» и не закрываются штатно, в консоли кластера висят призраки.
- 💾 Каталог кластера разросся до десятков гигабайт, на диске заканчивается место.
- ⚠️ После аварийной перезагрузки сервера появились странные ошибки доступа к базе или к данным сеанса.
- 🔄 Вы перенесли базу на другой сервер или сменили версию платформы.
Если тормозит одна база, а остальные работают нормально, чаще виноваты блокировки, регламентные задания или сама СУБД. Кэш там вторичен — сначала проверьте их.
Когда чистить не нужно
- Сервер работает ровно, а вы просто хотите «освежить» систему.
- Идёт рабочий день и в базах сидят люди. Чистка обрывает все сеансы.
- Вы не знаете, что именно лежит в папке. Сначала посмотрите, потом удаляйте.
Где хранится серверный кэш 1С
Данные кластера лежат в каталоге сервера (srvinfo). Внутри — папка с номером порта менеджера кластера. По умолчанию порт 1541, поэтому папка называется reg_1541.
| Система | Типичный путь |
|---|---|
| Windows | C:\Program Files\1cv8\srvinfo\reg_1541 |
| Windows (32-битная платформа) | C:\Program Files (x86)\1cv8\srvinfo\reg_1541 |
| Linux | /home/usr1cv8/.1cv8/1C/1cv8/reg_1541 |
Точный путь зависит от того, как ставили сервер. Каталог задан в параметрах службы агента. На Windows откройте services.msc, найдите службу агента сервера 1С, зайдите в свойства и посмотрите в строку запуска параметр -d. На Linux его видно в файле службы или в выводе systemctl cat.
Что внутри reg_1541:
- 📁 Папки с длинными именами вида GUID — по одной на каждую информационную базу.
- 📄
1CV8Clst.lst— реестр кластера. Не удаляйте. - 📁
snccntx…— контексты сеансов. Это и есть то, что обычно называют серверным кэшем. - 📁
sess_…— данные конкретных сеансов. - 📁
1Cv8Logвнутри папки базы — журнал регистрации. Это история событий, а не кэш. - 📄
1Cv8.lst,1CV8Reg.lst— служебные списки. Не трогайте.
Разделяйте серверный кэш и клиентский. Клиентский лежит у пользователя в профиле, в каталогах 1C\1Cv8 под AppData\Local и AppData\Roaming. Серверный — только на машине, где крутится кластер.
Как оценить, что разрослось
Прежде чем удалять, посмотрите размеры. На Windows откройте свойства reg_1541 или выполните в PowerShell:
Get-ChildItem "C:\Program Files\1cv8\srvinfo\reg_1541" -Directory | ForEach-Object { "{0} {1:N0} МБ" -f $_.Name, ((Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB) }
На Linux хватит du -sh * внутри каталога. Если самая тяжёлая папка — это 1Cv8Log с журналом регистрации, чистка кэша место не освободит. Тогда нужно сокращать журнал: настраивать срок хранения и размер файлов в самой базе, а не удалять папку руками.
Для ориентира: на сервере с десятком баз и сотней пользователей временные папки сеансов за месяц-два обычно занимают от нескольких сотен мегабайт до нескольких гигабайт. Десятки гигабайт — повод разбираться, почему сеансы не закрываются.
Чистка кэша на Windows-сервере пошагово
Работайте вне часов нагрузки. Лучше — вечером или в окно обслуживания.
1. Подготовьтесь
- Предупредите пользователей. Сеансы будут разорваны.
- Убедитесь, что регламентные задания и выгрузки не идут прямо сейчас.
- Сделайте копию
reg_1541целиком или хотя бы файла1CV8Clst.lst. Копия — это минута, а восстановление кластера без неё может занять день. - Запишите, какие базы подключены к кластеру.
2. Остановите службу агента
Через services.msc найдите службу агента сервера 1С:Предприятия 8.3 и нажмите «Остановить». Либо из консоли с правами администратора:
sc query state= all | findstr /i "1C"
net stop "Имя службы из первой команды"
Первая команда поможет найти точное имя. Во второй подставьте его в кавычках. Затем проверьте в диспетчере задач, что процессы ragent, rmngr и rphost исчезли. Если какой-то завис, завершите вручную.
3. Удалите временные данные
Откройте reg_1541. Внутри этого каталога удалите:
- все папки
snccntx*; - все папки
sess_*.
Можно сделать это руками, а можно командой:
cd /d "C:\Program Files\1cv8\srvinfo\reg_1541"
for /d %%i in (snccntx*) do rd /s /q "%%i"
for /d %%i in (sess_*) do rd /s /q "%%i"
В .bat-файле знаки процента удваиваются, как здесь. В командной строке вручную пишите один %.
4. Запустите службу и проверьте
net start "Имя службы"
Подождите минуту-две, пока поднимутся рабочие процессы. Затем:
- Откройте консоль администрирования серверов 1С и убедитесь, что кластер и нужные базы на месте.
- Зайдите в базу под тестовым пользователем.
- Откройте тяжёлую форму — первая загрузка будет дольше обычной, потом кэш наполнится заново.
Клиентский кэш — отдельной строкой
Если проблема воспроизводится только у одного пользователя, чистите его кэш, а не серверный. Закройте 1С и удалите содержимое каталогов 1C\1Cv8 в AppData\Local и AppData\Roaming этого профиля. Те же папки можно вычистить через ключ запуска /ClearCache:
"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache
Путь к файлу запуска зависит от установки. Проверьте свой.
Чистка серверного кэша 1С на Linux
Логика та же, отличаются команды и права. Работайте от пользователя с правами sudo.
- Остановите службу. Имя зависит от версии платформы; для 8.3 обычно это
srv1cv83.
sudo systemctl stop srv1cv83
- Убедитесь, что процессы остановились:
ps aux | grep -E "ragent|rmngr|rphost" | grep -v grep
Пусто — можно продолжать. Остались процессы — sudo kill по их идентификаторам.
- Перейдите в каталог кластера и удалите временное:
cd /home/usr1cv8/.1cv8/1C/1cv8/reg_1541
sudo rm -rf snccntx* sess_*
Перед rm -rf проверьте через pwd, что вы в нужном каталоге. Ошибка в пути с rm -rf обходится дорого.
- Запустите службу и проверьте статус:
sudo systemctl start srv1cv83
sudo systemctl status srv1cv83
Права на каталог должны остаться у пользователя usr1cv8. Если вы копировали или создавали что-то от root, выровняйте владельца командой sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8.
Чистка без остановки сервера: закрыть сеансы через rac
Иногда останавливать службу нельзя, а проблема — в зависших сеансах. Тогда достаточно закрыть их через утилиту администрирования rac. Она идёт в комплекте с сервером. Сервис ras должен быть запущен.
rac cluster list
rac session list --cluster=<идентификатор кластера>
rac session terminate --cluster=<идентификатор кластера> --session=<идентификатор сеанса>
Идентификаторы берите из вывода первых двух команд. Это мягче полной чистки: удаляются только проблемные сеансы, остальные работают.
Расписание: автоматическая очистка
Ставить еженедельную чистку без повода не стоит. Но если кластер регулярно разрастается или сервер тестовый, автоматизация экономит время.
Windows: планировщик заданий
Сохраните скрипт, например clear_1c_cache.bat:
@echo off
net stop "Имя службы"
timeout /t 20 /nobreak >nul
cd /d "C:\Program Files\1cv8\srvinfo\reg_1541"
for /d %%i in (snccntx*) do rd /s /q "%%i"
for /d %%i in (sess_*) do rd /s /q "%%i"
net start "Имя службы"
Создайте задание в планировщике: запуск от имени администратора, с наивысшими правами, раз в неделю в ночное окно. Паузу в 20 секунд после остановки оставьте: службе нужно время завершить процессы.
Linux: cron
Скрипт /usr/local/bin/clear_1c_cache.sh:
#!/bin/bash
systemctl stop srv1cv83
sleep 20
cd /home/usr1cv8/.1cv8/1C/1cv8/reg_1541 || exit 1
rm -rf snccntx* sess_*
systemctl start srv1cv83
Сделайте его исполняемым и добавьте в crontab root, например воскресенье, 03:00:
0 3 * * 0 /usr/local/bin/clear_1c_cache.sh
Строка || exit 1 важна: если каталога нет, скрипт остановится и не начнёт удалять файлы там, где вы не планировали.
Автоматическая чистка прерывает ночные обмены, выгрузки и регламентные задания. Проверьте расписание заданий в базах и поставьте чистку в промежуток, когда ничего не идёт.
Перед запуском в рабочем режиме прогоните сценарий на тестовом сервере или хотя бы в выходной. Проверьте три вещи: служба остановилась, нужные папки удалены, служба поднялась без вмешательства. Первые две недели смотрите журнал планировщика или /var/log/syslog, чтобы вовремя заметить сбой.
Если работаете с несколькими серверами, вынесите путь и имя службы в переменные в начале скрипта. Тогда одну и ту же заготовку можно разложить по машинам, меняя две строки.
Типичные ошибки при очистке
1CV8Clst.lst и папки баз должны быть на месте. Восстановите их из копии, которую сделали на этапе подготовки. Если копии нет, придётся заново регистрировать кластер и базы в консоли.ps процессы ragent, rmngr, rphost и завершите их. Иногда держит файлы антивирус или резервное копирование — исключите каталог кластера из проверки.1CV8Clst.lst из копии и перезапустите службу.Что не удалять никогда
1CV8Clst.lstи папки с GUID баз.- Журнал регистрации
1Cv8Log, если он нужен для расследований. - Файловые базы, лежащие рядом на том же диске. Серверный кэш к ним отношения не имеет.
Что делать, если чистка не помогла
Кэш — самая простая, но не единственная причина проблем. Перед тем как переустанавливать сервер, пройдите по списку.
- 🔍 Посмотрите журнал регистрации и технологический журнал: там видно, какие вызовы тормозят.
- 🗄 Проверьте СУБД: обновление статистики, перестроение индексов, свободное место под временные файлы.
- 🧠 Оцените память: рабочие процессы
rphostперегружены, когда на один процесс приходится слишком много сеансов. - 🔄 Перезапустите рабочие процессы через консоль кластера: это мягче остановки службы.
- 📦 Сверьте версию платформы на сервере и клиентах. Большое расхождение даёт странные отказы.
- 🧪 Сделайте тестовую копию базы и воспроизведите проблему на ней. Если на копии всё в порядке, ищите причину в окружении.
Частые вопросы
Можно ли чистить серверный кэш 1С при работающих пользователях?
rac.Удалятся ли данные из базы?
snccntx* и sess_*. Исчезнут только временные данные сеансов.