1C srvinfo большой размер

Содержание
  1. Сеансовые данные
  2. Особенности работы платформы с сеансовыми данными
  3. Размещение сеансовых данных в памяти
  4. Проблемы сеансовых данных
  5. Ошибка совместного доступа к файлу snccntx.dat
  6. Закончилось место на диске, где расположены сеансовые данные
  7. Влияние циклических ссылок на рост сеансовых данных
  8. Методика анализа роста сеансовых данных
  9. Сбор данных
  10. Создание базы данных для анализа
  11. Анализ работы с сеансовыми данными
  12. Где в 1С находится журнал регистрации ошибок?
  13. Как открыть журнал регистрации?
  14. Как отключить журнал регистрации?
  15. Как выгрузить журнал регистрации?
  16. Как восстановить журнал регистрации?
  17. Как сократить журнал регистрации?
  18. Как очистить журнал регистрации?
  19. Можно ли программно добавить запись в журнал?
  20. Как вернуть старый формат журнала регистрации?
  21. Можно ли перенести журнал регистрации в отдельную базу?
  22. Удаление неиспользуемых журналов регистрации из папки Srvinfo
  23. Настройка и очистка журнала регистрации 1С
  24. Автоматизация процесса очистки журнала регистрации
  25. Перенос журнала регистрации на другой диск

Сеансовые данные

Платформа "1С:Предприятие" в своей работе постоянно использует механизм, называемый "сеансовые данные". В этих данных хранится служебная информация, необходимая для работы сеанса "1С:Предприятия". Например, все, что введено в поля ввода на форме, при серверных вызовах сбрасывается в сеансовые данные.

При вызове методов: ПоместитьВоВременноеХранилище, ПоместитьФайл, НачатьПомещениеФайла, значения указанные в параметрах, записываются в сеансовые данные.

При фоновом исполнении отчетов СКД, результат отчета помещается в сеансовые данные, а затем передается в клиентскую часть.

С точки зрения операционной системы, сеансовые данные представляют собой файлы в каталоге …srvinfo
eg_ snccntx .

С точки зрения внутренней структуры – это noSQL база данных (key-value storage).

Особенности работы платформы с сеансовыми данными

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

Если требования не заданы, то сеансовые данные распределятся равномерно по всем рабочим серверам.

Сеансовые данные растут блоками по 64 Мб. Когда заканчивается блок, то менеджер кластера выделяет следующий блок в 64Мб.Блоки большего объема возможны в результате помещения объемных данных во временные хранилища.

Для обеспечения скорости работы, платформа всегда пишет новые данные в конец, аналогично transaction log в СУБД. Таким образом, размер сеансовых данных постоянно растет. Во всем объеме сеансовых данных, существуют как актуальные, так и устаревшие данные. Актуальность данных определяется способом их помещения:

  • Если сеансовые данные помещены из формы и в качестве идентификатора передается идентификатор формы (ЭтаФорма.УникальныйИдентификатор), то данные считаются актуальными, пока открыта форма.
  • Если в качестве идентификатора передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы (Новый УникальныйИдентификатор), то значение перестанет быть актуальным после завершения сеанса пользователя.
  • Если ничего не передано, то значение перестанет быть актуальным при любом следующем серверном вызове.

Перед выделением следующего блока на диске, проверяется, прошло ли 5 секунд с момента выделения предыдущего блока. Если 5 секунд прошло, то запускается "сборщик мусора" (key value garbage collector). Сборщик оценивает процент актуальных сеансовых данных в общем объеме. Если актуальные данные занимают менее 25% от общего объема, то все актуальные данные копируются в новые файлы, а затем все старые файлы сеансовых данных удаляются.

Так как каждый сеанс (клиенты, фоновые задания, web-сервисы) в своей работе постоянно пишет информацию в сеансовые данные, то при большом количестве пользователей, скорость дисковой подсистемы, на которой расположены файлы сеансовых данных, играет очень важную роль. При большом количестве пользователей, рекомендуется располагать файлы сеансовых данных на максимально быстрых дисках. Желательно RAM-drive. Отказоустойчивость дисков не важна, т.к. при потере сеансовых данных, никакой важной информации утеряно не будет.

Следует отметить порядок размещения сеансовых данных. Если поместить во временное хранилище двоичные данные или файл, то эти данные пройдут в качестве потока байт через rphost, затем в rmngr, который сбросит этот поток на диск. Если же, в качестве помещаемого значения, будет выступать коллекция (таблица значений, результат запроса, массив…), то сначала вся эта коллекция разместиться в памяти rphost, а только затем преобразуется в поток байт и будет передана в rmngr.

Размещение сеансовых данных в памяти

При работе кластера "1С:Предприятия", файлы сеансовых данных отображаются в память (mapping). Подробнее см. статью.

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

Однако, в операционной системе Windows, отображенные в память файлы, влияют на счетчик MemoryAvailable Mbytes. При сильном росте сеансовых данных можно увидеть следующую картину:

Свободное место на диске, где расположены сеансовые данные, уменьшается синхронно со свободной памятью сервера. На самом деле, если посмотреть данные RamMap то видно, что большая часть оперативной памяти выделена под Mapped File

Размер памяти, указанный в колонке Standby – это неиспользуемая память (фактически свободная). При запросе памяти любым процессом, ему будет выделена память из этой области.

Следует учитывать данную особенность счетчика MemoryAvailable Mbytes при построении систем мониторинга или приложений, которые опираются на объем доступной оперативной памяти.

Для косвенной оценки эффективности работы операционной системы с сеансовыми данными, можно использовать счетчик MemoryPage Faults/sec, который показывает на сколько часто процессы обращаются за страницами в память, но не находят их там и подгружают с диска.

Если значение данного счетчика велико, то это может свидетельствовать о нехватке оперативной памяти для кэширования в ней сеансовых данных. В этом случае, необходимо принять решение об увеличении оперативной памяти, либо об оптимизации работы приложения с сеансовыми данными.

Читайте также:  Упорядоченное множество отличающиеся только порядком элементов называется

Проблемы сеансовых данных

Ошибка совместного доступа к файлу snccntx.dat

При появлении данной ошибки необходимо действовать по алгоритму:

1. Проверить права на папку сеансовых данных для пользователя, от которого запущена служба сервера "1С:Предприятия". Должны быть полные права.

2. Открыть на рабочем сервере диспетчер задач, установить видимость колонки "Командная строка"

3. Необходимо найти процессы rmngr.exe с одинаковым значением параметра –pid.

4. Открыть консоль кластера. Развернуть ветку кластера, порт которого соответствует параметру –regport , найденных rmngr.exe с одинаковым значением параметра –pid

5. Сопоставить PID из диспетчера задач с PID в консоли кластера. Тот процесс rmngr.exe, которого нет в консоли – принудительно завершить.

Закончилось место на диске, где расположены сеансовые данные

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

Не следует размещать файлы технологических журналов на одном диске с сеансовыми данными.

Если на диске, где расположены сеансовые данные, закончится место, то картина будет совершенно "апокалиптическая". Менеджер кластера будет постоянно завершаться с формированием дампа. Начнутся сотни попыток запусков рабочих процессов, которые сразу же будут завершаться с ошибками. После того, как на диске появится свободное место, сервер "1С:Предприятия" запустится в нормальном режиме.

Так же, необходимо следить за размером самих сеансовых данных. Если периодически их размер становится существенным, то необходимо обратить на это особое внимание. Следует помнить, что при срабатывании "сборки мусора" необходимо наличие свободного места на диске, в размере 25% от общего объема сеансовых данных. Если этих 25% не будет, то кластер завершит свою работу аварийно.

Изменить расположение сеансовых данных, можно указав параметр –d в строке запуска службы агента сервера.

В данном каталоге, также расположены: реестр кластера, индекс полнотекстового поиска и журнал регистрации.

Влияние циклических ссылок на рост сеансовых данных

Чаще всего при выполнении процедуры ПоместитьВоВременноеХранилище, указывается идентификатор формы (ЭтаФорма.УникальныйИдентификатор). Как написано в документации, при указании идентификатора формы данные перестают считаться актуальными после того как форма будет закрыта.

Однако, если форма содержит в себе циклические ссылки (см. статью), то после закрытия формы она не уничтожается. Это приводит следующим отрицательным эффектам:

  • данные формы остаются в памяти
  • сеансовые данные, выделенные для формы, считаются актуальными, пока не будет завершен сеанс

Чтобы избежать данной ситуации, необходимо исключить все циклические ссылки в форме (см. статью).

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

Методика анализа роста сеансовых данных

Сбор данных

Необходимо собрать технологический журнал:

Данный технологический журнал может занимать значительный объем. Поэтому необходимо располагать его на дисках имеющих достаточно свободного пространства, периодически переносить старые файлы журнала на другой диск и там архивировать (сохраняя структуру папок).

После того, как технологический журнал будет собран, необходимо провести "парсинг" и выгрузить его данные в файлы csv формата:

На основании данных, которые собраны в папках rmngr_*, необходимо сформировать csv файл вида:

  • – имя файла технологического журнала,
  • – значение свойства CallID,
  • – значение свойства InBytes.

В файле …/rmngr_7188/ 15063011. log есть строка:

Данная строка должна быть преобразована в строку:

Необходимо исключить из итогового файла строки с InBytes=0, т.к. они не представляют интереса, но занимают значительный объем.

На основании данных, которые собраны в папках rphost_*, необходимо сформировать csv файл вида:

  • – имя папки рабочего процесса,
  • – имя файла технологического журнала,
  • – значение свойства t:clientID,
  • – значение свойства CallID.

В файле …/ rphost_1352 / 15063011 .log есть строка:

Данная строка должна быть преобразована в строку:

На основании данных, которые собраны в папках rphost_*, необходимо сформировать csv файл вида:

  • – имя папки рабочего процесса,
  • – значение свойства t:clientID,
  • – Имя пользователя из свойства Usr.

В файле …/ rphost_1352 /15063011.log есть строка:

Данная строка должна быть преобразована в строку:

В итоге должно получиться 3 файла: scall.csv, call.csv, conn.csv

Пример создания файлов csv, на основании данных технологического журнала, см. в обработке.

Создание базы данных для анализа

Необходимо создать пустую базу данных (MS SQL Server), в которую добавить таблицы:

Затем, в эти таблицы необходимо загрузить данные из соответствующих csv файлов. Сделать это можно с помощью SQL Server Integration Services

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

Анализ работы с сеансовыми данными

TOP – 10 пользователей в разрезе процессов и времени

Запрос покажет топ-10 пользователей, которые поместили больше всего сеансовых данных в час. Затем необходимо разобраться с самым верхним (в текущем случае):

Т.е. в процессе rphost_1352 за час с 11-00 по 12-00 пользователь с идентификатором 518 записал в сеансовые данные 2 046 616 858 байт (2Гб).

Далее, необходимо найти все идентификаторы вызовов, которые записывал сеанс 518:

Если вы должны обеспечивать работоспособность системы 1С с большим количеством пользователей, то часто возникают ситуации, когда необходимо проверить их действия. Именно для этого разработчики и создали отличный механизм – журнал регистрации. Он позволит узнать, кем вносились изменения в документы и другие объекты системы, кто получал сообщение об ошибках, запускал отчеты.

Где в 1С находится журнал регистрации ошибок?

Отследить, какие ошибки появлялись у пользователей в процессе работы, можно несколькими способами. Чаще всего проще и быстрее открыть меню «Администрирование», зайти в пункт «Обслуживание» и нажать «Журнал регистрации»:

Читайте также:  1С файловая база по сети тормозит

Также в журнал регистрации попадете, воспользовавшись общим меню под названием «Все функции»:

Кроме этого, запустить журнал можно и из конфигуратора. Для этого откройте вкладку меню «Администрирование» и выберите пункт «Журнал регистрации»:

Местонахождение данных журнала отличается для случаев файловых и клиент-серверных баз. В первом случае файлы журнала регистрации расположены в папке с базой в отдельном каталоге «1Cv8Log». Если реализованы сервер и клиентские места, то история ошибок и действия пользователей находиться на сервере в отдельной папке.

Как открыть журнал регистрации?

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

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

  • Тип события;
  • Пользователя, под которым произошло действие или ошибка;
  • Приложение;
  • Компьютеры;
  • Перечень сеансов.

В разделе «Данные» можно установить отборы на конкретные объекты системы от всего списка документов, до поиска по единственному элементу справочника. Раздел «Транзакция» позволит отследить только записанные операции или еще не завершенные. Раздел «Прочие» предоставляет возможность поиска по различным серверам или IP портам.

Как отключить журнал регистрации?

Многие компании, не располагающие мощными серверами и нежелающие тратить деньги на аренду оборудования, отключают журнал регистрации в 1С. Это чревато тем, что в случае ошибок вы не сможете посмотреть, когда и у кого они появлялись. Но журнал регистрации требует много ресурсов, поэтому иногда, действительно, целесообразно отказаться от этого механизма. К тому же, механизм версионирования объектов частично выполняет функции журнала регистрации, позволяя увидеть внесенные изменения в объекты системы.

Для того чтобы отключить журнал регистрации, необходимо сделать для администратора монопольный режим и зайти в конфигуратор. В выпадающем меню откройте вкладку «Администрирование» и откройте «Настройка журнала регистрации…».

После выбора пункта «Не регистрировать» и подтверждения своего выбора нажатием кнопки «ОК», запись всех событий в журнал регистрации остановится.

Как выгрузить журнал регистрации?

Так как данный механизм требует больших ресурсов, многие администраторы предпочитают работать с историей не через 1С, а в другом формате. Это позволяет не нагружать сервер, и клиентский компьютер при этом также работает существенно быстрее. Чтобы осуществить просмотр журнала регистрации, необходимо сформировать отчет с нужными данными в 1С. Затем нажмите «Еще/Вывести список…», выделите все столбцы и сохраните полученные данные в файл с нужным форматом с помощью клавиш Ctrl+А.

Также в 1С встроена функция «ВыгрузитьЖурналРегистрации()», которой можно воспользоваться во внешних обработках, чтобы выгружать себе определенные данные. Анализировать выгруженные данные может помочь типовая обработка «Консоль анализа журнала регистрации». Она распространяется на диске ИТС, который вы получаете, когда заключаете договор с партнерами компании 1С. Если же нет доступа к этим дискам, то на помощь может прийти интернет и официальный сайт ИТС.

Как восстановить журнал регистрации?

Бывают случаи, когда при переносе информационной базы или обновлении сервера журнал регистрации оказывается пустым. Если вам не повезло, и журнал некорректно работает, то придется заниматься восстановлением данных. В первую очередь проверьте сами файлы журнала регистрации. Если говорить о клиент-серверном варианте, то они хранятся на сервере в каталоге:

Зачастую достаточно бывает переноса содержимого этой папки в каталог с новым расположением ИБ, чтобы журнал регистрации восстановился. Если же это не помогло, то придется обращаться к архиву логов или стороннему ПО для восстановления данных журнала регистрации. Перед тем как запускать обработки на рабочей базе, обязательно потренируйтесь на копии ИБ.

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

Как сократить журнал регистрации?

По мере работы в 1С данные журнала регистрации становятся все больше. Если вы обладаете ограниченными ресурсами, то уже через пару лет вы столкнетесь с нехваткой места на диске. Уменьшить размер истории ошибок и действий пользователя – естественный шаг для экономии места и оптимизации работы базы. Для этого нам понадобиться режим конфигуратора.

Необходимо открыть форму «Настройка журнала регистрации…» из меню «Администрирование»:

В сокращении журнала регистрации нам помогут 2 функции:

  • Кнопкой «Сократить» удаляем все данные до определенной даты;
  • Возможность выбора периодов разделения журнала. При установке данной опции в значение «День», каждый день будет создаваться новый файл журнала регистрации. Мы сможем устаревшие данные перемещать на отдельный ресурс. Также не лишним будет применить архивирование журнала в zip или rar для минимизации занимаемого места.

Как очистить журнал регистрации?

Многие администраторы периодически чистят журнал регистрации. Это оправданно, если вам нужно удалить старые записи или в данных по истории действий в базе нет необходимости. Выше был рассмотрен способ очистки журнала до определенной даты – с помощью кнопки «Сократить», используя конфигуратор. Но это не единственная возможность у администратора, чтобы очистить избавиться от ненужных данных журнала регистрации.

Логи 1С хранятся в папке 1Cv8Log в каталоге расположения информационной базы. Чтобы очистить журнал регистрации достаточно просто удалить данную директорию вместе с содержимым. Это освободит немало места на жестком диске, но рекомендуется произвести архивирование журнала и переместить данные в другое место.

Читайте также:  Фонарь эра ка16м схема

Можно ли программно добавить запись в журнал?

Многие администраторы и разработчики активно используют журнал регистрации не только для отслеживания ошибок и действий пользователя. Встроенный функционал внутреннего языка 1С позволяет им программно записывать свои события в журнал регистрации. Для этого используется функция «ЗаписьЖурналаРегистрации()» с набором параметров.

Таким образом, у каждого программиста есть возможность записывать собственные события в стандартный журнал регистрации. Эта возможность дает обширный простор для различных контролей и отслеживания работы пользователей. Особенно это актуально, если у вас настроено большое количество фоновых заданий, за которыми некогда следить.

Как вернуть старый формат журнала регистрации?

Начиная с версии 8.3.5, в 1С появляется новый формат данного механизма. Если вы создадите базу на основе платформы версии 8.3.5 и выше, то увидите в папке 1Cv8Log файл формата lgd. Пользователями уже замечено, что при большом количестве пользователей новый журнал регистрации работает существенно хуже. Поэтому многие администраторы заинтересованы в том, чтобы вернуть старый формат журнала регистрации.

Чтобы снова увидеть файл формата lgf, нужно для каждой базы 1С проделать следующий алгоритм:

  1. Найдите папку 1Cv8Log для конкретной базы;
  2. Удалите из каталога все файлы. Желательно сохранить их в другом месте;
  3. Создайте в папке 1Cv8Log пустой файл формата 1Cv8.lgf.

Вышеперечисленный алгоритм проделайте для каждой информационной базы.

Можно ли перенести журнал регистрации в отдельную базу?

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

Процедура переноса журнала отличается при файловом и клиент-серверном варианте информационной базы. В первом случае вам достаточно лишь найти в старом каталоге базы папку 1Cv9Log и скопировать ее в новую директорию базы.

Второй случай сложнее, так как потребуется исправлять идентификатор ИБ. Для этого откройте файл 1Cv8Reg, расположенный на сервере, и найдите в нем строчку с указание ID – источника ИБ. Зайдите в каталог этой ИБ и перенесите оттуда в новую директорию папку 1Cv8Log. Также следует внести изменения в адреса сервера, если базу перенесли.

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

На сервере 1С со временем увеличивается в размерах папка
reg_1541, содержащая журналы регистрации 1С. Расположена эта папка в директории С:Program Files1cv82srvinfo. И как следствие может возникнуть проблема свободного пространства на системном жестком диске. Чтобы избежать роста папки srvinfo необходимо периодически очищать журнал регистрации 1С.

Удаление неиспользуемых журналов регистрации из папки Srvinfo

В журнале регистрации фиксируется все изменения объектов баз 1С — документы, справочники, регистры и т.д.

Для каждой базы данных 1С существует своя директория хранения журнала регистрации и выглядит она таким образом:

Папка по-умолчанию называется reg_1541.

После удаления базы данных с сервера 1С папка журнала регистрации не удаляется из Srvinfo. Поэтому из множества папок в
Srvinfo могут находиться и те, которые давно не используются и просто занимают место на жестком диске.

Вычислить эти папки можно открыв файл 1CV8Clst.lst, который находится так же в reg_1541.

Копируем из папки Srvinfo и ищем в файле 1CV8Clst.lst. Если идентификатор в файле не найден, то папку можно удалять.

1CV8Clst.lst

В директории Srvinfo находится папка с названием вида snccntx+ . Эта папка содержит сеансовые данные и ее лучше не удалять без необходимости т.к. много места она не занимает.

Настройка и очистка журнала регистрации 1С

Запускаем 1С в режиме конфигуратора и переходим в меню «Администрирование/Настройка журнала регистрации»

В настройках журнала регистрации можно выбрать какие события будут регистрироваться:

Ошибки — информация о сбоях
Предупреждения — важные уведомления, не ошибки
Информация — все изменения базы данных
Примечания — все остальные уведомления

Для очистки журнала регистрации нажимаем кнопку «Сократить»

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

В поле «Удалить события до:» выбираем дату до который будем очищать журнал регистрации.

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

Автоматизация процесса очистки журнала регистрации

Автоматизация процесса через командную строку Windows выглядит таким образом:

[ConnectionString] — строка подключения к информационной базе. Т.к. речь идёт о серверном варианте, эта строка будет иметь вид «/S[ServerName][InfoBaseName] /N[UserName] /P[UserPassword]». Пользователь должен иметь право администрирования.

[PathToOperLog] — путь к файлу, в котором будут сохранены сообщения системы при выполнении этой операции.

[ShrinkDate] — дата, по которую будет укорочен журнал регистрации в формате yyyy-mm-dd

[BackUpedLog] — путь к файлу в формате *.elf, к которым можно будет обратиться в случае необходимости проводить расследования давних операций с информационной базой.

Операцию необходимо выполнять когда нет активных подключений к базе 1С.

Образец скрипта для PowerShell

Внимание! Данные для подключения к базе 1С обезличены. Необходимо заменить на свои.

Перенос журнала регистрации на другой диск

Чтобы избежать переполнения системного диска файлами журнала регистрации 1С папку SRVINFO можно перенести на другой диск. Выполнить это можно изменив параметры запуска службы «Агент сервера 1С:Предприятия 8.3» в реестре Windows.

Оцените статью
Добавить комментарий

Adblock
detector