Статистика времени выполнения кода

Публикация № 991030 28.01.19

База данных - Статистика базы данных

Анализ производительности производительность тормоза

Компонента для сбора времени выполнения кода (например проведения накладной) и отправка сначала в MS SQL далее в Zabbix.

Небольшая предыстория: пользователи жалуются на тормоза 1с - сделаю изменения, проверю своим скриптом время до и после, а пользователи все жалуются и жалуются... 

В итоге сделал следующий комплекс:

  • Компонента которая используется в 1с для "экранирования" замеряемых участков кода
  • SQL таблица, в которую отправляются полученные замеры всеми пользователями
  • Служба, которая получает данные из таблицы и отправляет в zabbix. (до версии 1.0.1.0 отправлялись усредненные значения)

Что делать в 1с:

Создать константу ZabbixСтатистикаВыполнения

в глобальном модуле описать

Перем глСтатистикаВыполнения Экспорт; //:Addin.ZabbixStatistics
Перем глОтправлятьСтатистикуВыполнения Экспорт;

в глобальном модуле в процедуре ПриНачалеРаботыСистемы()

глОтправлятьСтатистикуВыполнения=0;
Если Константа.ZabbixСтатистикаВыполнения=1 Тогда
	Попытка
		глСтатистикаВыполнения = СоздатьОбъект("Addin.ZabbixStatistics");
		глСтатистикаВыполнения.НазваниеБазы = ТекущаяИбКод();
		глСтатистикаВыполнения.Инициализация();
		глОтправлятьСтатистикуВыполнения=1;
	Исключение
	КонецПопытки;
КонецЕсли;

Также в глобальном модуле добавить процедуры

//-->> Статистика выполнения кода
Процедура глСтатистикаВыполнения_Начать(Параметр,ЗначениеПриОшибке=-1) Экспорт
	Если глОтправлятьСтатистикуВыполнения=1 Тогда
		глСтатистикаВыполнения.Начать(Параметр,ЗначениеПриОшибке);
	КонецЕсли;
КонецПроцедуры

Процедура глСтатистикаВыполнения_Отменить()  Экспорт
	Если глОтправлятьСтатистикуВыполнения=1 Тогда
		глСтатистикаВыполнения.Отменить();
	КонецЕсли;
КонецПроцедуры

Процедура глСтатистикаВыполнения_Закончить() Экспорт
	Если глОтправлятьСтатистикуВыполнения=1 Тогда
		глСтатистикаВыполнения.Закончить();
	КонецЕсли;
КонецПроцедуры
//<<--

Теперь в требуемом месте "экранировать" замеряемый участок

глСтатистикаВыполнения_Начать("Documents.Provedenie.RN",-1000);

//ВАШ КОД
//
//глСтатистикаВыполнения_Отменить(); Возврат; //Или иной выход из замеряемого участка кода
//
//ВАШ КОД

глСтатистикаВыполнения_Закончить();

 

Инструкция установка компоненты, службы, zabbix есть в описании на github, а также в скачиваемом архиве

 

Исходный код gihub

 

02.02.2019 Версия 1.0.1.0

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

 

 

 

Скачать файлы

Наименование Файл Версия Размер
Компонента, Служба, описание

.zip 501,10Kb
3
.zip 1.0.1.0 501,10Kb 3 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Serg O. 205 29.01.19 00:24 Сейчас в теме
тормозит - понятие субъективное...
да, надо четкое определение - сколько сек... МиллиСек...

среднее у Вас на рисунке 106 мс = это 1/10 секунды... это для пользователя - мгновенно...
но есть пики почти до 1,2 сек... что тоже очень быстро, но все-таки это в 12 раз больше среднего...

или вы не там меряете... или проблема в "умах"...

возможно "пики" - из-за блокировок...
грузят например платёжки... блокируются реализации (регистр взаиморасчетов),
или проводятся перемещения большие - так же реализации блокируются (регистр остатки товаров на складах) - таких пиков на рисунке несколько в 11-05 максимум...

кроме того "психологически" долго - по одной из рекомендуемых 1С методике APDEX -это
время, которое превышает среднее (хорошее) в 4 раза -и это уже для клиента "долго" и "неприемлимо"...
и, возможно, тормозит не само проведение... а "возврат" в список документов
новое отображение (особенно если есть расцветка... доп.обработка или у пользователя - свои поля настроены криво через 2-3 подзапроса)

p.s.
спасибо за обработки... zabbix как раз хотел "покопать"... посмотрю на досуге
Waanneek; +1 Ответить
2. пользователь 29.01.19 01:21
Сообщение было скрыто модератором.
...
3. ImHunter 269 29.01.19 10:31 Сейчас в теме
А как насчет многопоточности и/или вложенности замеров?
4. serpent 66 29.01.19 12:39 Сейчас в теме
А "SQL таблица, в которую отправляются полученные замеры" сама создается или надо самому делать?
5. LLIKIPER 9 29.01.19 14:19 Сейчас в теме
К сожалению 1с не многопоточна. Также вложенность замеров изначально не думал делать(но можно) ввиду того, что дополнительный код только увеличивает время выполнения.

В sql желательно создать отдельную базу, отдельного пользователя, в которую создать таблицу скриптом в архиве(есть и в исходниках).
Я именно так и делал, создавал отдельно базу, отдельного пользователя с доступом только в эту базу, ну и таблицу скриптом.

При первом запуске советую уровень Info изменить на Debug, тогда увидите результаты отправки в заббикс.

Небольшие ньюансы по работе компоненты:

Не отправляется статистика отмененного кода(например была ошибка транзакции). Скоро реализую в новой версии.

Отправка компонентой в sql идет в другом потоке, чтобы не тормозить код 1с, поэтому есть задержка указываемая в конфиге(изначально равна 10) с которой данные отправляются пока создан объект. Отсюда вывод, можно поймать ситуацию когда данные не успеют отправиться, а 1с будет закрыта

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

Пишите вопросы, пожелания и замечания, буду рад ответить помочь,а также прислушаться к конструктивным замечаниям.
6. LLIKIPER 9 29.01.19 14:28 Сейчас в теме
По поводу вложенности, можно сделать, но не буду ввиду несовместимости с алгоритмом по отправке статистики прерванного кода.
Дело в том что если начать замер, но не окончен, но начат другой замер этой же компонентой, то можно считать что первый был некорректно завершен и нужно отправлять -1, чтобы однозначно выделить такую ситуацию, как в таблице так и в заббиксе.

Я подумаю еще насчет вложенности, в принципе можно передать вторым параметром уровень текущей вложенности. В общем подумаю...
7. capitan 2306 30.01.19 14:20 Сейчас в теме
Вроде же zabbix умеет читать apdex, почему так сделано ?
8. LLIKIPER 9 31.01.19 07:13 Сейчас в теме
(7) в 7.7 нет Apdex, но спасибо за комментарий, было полезно про него прочитать, а также наткнулся на статью отправки данных zabbix агентом из sql в zabbix (что собственно и делает моя служба)
9. capitan 2306 31.01.19 09:40 Сейчас в теме
(8)Пардоньте. Не обратил внимание что под 77
Тогда конечно заслуженный +
10. LLIKIPER 9 02.02.19 16:35 Сейчас в теме
Спасибо комментирующим! Узнал что все таки возможно отправлять замеры за прошедшее время и не требуется их усреднять. (Есть с версии 1.0.1.0)

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

Я буду рад новым комментариям!
11. LLIKIPER 9 05.02.19 07:48 Сейчас в теме
Ну вот и первые плоды пошли(см. вложение)
Прикрепленные файлы:
Оставьте свое сообщение

См. также

Анализ состава базы данных 1С 7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Представлены 2 обработки для платформы 1С:Предприятие 7.7 релиз. 027: - Обработка "Анализ базы данных": - может пригодиться, например, для оценки переноса данных: количество элементов справочников, количество документов и субконто. Что проще внести руками, а что лучше перенести конвертацией или обработкой. - Обработка "Анализ реквизитов с типом "строка неограниченной длины"" - чтобы понять: "а нужна ли строка неограниченной длины именно здесь?". В SQL - с этим проблем нет, в вот в дбф - такие реквизиты пишутся в один файл, и если база перегружена этими реквизитами, то это может быть проблемой взаимоблокировок.

1 стартмани

03.11.2020    4767    6    andrey1508    0    

1

Используемые в базе 1С:7.7 документы и справочники

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

28.10.2016    16176    18    citicat    4    

2

Отслеживание использования объектов (отчетов, обработок, документов, справочников)

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

10 стартмани

12.09.2016    13882    3    Dartvader    1    

1

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

Журнал регистрации Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Появилась задача выбрать время для регламентных работ с базой в круглосуточной организации. Да и вообще часто возникает желание быстро посчитать количество документов, создаваемых в базе за время или каким-то пользователем. Написал для этого совсем простую обработку. Работать будет почти в любом типовом приложении 1С 7.7

1 стартмани

02.08.2013    18918    24    EdGreen    7    

6

Анализ наполненности базы 7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Отчет показывающий количество объектов (справочников и документов) в базе, а также их структуру методанных. Был создан для удобности анализа сопоставления объектов при перекачке данных из баз 7.7 в 8.*

1 стартмани

13.03.2013    13943    28    vova196    2    

6

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Подсчет количества записей в файлах DBF + описание

Статистика базы данных Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В 1С 7.7 DBF - есть ограничения 1. На размер файла - не более 2 Гб. И второе на количество записей в файле DBF, не более 16 млн. записей.

1 стартмани

06.06.2012    18944    53    Ivan_Sol    3    

3

Статистика документов 1С 7.7

Универсальные обработки Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

04.04.2012    20725    90    kosmo0    5    

9

Отчет по конфигурации: "Справочники, документы, регистры. Подсчет количества записей и переход в форму списка объекта"

Статистика базы данных Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Россия Абонемент ($m)

Отчет даёт моментальное представление о качественном и количественном заполнении базы данных по видам справочников, документов, регистров (накопления, бухгалтерии, сведений). Отбор документов по периоду, по организации (при наличии такого реквизита). Авто установка фильтра по периоду, по организации при переходе в форму списка. Отбор регистров по периоду (кроме непериодических регистров сведений), по организации (при наличии такого измерения). Авто установка фильтра по периоду, по организации при переходе в форму списка. Дополнительный подсчёт количества справочников, документов по статусу "Помечен на удаление" в отчёте. Авто установка фильтра по статусу "Помечен" при переходе в форму списка. Дополнительный подсчёт количества документов по статусу "Проведён / Не проведён". Авто установка фильтра по статусу "Проведён" при переходе в форму списка. Двойной клик по ячейке отчёта выполняет переход в форму списка выбранного справочника, документа, регистра (накопления, бухгалтерии, сведений).

3 стартмани

19.03.2012    39751    256    Designer1C    10    

19

Готовые переносы данных из различных конфигураций 1C Промо

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

Dbf-Метр, отчет обработка для 7.7 – Оценка размера и структуры загруженности файловой базы данных.

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

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

5 стартмани

07.12.2011    18295    54    Yury1001    11    

14

Подсчет документов, созданых за период времени

Обработка документов Статистика базы данных Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Отчет по количеству документов, сделанных операторами за определенный период. Писал для ТиС 933.

1 стартмани

20.08.2010    12464    68    Black Cat    2    

3

Подсчёт числа документов по базам в РИБ

Статистика базы данных Обмен между базами 1C Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Как-то давно потребовалось мне узнать сколько и каких документов в базе. Причём база распределённая, и, соответственно, информация нужна в разрезе баз.

1 стартмани

28.02.2010    15756    52    Pim    2    

6

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Анализ ввода документов для 7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

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

1 стартмани

20.07.2009    16856    182    gnataly    9    

25

Много ли работы у ваших бухгалтеров

Статистика базы данных Бухгалтерский учет 7.7 1С:Бухгалтерия для бюджетных учреждений 7.7 Россия Абонемент ($m)

Простенький отчет. Так ли загружены ваши бухгалтера, как они сами говорят? После анализа при помощи этого отчета получается - "так они ж не делают ни фига!!!". За отчет сильно не ругать - один из первых.

1 стартмани

24.06.2009    12566    70    MOA2    25    

6

Сравнение таблиц при помощи Visual Comparer

Статистика базы данных Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Демонстрация возможности сравнения двух выведенных на экран печатных форм в объекте "Таблица".

1 стартмани

08.05.2009    15345    163    waol    11    

4

EnotStats: Статистика базы данных v1.0.4 (для 7.7)

Статистика базы данных Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

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

1 стартмани

21.04.2009    21221    1278    albert    23    

141

Значения реквизитов справочников/документов

Статистика базы данных Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Абонемент ($m)

Вот, решил в первый раз выложить что-то свое. Выборка информации о значениях реквизитов справочников/документов - какими значениями и сколько раз заполнялся реквизит справочника/документа. Писал когда-то (лет 5 назад) для себя, вот решил выложить, может, кому пригодится.

1 стартмани

04.09.2008    13207    192    kotansys    4    

9

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Статистика по ИБ 1С:7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Подсчет количества элементов в базе. Универсальная обработка. Будет работать на любой конфигурации 1С версии 77. Обработка позволяет выводить статистику по справочникам и документам базы. Для справочников выводится количество элементов. Предусмотрена возможность не учитывать помеченные на удаление элементы; также есть возможность посчитать количество элементов в любой отдельно взятой папке справочника. Для документов предусмотрена возможность обработки проведенных, непроведенных или помеченных на удаление элементов за выбранный период. В отчет можно вывести список используемых документов и их количество.

1 стартмани

31.08.2007    21256    683    gubsky    12    

15