Кто запустил анализ журнала регистрации?

Администрирование - Журнал регистрации

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

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

Признаками данной проблемы являются:

  1. Невозможно зайти в информационную базу.

  2. Почти 100% активность диска, на котором расположен журнал регистрации и активное чтение файла журнала регистрации процессом rmngr.
    Данный пункт можно проверить с помощью монитора  ресурсов (Диспетчер задач - Производительность - Открыть монитор ресурсов) на вкладке “Диск”.
    В группе “Запоминающие устройства” нужно обращать внимание на колонку “Активное время (%)”.
    В группе “Работа диска” нужно обращать внимание на колонки “Чтение” и “Файл”. Можно отсортировать по колонке “Чтение”. Среди первых строк с максимальной скоростью чтения будет процесс rmngr. Далее нужно смотреть имя читаемого файла, оно будет соответствовать журналу регистрации определенной информационной базы.

  3. В консоли администрирования кластера серверов 1С:Предприятие в списке сеансов почти у всех пользователей будет большое и приблизительно одинаковое значение в колонке “Захвачено СУБД” или в колонке “Время вызова (текущее)”.

 

При обнаружении проблемы нужно:

  1. Запомнить УИД ИБ, к которой выполняется чтение процессом rmngr.

  2. Запустить сбор технологического журнала на события EXCP, если еще не запущен.

  3. Сделать экспорт всех сеансов на проблемном сервере ИЛИ на проблемной ИБ с помощью консоли администрирования кластера серверов 1С:Предприятие, на случай, если понадобятся дополнительные данные для анализа.

  4. Перезапустить службу 1С:Предприятие.

  5. Собрать технологический журнал на время перезапуска сервера 1С:Предприятие.

  6. Проанализировать технологический журнал: выполнить поиск слов “ВыгрузитьЖурналРегистрации” или “UnloadEventLog”.

 

Пример:

29:40.069000-0,EXCP,4,process=rphost,p:processName=ib_accounting,t:clientID=114396,t:applicationName=1CV8C,t:computerName=COMP,t:connectID=109127,SessionID=1,Usr=ИвановИИ,AppID=1CV8C,ClientID=114389,Exception=NetDataExchangeException,Descr=Передача данных прервана по инициативе принимающей стороны.,Context='Форма.Вызов : ВнешнийОтчет.АнализЖурналаРегистрации.Форма.Модуль.ФоновоеЗаданиеЗапустить

ОбщаяФорма.ФормаОтчета.Форма : 1242 : ВариантыОтчетов.СформироватьОтчетВФоне(ПараметрыФормированияОтчета, РезультатФоновогоЗадания.АдресРезультата);

   ОбщийМодуль.ВариантыОтчетов.Модуль : 2544 : Формирование = СформироватьОтчет(Параметры, Ложь, Ложь);

      ОбщийМодуль.ВариантыОтчетов.Модуль : 2060 : ОтчетОбъект.СкомпоноватьРезультат(Результат.ТабличныйДокумент, Результат.Расшифровка);

          ВнешнийОтчет.АнализЖурналаРегистрации.МодульОбъекта : 64 : ВыгрузитьЖурналРегистрации(ТЗ,Отбор,Колонки);'


По этой строке можно сказать кто: ИвановИИ, где (на каком компьютере): COMP, в какой информационной базе: ib_accounting запустил анализ журнала регистрации.

Проблема точно воспроизводится на версиях платформы: 8.3.9.2170, 8.3.9.2233.

См. также

Комментарии
1. Stepan 21231312 (MSK_Step) 10 16.09.17 14:48 Сейчас в теме
+ за понятный мануал решения конкретной проблемы. Хотя у нас права на ЖР есть только у одного
3. Armando Armando (Armando) 1382 16.09.17 22:01 Сейчас в теме
Если запустили просмотр ЖР из обычного приложения как определить сеанс?
6. metal doctor (metmetmet) 57 17.09.17 07:22 Сейчас в теме
(3) Определение сеанса не зависит от типа клиента. Важно каким образом запущен анализ журнала регистрации. На моих экспериментах, к недоступности информационной базы приводило только выполнение метода ВыгрузитьЖурналРегистрации. Анализ журнала регистрации штатной формой или из конфигуратора не приводили к подобным проблемам.
4. Сергей Старых (tormozit) 4545 17.09.17 00:53 Сейчас в теме
Если штатную форму просмотра журнала регистрации открыли, то интересно как ловить это техножурналом?
7. metal doctor (metmetmet) 57 17.09.17 07:23 Сейчас в теме
(4) На моих экспериментах, к недоступности информационной базы приводило только выполнение метода ВыгрузитьЖурналРегистрации. Анализ журнала регистрации штатной формой или из конфигуратора не приводили к подобным проблемам.
8. Сергей Старых (tormozit) 4545 17.09.17 09:14 Сейчас в теме
(7) Это потому что использовалась динамическая выборка или низко селективный фильтр. Динамическая выборка выбирает только до заполнения видимого числа строк журнала (+ возможно одну страницу). Поэтому в среднем она намного быстрее завершает выборку. Но ведь можно и очень редкие события отбирать или статическую (полную) использовать.
Прикрепленные файлы:
10. Сергей Старых (tormozit) 4545 17.09.17 10:05 Сейчас в теме
(8) Опечатка. Не "динамическая выборка или низко селективный фильтр", а "динамическая выборка и низко селективный фильтр, т. е. в таблице часто встречаются строки ему удовлетворяющие".
21. Михаил (user634257_mryzhov) 18.09.17 16:20 Сейчас в теме
(10) При выборке с параметром "Отобрать сразу" также сталкивались с зависанием сервера.
20. Михаил (user634257_mryzhov) 18.09.17 16:18 Сейчас в теме
(7) Подобная же ошибка возникала при обычном отборе в списке журнала регистрации. Отбор по пользователю и объекту метаданных. Объем журнала регистрации был порядка 60гб.
На текущий момент решаем проблему регламентным урезанием журнала регистрации.
9. Armando Armando (Armando) 1382 17.09.17 09:58 Сейчас в теме
(4) думаю надо анализировать события system или call
11. metal doctor (metmetmet) 57 17.09.17 11:49 Сейчас в теме
(9) События CALL, SCALL записываются в технологический журнал после их выполнения. По этим событиям можно анализировать у кого анализ журнала регистрации завершился успешно. Имя искомого метода "fetchLogEntriesDataBkwd".

P.S.
Имя метода "fetchLogEntriesDataBkwd" получено экспериментальным путем, теоретического или официального подтверждения не имею.

Примеры событий ТЖ
tormozit; +1 Ответить
12. Armando Armando (Armando) 1382 17.09.17 14:53 Сейчас в теме
(11) system пробовали анализировать?
13. metal doctor (metmetmet) 57 17.09.17 18:08 Сейчас в теме
(12) Нет, не пробовал, т.к. в боевом режиме 1С не рекомендует его использовать, поэтому практической пользы не будет.
5. Сергей Старых (tormozit) 4545 17.09.17 01:28 Сейчас в теме
На эту тему я написал в 1С пожелание https://partners.v8.1c.ru/forum/t/1645592/m/1645592 , чтобы дали возможность ограничивать длительность выборки.
Deslime; Armando; metmetmet; +3 Ответить
14. Armando Armando (Armando) 1382 18.09.17 00:42 Сейчас в теме
Мое небольшое исследование на эту тему привело к такому содержнию файла настройки ТЖ:
<log history="24" location="D:\Temp\Log">
	<property name="all"/>
	<event>
		<eq property="name" value="SYSTEM"/>
		<eq property="class" value="LogMngrSQLiteData"/>
		<eq property="func" value="fetchLogEntries"/>
		<eq property="level" value="INFO"/>
	</event>
	<event>
		<eq property="name" value="SYSTEM"/>
		<eq property="class" value="LogMngrData"/>
		<eq property="func" value="fetchLogEntriesDataBkwd"/>
		<eq property="level" value="DEBUG"/>
	</event>
	<event>
		<eq property="name" value="SYSTEM"/>
		<eq property="class" value="LogMngrData"/>
		<eq property="func" value="fetchLogEntriesDataFwd"/>
		<eq property="level" value="DEBUG"/>
	</event>
</log>
<system level="info" component="backbas" class="LogMngrSQLiteData"/>
<system level="debug" component="backbas" class="LogMngrData"/>
Показать


class="LogMngrSQLiteData" - новый формат ЖР.
class="LogMngrData" - старый формат ЖР

Платформа 8.3.10.2561. Тестировал на файловом и серверном режиме. В конфигураторе, в тонком клиенте, в толстом клиенте (обычное приложение). На старом и новом форматах журнала регистрации. Просмотр встроенными средствами и выборка методом ВыгрузитьЖурналРегистрации().

Для серверного режима не выводит базу и пользователя, но выводит clientID. Так что дополнительно надо настраивать событие CONN.

Для ЖР в формате SQLite выводит в ТЖ исполняемый запрос.
N!ghtmare; stal76; tormozit; baton_pk; metmetmet; +5 Ответить
15. metal doctor (metmetmet) 57 18.09.17 11:32 Сейчас в теме
(14) Эти события в ТЖ будут попадать только после выполнения?
16. Armando Armando (Armando) 1382 18.09.17 14:10 Сейчас в теме
(15) не проверял, т.к. не было под рукой тестовой базы с ЖР большого объёма. Но длительность событий в некоторых случаях точно была 0, что наводит на мысль.
26. Armando Armando (Armando) 1382 18.09.17 23:36 Сейчас в теме
(15) Проверил на серверной базе с большим ЖР старой версии. К сожалению при использовании метода ВыгрузитьЖурналРегистрации() событие выводится в журнал после успешного выполнения(
17. Василий Казьмин (awk) 681 18.09.17 14:19 Сейчас в теме
А зачем знать пользователя?
18. metal doctor (metmetmet) 57 18.09.17 15:06 Сейчас в теме
(17) Чтобы у него узнать причину анализа журнала регистрации и предотвратить в дальнейшем. Анализ большого журнала регистрации с "плохими" (селективным) отбором может приводить к недоступности информационной базы.
19. Василий Казьмин (awk) 681 18.09.17 15:19 Сейчас в теме
(18) Ну узнали и что дальше? Базы (база это частный случай) станут доступными?
25. metal doctor (metmetmet) 57 18.09.17 18:53 Сейчас в теме
(19) Доступность информационной базе вернет только завершение отбора по журналу регистрации или перезапуск сервера 1С:Предприятие. А для того, чтобы подобное не повторялось нужно знать кто, зачем и почему это сделал.
27. Василий Казьмин (awk) 681 19.09.17 09:21 Сейчас в теме
(25)
1. Не только. Журнал регистрации пишет менеджер кластера. Можно перезапустить именно его, а не сервер в целом.
2. Если не хотите что бы повторялось, то отключите журнал регистрации.

P.S.

Сокращу наш диалог.

Журнал регистрации - это инструмент. У нас им пользуются ВСЕ!!! Баз чуть больше чем много. Размеры журналов превышают 20 гигобайт. Задача нашего отдела - обеспечение бесперебойной работы. С чем мы успешно справляемся. А вы на мой взгляд занимаетесь маскировкой проблемы (задачей бессмысленной и вредной). Вам надо не тех. журнал настраивать, а оборудование прокачивать.
28. Сергей Старых (tormozit) 4545 19.09.17 09:27 Сейчас в теме
(27) Видимо журналы у вас в старом формате?
29. Василий Казьмин (awk) 681 19.09.17 09:31 Сейчас в теме
(28)Сергей, мое почтение. В новом... У нас оборудование соответствует задаче.
30. Сергей Старых (tormozit) 4545 19.09.17 10:10 Сейчас в теме
(27) Тогда думаю многим было бы интересно узнать подробнее о том, как достичь такого. Мне не удавалось. Предлагаю начать с примера отбора по журналу размером 20ГБ в режиме "Отобрать сразу" по "Данные=<Какой то древний элемент справочника>". Интересуют сколько времени это выполняется и скрины списка сеансов в базе из консоли кластера через 1-2-3 минуты.
31. Василий Казьмин (awk) 681 19.09.17 10:20 Сейчас в теме
(30) Боюсь это не возможно. По причинам:

1. Раскрытие параметров оборудования приведет к моему увольнению
2. Эксперименты в рабочем контуре и публикация результатов приведут к моему увольнению
3. У меня трое детей - мне их кормить надо.

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


По слухам СХД нам обошлось как две теслы...
32. Сергей Старых (tormozit) 4545 19.09.17 11:37 Сейчас в теме
(31)
1. Я не просил параметры оборудования.
2. Подойдет и реальный пример такого рода. Наверняка вы иногда проводите расследования типа "кто мог установить неверное значение реквизита в документе/контрагенте?". Вот хотелось бы узнать сколько времени выполняется отбор по значению поля "Данные". Можно даже без "отобрать сразу". Скриншоты из консоли кластера с замазанными именами пользователей кажется не должны подрывать безопасность.
33. Василий Казьмин (awk) 681 19.09.17 12:30 Сейчас в теме
(32)
Запуск в тестовом контуре:
Размер лога 21.9 Гб

Первый запуск
Загрузка данных журнала выполнена за 0:10:30
Повторный запуск
Загрузка данных журнала выполнена за 0:01:01

. Очередь к диску (средняя) 0.3 Падение производительности было заметно (если и было) только на одном кластере. Запуск был на тестовом контуре 256 Гб оперативки, старый СХД (но на ССД дисках) 16 физических ядер (32 логических) 2.4

С рабочем контуром не получится логи обрезаны на выходных.

Анализ журнала производился твоей обработкой, по данным последний раз обновленным более года назад. В ЖР по ним событий не найдено.
34. Сергей Старых (tormozit) 4545 19.09.17 12:34 Сейчас в теме
(33) Так тут центральным является вопрос снижения параллельности работы пользователей. Поэтому тестовые базы не очень наглядно проверять.
35. Василий Казьмин (awk) 681 19.09.17 12:39 Сейчас в теме
(34) Тут вопрос вообще не технический. Тут вопрос административный: "Как организовать работу"?
22. Михаил (user634257_mryzhov) 18.09.17 16:22 Сейчас в теме
Интересно можно ли устранить блокировку работы 1С, при запросе к журналу регистрации.
23. Егор Иванов (Infactum) 219 18.09.17 17:55 Сейчас в теме
1С не рекомендует использовать новый формат журнала регистрации для высоконагруженных баз.
24. PerlAmutor IC (PerlAmutor) 8 18.09.17 18:00 Сейчас в теме
Тоже долгое время мучались с этим. Иногда пользователь не виноват, порой жмут кнопку какого-нибудь отчета или гиперссылку из документа, а она автоматически начинает делать отбор по ЖР. Пока не перевели на старый формат решали это через конфигуратор, там выставили двум-трем админам права просмотра ЖР и все.
36. Василий Казьмин (awk) 681 19.09.17 13:06 Сейчас в теме
Я начал писать сюда с вопроса: "Зачем знать пользователя"? Написал я это лишь потому, что смысла в знании не вижу - это не повысит паралельность. Никаких проблем с журналом нет, при соблюдении следующих условий:

1. Определен круг пользователей допущенных до журнала.
2. Определен разумный период который хранится в журналах рабочих базах.
3. Базы распределены по кластерам (за ЖР отвечает менеджер кластера).
4. Журналы режутся.
pbabincev; +1 Ответить
37. Альтаир (Altair777) 639 19.09.17 14:43 Сейчас в теме
(36) В этим с предыдущими высказываниями почти полностью согласен. Есть же правило - что не запрещено, то разрешено. Если не запретили и не научили как надо, то сами виноваты. А если такие страшные последствия, то запретите всем "непродвинутым" и делайте анализ сами по запросу. Это этого пользы будет больше, чем потом с гордым видом и горящими глазами искать виноватых и сулить им всяческие кары - отлучение от церкви, премии, корпоративных пьянок (нужное подчеркнуть) :)

(18) Вы не могли бы привести пример дальнейших действий после узнавания причины анализа ЖР? Как и характерный пример самой причины.
38. metal doctor (metmetmet) 57 19.09.17 19:23 Сейчас в теме
(37) Пример дальнейших действий: лишить пользователя прав на доступ к ЖР, проанализировать необходимость получения данных из ЖР для пользователя, просто сообщить об инциденте ответственному человеку со стороны заказчика.
Причина: компания разработала обработку, в которой ошибки и служебная информация записываются в ЖР, и сообщила заказчику, что всю информацию о работе обработки нужно получать из ЖР. Некоторые сотрудники заказчика решили проанализировать работу обработки.
39. metal doctor (metmetmet) 57 19.09.17 19:40 Сейчас в теме
(36) Очень здорово, когда есть возможность использовать СХД, SSD, на которых чтение 20Гб ЖР занимает 10 секунд. Но чаще всего пользователям не нужен доступ к ЖР и, конечно, правильным решением будет ограничение доступа.
Также встречаются заказчики, которые сильно против изменений в конфигурации, а в типовых решениях от фирмы 1С еще не вынесен в отдельную роль доступ к ЖР. Им достаточно просто рассказать об инциденте и провести разъяснительную беседу с пользователями.

Можете рассказать как вы обрезание ЖР: с помощью функций работы с ЖР, просто перемещает файл, напрямую работаете с файлом ЖР или что-то другое?
42. Василий Казьмин (awk) 681 20.09.17 09:30 Сейчас в теме
(39) У нас на кэш и журналы выделено N Гб. Когда место заканчивается (о чем нас предупреждает zabbix), мы делаем ночью:

net stop <service 1C name> - остановка сервера
move <1C folder> <1C folder>_<date> - переименование папки сервера 1С
XCOPY <1C folder>_<date>/*.lst <1C folder> - восстанавливаем все кроме логов
net sart <service 1C name> - запуск 1С. До этого момента даже на слабом сервере с IDE дисками 60 секунд не более пройдет
7z a -tzip <archive path>\<1C folder>_<date>.zip <1C folder>_<date>

Если кому-то нужна история, то мы ему в тестовом контуре даем копию базы и ее логи.


И 10:30 - это десять с половиной минут. Это много, но меньше времени реакции отдела (объективной).
40. Антон Стеклов (asved.ru) 33 20.09.17 09:19 Сейчас в теме
Нечего там анализировать. С новым форматом вы сделать ничего не сможете. Переходите на старый, он хотя и медленный, и на чтении систему грузит, но не виснет.
В некоторых случаях удобным решением может быть внешнее хранение ЖР.
41. Евгений (le_) 178 20.09.17 09:21 Сейчас в теме
Неужели кто-то пользуется штатным ЖР?..
У нас он везде отключен и сделан собственный на основе регистра сведений.
43. Данила Баннов (D-masterrr) 22.09.17 23:05 Сейчас в теме
Вообще журнал регистрации по сути это средство разработчика и права пользователям на запуск это явно лишнее. Странно что статья вышла только сейчас, т.к. виснет он уже давно. Мы уже пару раз в отделе попадали, что разработчик выставил мало фильтров или вообще их не поставил и база висла напрочь. Теперь правило ввели, чтобы обязательно был выставлен фильтр по данным и/или фоновым заданиям и дате.
Оставьте свое сообщение