Кэш сервера 1С:Предприятия 8.3: что лежит в srvinfo и как его безопасно чистить
Содержание
Кэш сервера 1С хранится в каталоге кластера: в Windows по умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541, в Linux — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541. «Чистка кэша сервера» на практике означает удаление папок snccntx* внутри reg_1541 при остановленной службе агента сервера. Список баз кластера (1CV8Clst.lst) и папки баз с журналом регистрации трогать не нужно.
Путь может отличаться: каталог задаётся параметром -d при запуске агента, а номер в имени reg_1541 берётся из порта менеджера кластера. Поэтому начинайте не с проводника, а с проверки, где реально работает ваш сервер. Это общее для платформы 8.3 и не зависит от конфигурации — БП, ЗУП или УТ.
Что сервер 1С держит на диске и при чём тут кэш
Сервер 1С:Предприятия хранит на диске не только кэш. В каталоге кластера лежат вещи с разной ценностью, и путать их опасно.
- 📋 Реестр кластера — список информационных баз, рабочих серверов, администраторов кластера, настроек. Это не кэш, это конфигурация сервера.
- 🗂 Журнал регистрации серверных баз. В клиент-серверном варианте он лежит не в СУБД, а в файлах на сервере 1С.
- 🔎 Индекс полнотекстового поиска — его можно перестроить, но на большой базе это долго.
- 🧠 Сеансовые данные (папки
snccntx…) — временное состояние сеансов и служебные данные кластера. Именно это обычно и называют «кэшем сервера». - 🧾 Временные файлы рабочих процессов — в каталоге временных файлов пользователя, от имени которого запущена служба.
У клиента своя история. Кэш конфигурации на компьютере пользователя лежит в его профиле Windows и чистится параметром запуска /ClearCache или удалением папок в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Серверный кэш этим параметром не очищается.
Если проблема только у одного пользователя, а у остальных всё работает — сначала чистите его клиентский кэш. Серверный кэш общий, его сбой обычно бьёт по всем пользователям базы сразу.
Где находится кэш сервера 1С в Windows
По умолчанию служба «Агент сервера 1С:Предприятия 8.3» запускается от пользователя USR1CV8, а каталог кластера — C:\Program Files\1cv8\srvinfo. Внутри вы найдёте папку reg_1541, а в ней — всё, что относится к кластеру.
Фактический путь проверьте так:
- Откройте
services.msc. - Найдите службу агента сервера 1С (в английской локали она называется
1C:Enterprise 8.3 Server Agentс указанием разрядности). - Откройте её свойства и посмотрите строку «Исполняемый файл».
- В конце строки найдите параметр
-d— после него указан каталог кластера. Рядом стоят-port(порт агента, обычно 1540) и-regport(порт менеджера кластера, обычно 1541).
Ту же строку можно посмотреть в реестре, в ключе службы:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя службы>\ImagePath
Или из командной строки:
sc query state= all | findstr /i "1C"
sc qc "<имя службы>"
Если -regport равен 2541, папка будет называться reg_2541. На одном компьютере может работать несколько агентов на разных портах — у каждого свой каталог и свой reg_*.
Каталог часто переносят на отдельный диск, например D:\1C\srvinfo. Удалять «что-то похожее» в Program Files, не сверившись с параметром -d, бессмысленно: вы почистите старую копию, а сервер продолжит работать с прежними файлами.
Временные файлы службы
Рабочие процессы rphost пишут временные файлы в каталог TEMP пользователя, от которого запущена служба. Для USR1CV8 это обычно C:\Users\USR1CV8\AppData\Local\Temp. После аварийных завершений там остаются файлы, и папка может разрастаться до гигабайтов. Их удаляют при остановленной службе — так же, как сеансовые данные.
Где хранится кэш сервера 1С на Linux
На Linux служба тоже работает от пользователя usr1cv8, а каталог кластера по умолчанию лежит в его домашней папке:
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541
Структура внутри та же, что в Windows: реестр кластера, папки баз, папки snccntx….
Как убедиться в пути на конкретном сервере:
ps -ef | grep ragent
В строке процесса ragent найдите параметр -d. Если его нет — работает путь по умолчанию.
Имя службы зависит от версии платформы и способа установки. В свежих сборках 8.3 служба оформлена юнитом systemd, и в имени есть номер версии. Найдите её так:
systemctl list-units --all | grep -i 1cv8
На старых установках встречается init-скрипт srv1cv83 в /etc/init.d/.
Права важны. Все файлы в каталоге кластера должны принадлежать usr1cv8. Если вы копировали или восстанавливали что-то из-под root, верните владельца командой chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8, иначе агент не стартует или не сможет писать сеансовые данные. Проверьте имя группы в своей системе командой id usr1cv8.
Что лежит в reg_1541 и что можно удалять
Это главный раздел для того, кто собрался чистить. Ошибка здесь стоит дорого: удалив не ту папку, можно потерять список баз кластера или журнал регистрации за несколько лет.
| Объект в каталоге кластера | Что это | Можно удалить? |
|---|---|---|
1CV8Clst.lst | Реестр кластера: базы, серверы, администраторы, настройки | Нет. Без него кластер «забудет» все базы |
Папки snccntx<GUID> | Сеансовые данные и служебный кэш кластера | Да, при остановленной службе |
| Папки с именем-GUID базы | Данные конкретной базы на сервере 1С | Целиком — нет |
1Cv8Log внутри папки базы | Журнал регистрации | Только если журнал не нужен; лучше выгрузить и сократить штатно |
1Cv8FTxt внутри папки базы | Индекс полнотекстового поиска | Можно, но потом индекс придётся строить заново |
Временные файлы в TEMP службы | Остатки работы rphost | Да, при остановленной службе |
Папка с именем-GUID базы соответствует идентификатору информационной базы в кластере. Узнать его можно в консоли администрирования серверов или через rac infobase summary list — утилита покажет идентификаторы и имена баз.
Совет «удалите всё содержимое srvinfo» встречается часто. Он рабочий только в одном случае: если вы готовы заново регистрировать все базы, администраторов кластера и настройки рабочих серверов, а журналы регистрации не нужны. В рабочей среде так не делают.
Перед любой чисткой скопируйте 1CV8Clst.lst в отдельную папку. Если что-то пойдёт не так, его достаточно вернуть на место при остановленной службе.
Как очистить кэш сервера 1С: вручную и скриптом
Очистка требует остановки службы. Все сеансы пользователей во всех базах кластера оборвутся, несохранённые данные пропадут. Делайте это вне рабочего времени, заранее предупредив пользователей, и не во время регламентных заданий — обмена, закрытия месяца, резервного копирования.
Ручная очистка в Windows
- Попросите пользователей выйти из баз или заблокируйте начало сеансов в консоли кластера.
- Скопируйте
1CV8Clst.lstв резервную папку. - Остановите службу агента сервера 1С в
services.msc. - В диспетчере задач убедитесь, что не осталось процессов
ragent,rmngr,rphost. Если какой-то завис — дождитесь завершения, а не убивайте его сразу. - Удалите все папки
snccntx*внутриreg_1541. - При необходимости очистите
TEMPпользователя службы. - Запустите службу и проверьте вход в одну-две базы.
Скрипт для Windows
Скрипт удобно запускать вручную или через Планировщик заданий. Имя службы и путь подставьте свои — сверьте их по разделу про Windows выше.
@echo off
set "SRV=1C:Enterprise 8.3 Server Agent (x86-64)"
set "REG=C:\Program Files\1cv8\srvinfo\reg_1541"
set "BAK=D:\backup\1c-cluster"
if not exist "%BAK%" mkdir "%BAK%"
copy /y "%REG%\1CV8Clst.lst" "%BAK%\1CV8Clst.lst"
net stop "%SRV%"
timeout /t 30 /nobreak
for /d %%D in ("%REG%\snccntx*") do rd /s /q "%%D"
net start "%SRV%"
net stop принимает и системное имя службы, и отображаемое. Пауза в 30 секунд даёт рабочим процессам завершиться. Если net stop вернул ошибку, не продолжайте чистку — сначала разберитесь, почему служба не останавливается.
Очистка на Linux
SRV=$(systemctl list-units --all --plain --no-legend | grep -i 1cv8 | awk '{print $1}')
REG=/home/usr1cv8/.1cv8/1C/1cv8/reg_1541
cp "$REG/1CV8Clst.lst" /root/1CV8Clst.lst.bak
systemctl stop "$SRV"
sleep 30
pgrep -l -u usr1cv8 'ragent|rmngr|rphost' && echo "Процессы ещё работают, остановка" && exit 1
rm -rf "$REG"/snccntx*
systemctl start "$SRV"
Перед запуском выполните первую строку отдельно и посмотрите, что попало в SRV. Если на сервере установлено несколько версий платформы или работает служба RAS, команда найдёт несколько юнитов — тогда впишите имя нужной службы агента вручную.
Регулярная очистка по расписанию
Чистить кэш «на всякий случай» каждую ночь не нужно. Здоровому серверу это ничего не даёт, а каждый перезапуск — риск, что служба не поднимется к утру. Разумная схема:
- 🗓 Плановая очистка
snccntx*— после обновления платформы и при проблемах, о которых ниже. - 🕒 Если всё же автоматизируете — раз в неделю, ночью в выходной, вне окна резервного копирования и регламентных заданий.
- 📬 Скрипт должен проверять, что служба поднялась, и сообщать о сбое. Иначе об остановленном сервере вы узнаете от бухгалтерии в понедельник.
Признаки того, что проблема в кэше сервера
Кэш виноват не так часто, как кажется. Прежде чем останавливать сервер, проверьте симптом по таблице.
Чтобы быстро понять, что занимает место, на Windows посмотрите размер папок в reg_1541 через свойства, а на Linux выполните:
du -sh /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/* | sort -h | tail -20
Если вверху списка папка базы, загляните внутрь: почти всегда растёт 1Cv8Log.
Как обслуживать сервер, чтобы кэш не мешал
Проблемы с кэшем почти всегда — следствие чего-то другого: аварийной остановки, нехватки места, неаккуратного обновления. Поэтому профилактика — это порядок в администрировании сервера в целом.
- 💾 Свободное место. Держите каталог кластера на диске, где свободно хотя бы 20–30% объёма. При заполнении диска сеансовые данные повреждаются первыми.
- 🔌 Корректная остановка. Перед перезагрузкой Windows останавливайте службу 1С вручную. Жёсткое выключение — главный источник битых
snccntx. - 📦 Копия реестра кластера. Включите
1CV8Clst.lstв ежедневное резервное копирование. Файл маленький, а сэкономит часы восстановления. - 📜 Журнал регистрации. Настройте периодичность разделения журнала и раз в квартал–полгода сокращайте старые периоды, предварительно выгрузив их.
- 🧪 Технологический журнал. Включайте его на время расследования и ограничивайте срок хранения в
logcfg.xmlпараметромhistory. Забытый ТЖ за месяц легко съедает десятки гигабайт. - ♻️ Перезапуск рабочих процессов. В свойствах рабочего сервера задайте разумный допустимый объём памяти процессов — тогда кластер сам перезапускает разросшийся
rphostбез участия администратора и без чистки кэша. - 🔄 Обновление платформы. После смены версии на сервере удаляйте
snccntx*при остановленной службе и чистите кэш у клиентов. Так сеансовые данные старой версии не мешают новой.