Получение top 25 вызовов в клиент-серверном режиме работы с наибольшей суммарной длительностью

Публикация № 1210202

Администрирование - Производительность и оптимизация (HighLoad)

script bash call разбор технологического журнала

Анализ технологического журнала

Получение top 25 вызовов в клиент-серверном режиме работы с наибольшей суммарной длительностью

Надеюсь, читатель встречал такую статью на ИТС. Постарался написать о том же, но по-новому, без заимствований. Благодарю Виктора Богачева за предоставленные методические материалы и поддержку.

Bash-cкрипты тестировал на технологическом журнале, платформа 8.3.12. Это важно, ведь формат событий CALL значительно изменялся от версии к версии:

  • 8.3.1 добавлены свойства Report, Method, SessionID, Memory, MemoryPeak, InBytes, OutBytes, Context.
  • 8.3.6 добавлены свойства IName, MName
  • 8.3.8 добавлено свойство Usr

Получение полей Usr, Context в версии 8.2 было более трудным.

Пропустим установку bash и сбор технологического журнала. Возьмем быка за рога !

Упрощенная (первая) версия скрипта анализа длительности вызовов.

printf "%15s%15s%15s%15s%-30s%-90s", "Memory(Mb)", "Duration(sec)", "Quantity", "SessionID", "Usr", "Context" \
; printf "%s\n" \
; egrep '^[0-9][0-9].{9,25},CALL,.*,Usr=[^,]+,SessionID=[^,]+,Context=[^,]+,Interface=.*,Memory=.*,MemoryPeak=' -h -R --include "*.log" \
| awk -F'(^.{13})|(,CALL,.*Usr=)|(,SessionID=)|(,Context=)|(,Interface=.*,Memory=)|(,MemoryPeak=)' \
'{ Memory[$4,$3,$5]+=$6; Duration[$4,$3,$5]+=$2; Usr[$4,$3,$5] = $3; SessionID[$4,$3,$5] = $4; Context[$4,$3,$5] = $5; Quantity[$4,$3,$5]+=1} \
END {for (i in Memory) {printf "\n%15d%15d%15d%15s\t%-30s%-90s", Memory[i]/1000000, Duration[i]/1000000, Quantity[i], SessionID[i], Usr[i], Context[i]}}' \
| sort -rnb \
| head -n20

Комментарии к коду:

Знак «\» - в конце строки означает, что скрипт продолжается. Для каждой строки подробный комментарий внизу по номеру. Если строка начинается «|» - значит, она получает данные из предыдущей строки. Если строка начинается «;» - значит, команда выполняется самостоятельно. Команда awk разбита на строки с 4 по 6 для удобства чтения.

  1. Печать заголовка таблицы. Колонки с помощью команды printf по форматной строке "%15s%15s%15s%15s%-30s%-90s". Цифры означают ширину колонок, s – строковый формат, d – числовой. Полученная таблица прекрасно переносится из Bash-консоли в Excel.
  2. Разделительная строка между заголовком и данными табличной части
  3. Считываем данные из файлов текущего каталога и ниже, рекурсивно. Используем маску файла *.log Команда cat получает все данные, а egrep – только строки заданного формата.
  4. В параметре F разделители подобраны таким образом, чтобы переменные awk соответствовали параметрам Memory=$6; Duration=$2; Usr=$3; SessionID=$4; Context=$5;. Разделители записаны в скобках через ИЛИ. Недостаток такого метода в том, что требуется строка CALL строго определенной структуры, а эти строки имеют очень много вариантов формата. Поэтому скрипт выберет только часть строк. Параметры являются структурой (функцией, группировкой) от Usr, SessionID, Context. На мой взгляд - это самый правильный способ группировки, обоснование ниже.
  5. Этот участок команды awk выполняется для каждой строки файла. Все переменные группированы по одинаковым аргументам. Это для удобства печати. Память, длительность и количество вызовов – накапливаются.
  6. Участок «END» команды awk выполняется, когда обработаны все строки. В цикле командой printf по форматной строке "\n%15d%15d%15d%15s\t%-30s%-90s" выводятся строки таблицы. В данном случае переменная Memory печатается раньше, чем Duration, поэтому сортировка будет по объему памяти. Поменяйте их местами (в строке и заголовке), чтобы сделать сортировку по Duration. Можно сортировать по количеству вызовов Quantity, можно считать отношение Duration/ Quantity и сортировать по нему.
  7. Сортировка по убыванию
  8. Первые 25 строк выборки.

Проверочная работа.

Подсчитаем общее количество строк и количество строк, подходящих под шаблон. Выведем неподходящие строки.

egrep '^[0-9][0-9].{9,25},CALL,' -h -R --include "*.log" \
| awk '{if ($0~"Usr=[^,]+,SessionID=[^,]+,Context=[^,]+,Interface=.*,Memory=.*,MemoryPeak=") {my[2]+=1;} \
if ($0~"((Context|Module|Method).*,Usr=.*SessionID)|((Context|Module|Method).*SessionID.*,Usr=)") {my[3]+=1;} \
else if ($0~"(,Usr=.*(Context|Module|Method).*SessionID)|(,Usr=.*SessionID.*(Context|Module|Method))") {my[3]+=1;} \
else if ($0~"(SessionID.*(Context|Module|Method).*,Usr=)|(SessionID.*,Usr=.*(Context|Module|Method))") {my[3]+=1;} \
else print $0; \
{my[1]+=1;}} \
END {print my[1],my[2],my[3]}'

Для конкретного файла у меня получились цифры 3084 2235 3027. То есть из всех событий CALL только 60% удовлетворяют формату первого скрипта и 98% содержат Context|Module|Method, Usr, SessionID в какой-то последовательности. Сделаем вторую версию ТОТАЛЬНОЙ. Если переменная отсутствует – будем считать ее значение пустым. Сочетание Module-Method приравняем к контексту, если Context отсутствует.

Основная версия скрипта анализа длительности вызовов.

printf "%15s%15s%15s%15s%-30s%-90s", "Memory(Mb)", "Duration(sec)", "Quantity", "SessionID", "Usr", "Context" \
; printf "%s\n" \
; time egrep '^[0-9][0-9].{9,25},CALL,' -h -R --include "*.log" \
| awk -F'(,|=)' '{ \
ColumnName=3; ColumnVal=4; my[1]=""; my[2]=""; my[3]=""; my[4]=""; my[5]=""; my[6]=0; \
while(ColumnName<NF){ColumnName++; ColumnVal++; \
if ($ColumnName=="Usr") {my[1]=$ColumnVal;} \
else if ($ColumnName=="SessionID") {my[2]=$ColumnVal;} \
else if ($ColumnName=="Context") {my[3]=$ColumnVal;} \
else if ($ColumnName=="Module") {my[4]=$ColumnVal;} \
else if ($ColumnName=="Method") {my[5]=$ColumnVal;} \
else if ($ColumnName=="Memory") {my[6]=$ColumnVal;}}; \
if (my[3]=="") {print $1","$2","$3",Usr="my[1]",SessionID="my[2]",Context="my[4]"_"my[5]",Interface=,Memory="my[6]",MemoryPeak=";} \
else {print $1","$2","$3",Usr="my[1]",SessionID="my[2]",Context="my[3]",Interface=,Memory="my[6]",MemoryPeak=";} \
}' \
| awk -F'(^.{13})|(,CALL,.*Usr=)|(,SessionID=)|(,Context=)|(,Interface=.*,Memory=)|(,MemoryPeak=)' \
'{ Memory[$4,$3,$5]+=$6; Duration[$4,$3,$5]+=$2; Usr[$4,$3,$5] = $3; SessionID[$4,$3,$5] = $4; Context[$4,$3,$5] = $5; Quantity[$4,$3,$5]+=1} \
END {for (i in Memory) {printf "\n%15d%15d%15d%15s\t%-30s%-90s", Memory[i]/1000000, Duration[i]/1000000, Quantity[i], SessionID[i], Usr[i], Context[i]}}' \
| sort -rnb \
| head -n20

Комментарии к коду:

  1. Печать заголовка таблицы. Колонки с помощью команды printf по форматной строке "%15s%15s%15s%15s%-30s%-90s". Цифры означают ширину колонок, s – строковый формат, d – числовой. Полученная таблица прекрасно переносится из Bash-консоли в Excel.
  2. Разделительная строка между заголовком и данными табличной части
  3. Начинаем замер времени, выбираем строки событий CALL.
  4. С помощью команды awk для каждой строки в цикле перебираем элементы строки, разделители – запятые и равно. Переменная ColumnName возрастает от 3 до NF – предопределенная переменная команды awk.
  5. Если в строке где-то есть запись например ,Usr=Васильев Николай, то выполнится условие ($ColumnName=="Usr") и значение Васильев Николай попадет в переменную my[1]
  6. Номер сессии
  7. Контекст
  8. Модуль
  9. Метод
  10. Память
  11. Для каждой строки выводим переменные в нужном порядке, с соседними словами чтобы формат подходил под первый скрипт. Если контекст – пустой, то вместо него пишем Module_Method
  12. В параметре F разделители подобраны таким образом, чтобы переменные awk соответствовали параметрам Memory=$6; Duration=$2; Usr=$3; SessionID=$4; Context=$5;. Разделители записаны в скобках через ИЛИ. Параметры являются структурой (функцией, группировкой) от Usr, SessionID, Context. На мой взгляд - это самый правильный способ группировки, обоснование ниже.
  13. Этот участок команды awk выполняется для каждой строки файла. Все переменные группированы по одинаковым аргументам. Это для удобства печати. Память, длительность и количество вызовов – накапливаются.
  14. Участок «END» команды awk выполняется, когда обработаны все строки. В цикле командой printf по форматной строке "\n%15d%15d%15d%15s\t%-30s%-90s" выводятся строки таблицы. В данном случае переменная Memory печатается раньше, чем Duration, поэтому сортировка будет по объему памяти. Поменяйте их местами (в строке и заголовке), чтобы сделать сортировку по Duration. Можно сортировать по количеству вызовов Quantity, можно считать отношение Duration/Quantity и сортировать по нему.
  15. Сортировка по убыванию
  16. Первые 25 строк выборки.

Скрипт претендует на универсальность. Поэтому если у Вас он не заработает - пишите, разберемся.

Дополнительные бонусы. Несколько похожих скриптов.

Сколько пользователей работает через терминальный сервер, а сколько – через веб сервер.

printf "%-30s%-30s%-30s", "applicationName", "Usr", "computerName" \
; printf "%s\n" \
; egrep '^[0-9][0-9].{9,25},CALL,.*applicationName=[^,]+,t:computerName=[^,]+,t:connectID=[^,]+,Usr=[^,]+,SessionID=' -h -R --include "*.log" \
| awk -F'(^.*applicationName=)|(,t:computerName=)|(,t:connectID=)|(,Usr=)|(,SessionID=)' \
'{applicationName[$5,$3]=$2; computerName[$5,$3]=$3; Usr[$5,$3]=$5} \
END {for (i in Usr) {printf "\n%-30s%-30s%-30s", applicationName[i], Usr[i], computerName[i]}}' \
| sort -nb

Комментарии к коду:

  1. Выводим заголовок таблицы
  2. Разделительная строка между заголовком и данными табличной части
  3. Читаем файлы рекурсивно по маске, строки определенного формата. [^,]+ означает несколько символов кроме запятой.
  4. Выбираем через или разделители так, чтобы определить переменные
  5. Выполняем группировку в переменные applicationName, Usr, computerName
  6. Выводим переменные в таблице
  7. Сортируем

Собрать все значения переменной.

time cat *.log \
| egrep '^[0-9][0-9].{9,25},CALL,.*Module=' \
| awk -F'^.*Module=' '{print $2}' \
| awk -F',' '{Module[$1]=$1} \
END {for (i in Module) {print Module[i] "\n"}}'

Поиск максимального значение Duration без сортировки, за один проход

time egrep '^[0-9][0-9].{9,25},CALL,' -H -r \
| awk -F'(,|-)' '{if($2>Max2){Max1=$0; Max2=$2;};} \
| END {print Max1}'

Результат работы:

Наименование файла, строка события с максимальным Duration.

Комментарии к коду:

  1. Читаем файлы рекурсивно с указанием имени файла, строки определенного формата.
  2. Для разделителей «,» или «-» значение Duration будет второй колонкой. Запоминаем значение и всю строку.
  3. Выводим строку события.

Куда инвестировать в кризис ?

Согласитесь, этот вопрос сейчас особенно острый. Акции Газпрома, биткоины, рубли, доллары, недвижимость, Форекс ? Мой сосед еще надеется на йены (привет, Максим !). Дочка почти верит в Деда Мороза.

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

 
 Подумайте: почему Вы останетесь в выигрыше - даже если счет не акцептуют ?

 

 
 Черновики и наброски.

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. -vito- 434 15.03.20 11:11 Сейчас в теме
Николай, интересная работа.
Вот только не пойму каким образом у Вас многострочные "хвосты" контекстов собираются? Или оставляете от контекста только первую строку, попадающую в одну строку с началом события?
2. buganov 143 15.03.20 11:12 Сейчас в теме
3. -vito- 434 15.03.20 11:15 Сейчас в теме
(2) Александр, а какой в этом смысл?
Я предварительно всё много строчное (запросы, контексты) собираю в одну строку с событием, потом произвожу нужные дейтвия - фильтры, группировки и т.д. В конце, если нужно, обратно в многострочные преобразую.
4. buganov 143 15.03.20 11:19 Сейчас в теме
(3)само событие CALL пишется в одну строку. Преобразования тут излишни
6. -vito- 434 15.03.20 11:30 Сейчас в теме
(4) Да, Вы правы. Проверил, у CALL-ов контекст минимален. Это у SCALL-ов простыни.
5. buganov 143 15.03.20 11:20 Сейчас в теме
(3) а запросы да, нужно преобразовывать
7. vasilev2015 1693 15.03.20 11:46 Сейчас в теме
Добрый день, Коллеги !

Рад Вашему вниманию. Для платформы 8.3.12 Context входит в строку CALL, но сама строка может иметь много вариантов. Скрипт получился сложный, зато должен работать всегда. Если будут противные примеры - присылайте.
8. buganov 143 15.03.20 11:56 Сейчас в теме
(7) можно дополнить скрипт на две ветки:
та, которая ищет по контаксту и та, которая для фоновых заданий
51:20.999033-20063024,CALL,1,process=rphost,OSThread=5072,t:clientID=86,callWait=0,first=true,Usr=DefUser,SessionID=13,p:processName=ExpKursy1SRF,Func=Background job,Module=ОбщийМодуль1,Method=ААА,Memory=5831,MemoryPeak=863661,InBytes=0,OutBytes=695,CpuTime=19953125

Например:
Cat 20*| grep Context=
и
Cat 20*| grep -P 'Module=.+Method | perl -pe 's/.+Module=(.+),Method=(.+?),.+/Context=\1\.\2/' Этот кусок вычленит контекст

Хотя, невнимательно прочитал второй скрипт, там как раз и обыгрывается такой сценарий
9. vasilev2015 1693 15.03.20 12:51 Сейчас в теме
(8) Второй скрипт работает, причем теги могут быть в произвольном порядке или отсутствовать. я тоже сначала пробовал заменой, но получалось слишком много вариантов. Про фоновые задания я не сам догадался - мне В.Б. подсказал.
Smank0; acanta; +2 Ответить
10. Sloth 182 15.03.20 23:36 Сейчас в теме
Спасибо!
Очередной раз убеждаюсь, изучай чужой код, дабы совершенствовать свой ;)
11. triviumfan 14 16.03.20 15:47 Сейчас в теме
Неужели кому-то нравится "ковыряться" со скриптами вместо того, чтобы воспользоваться готовым продуктом по сбору и анализу ТЖ?!
12. vasilev2015 1693 16.03.20 16:22 Сейчас в теме
(11) Здравствуйте !

Смотря какой готовый продукт ))).
Когда я узнал, что ЦУП красиво анализирует периоды не более 15 минут - то немного разочаровался.
Отношусь с симпатией к обработке TormozIt, но не использовал.

У нас за день набегает несколько Гб - поэтому используем скрипт.
Морозов использует скрипт.

У Вас технологический журнал какого объема, чем обрабатываете ?
15. triviumfan 14 17.03.20 14:42 Сейчас в теме
(12)
Отношусь с симпатией к обработке TormozIt, но не использовал.

А зря - хорошая скорость парсинга и все нужно есть.
(12)
Когда я узнал, что ЦУП красиво анализирует периоды не более 15 минут - то немного разочаровался.

шутка?
(12)
У нас за день набегает несколько Гб - поэтому используем скрипт.

А зачем весь день, да ещё с таким фильтром...?
Прикрепленные файлы:
16. vasilev2015 1693 17.03.20 15:01 Сейчас в теме
(15) За весь день мы просматриваем события CALL. Это очень частое событие.
Видно, сколько раз сотрудник работал с документом, какая утечка памяти происходит.

Не верю, что ЦУП на рисунке работал в режиме мониторинга 23 дня.
19. triviumfan 14 17.03.20 15:40 Сейчас в теме
(16) Похоже, что Вы ни разу ЦУП не открывали.
А я не верю, что вы найдете утечку памяти, анализируя гигабайты логов. По мне это бессмысленное занятие. Причин утечки столько, что заниматься этим практически бессмысленно - искать иголку в стоге сена. Видимо у вас нагрузка низкая, раз вы маетесь этим:)
13. tech_supp19 17.03.20 08:57 Сейчас в теме
(11) Меня тоже интересует о каких готовых продуктах вы пишите?
14. vasilev2015 1693 17.03.20 09:31 Сейчас в теме
(11) Когда я увидел bash первый раз - он показался мне анахронизмом.
потом я сообразил, что это no-sql запросы с построением предварительного
плана запроса и управлением памятью. Нам такого не написать.
17. tormozit 5753 17.03.20 15:20 Сейчас в теме
Наверное в статье стоит сделать акцент на скорости однократного решения задачи предложенным методом. Врядли можно этот метод достаточно удобным и понятным большинству разработчиков. А вот по скорости однократного решения он конечно будет лидером. Поэтому его оправдано будет применять на очень больших логах или при однократном выполнении. Кстати частое выполнение этого запроса снизит его преимущества по скорости по сравнению с другими методами, хранящими курсоры чтения файлов логов (парсер Гилева, парсер Tormozitа).
18. vasilev2015 1693 17.03.20 15:29 Сейчас в теме
(17) Здравствуйте, Сергей !

Многие мои знакомые пользуются Вашим парсером :)) и отзываются положительно.

Но в скриптах тоже есть свой смысл, поэтому хочется привести их в порядок.

Написать один большой и правильный :))
20. Yashazz 3115 17.03.20 15:43 Сейчас в теме
А причём тут "куда инвестировать в кризис"? Это каким боком к теме?..
21. vasilev2015 1693 17.03.20 15:45 Сейчас в теме
(20) Здравствуйте, Яков !

там все очень логично. Призыв плюнуть на кризис и учиться.
Оставьте свое сообщение

См. также

Анализ взаимоблокировок

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Технологический журнал

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

20.03.2020    1824    vasilev2015    21       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

Многопоточность

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Производительность и оптимизация (HighLoad)

Увеличиваем скорость загрузки данных в 20 раз. Как следует использовать многопоточность и готовый модуль для внедрения.

18.03.2020    2464    kaliuzhnyi    41       

Планы запросов - это просто! Разбор оптимизаций запросов PostgreSQL на живых примерах

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Проблема быстродействия 1С напрямую зависит от производительности запросов. Но как понять механику работы СУБД с помощью плана запроса? Андрей Овсянкин и Никита Грызлов на конференции Infostart Event 2019 Inception подробно рассмотрели алгоритм работы с планом запроса СУБД PostgreSQL, полученным из технологического журнала, и рассказали, на что обратить внимание, чтобы оптимизировать работу системы.

17.02.2020    5264    Evil Beaver    13       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Оптимизатор запросов. Вторая часть

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

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

23.01.2020    3981    darkdan77    59       

Улучшаем производительность 1С. Рекомендации

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

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

23.01.2020    5277    Kaval88    26       

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

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

Мониторим производительность с помощью 1С RAS

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика Производительность и оптимизация (HighLoad)

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

19.12.2019    6429    ivanov660    14       

Весёлые картинки о работе Performance Monitor на Windows Server 2016 Std по мотивам расследования потери производительности на базе 1С

Статья Системный администратор Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная публикация посвящена одной особенности Performance Monitor на Windows Server 2016 Std. Как понимать графики Performance Monitor на Windows Server 2016 Std при расследовании проблем в работе 1С.

22.10.2019    4620    EugeneSemyonov    11       

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

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

Мониторинг высоконагруженной системы

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Высоконагруженной системе (более 8000 клиентских сессий) мониторинг необходим. Про опыт использования инструментов для мониторинга – самописной системы информирования, написанной на C#, и конфигурации «Центр контроля качества» в связке с системой отображения данных Grafana, на конференции Infostart Event 2018 Education рассказал Олег Репников.

13.09.2019    6562    Repich    5       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С Zabbix

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019    13491    Sloth    11       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

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

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.

31.08.2019    7055    176    YPermitin    7       

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

Статья Программист Нет файла v8 Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто программисты и 1С-ники сталкиваются с совершенно необъяснимыми на первый взгляд проблемами. Но это потому, что их внимание направлено только на один сегмент системы, а не на всю систему полностью. О том, почему нужно стараться смотреть на ситуацию комплексно, рассказал специалист по производительности компании SOFTPOINT Александр Денисов.

19.07.2019    6751    Филин    12       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Бухгалтерия” и прочих прикладных решений, в которых реализованы соответствующие механизмы для автоматизации бухгалтерских задач.

4900 рублей

Ловля блокировок на связке "Microsoft SQL server - 1С"

Статья Системный администратор Программист Нет файла v8 v8::blocking MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Материал относится к базам данных на связке «1С - MS SQL Server». Один из способов отлова блокировок в бд 1С . Переход к управляемым блокировкам через режим "Автоматический и управляемый".

16.07.2019    6790    fhqhelp    0       

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка

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

02.07.2019    8669    igordynets    119       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Ускорение чтения правил обмена в УПП 1.3 в 20 раз!

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Способ оптимизации чтения правил обмена конвертации данных. Может понадобиться при большом размере правил и высокой периодичности обмена.

27.06.2019    7587    YPermitin    16       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

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

40000 рублей

Хотите снизить нагрузку на процессор сервера в 2 раза?

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

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

27.06.2019    6993    Дмитрий74Чел    6       

Непридуманные истории по оптимизации. История 1

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Первая статья из планируемого цикла об оптимизации приложений на базе 1С. Без теории. Одна практика.

13.06.2019    10255    Repich    117       

Сдача регламентированной отчетности из программ 1С Промо

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

от 1500 руб.

Оптимизация: неэффективные запросы

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Разработка

В большинстве случаев основной причиной медленной работы системы при многопользовательском режиме работы является блокировка данных СУБД (говорим про клиент-серверную версию). Блокировка - это не есть хорошо или плохо, это жизненно необходимая вещь при построении прикладной логики работы системы. Но блокировки таблиц, записей могут быть как вполне законными, так и далеко не всегда оправданными в каждой конкретной ситуации. Одной из самых распространенных причин неоптимальной блокировки ресурсов является некорректное написание запросов.

13.06.2019    4561    slayer-ekb    10       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Производительность и оптимизация (HighLoad)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    18379    dmurk    144       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Статистика базы данных Производительность и оптимизация (HighLoad)

Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.

28.05.2019    13774    ivanov660    9       

Не думать о секундах свысока...

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Несколько примеров оптимизации типовой конфигурации УТ11. Описанные приемы подходят для многих других конфигураций.

21.05.2019    6556    vasilev2015    21       

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

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

Альтернативная стратегия управления блокировками

Статья Программист Архив с данными v8 v8::blocking 1cv8.cf Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная публикация освещает одну из альтернативных стратегий блокирования данных на уровне MS SQL Server, которая недоступна средствами 1С, но может быть весьма полезной. Разбирается практический пример.

20.05.2019    5780    zhichkin    15       

Как работают управляемые блокировки

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

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

29.04.2019    17914    comol    198