Ок, Лариса! Мониторинг проблем производительности с применением нейронных сетей

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

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

Проводить мониторинг производительности вручную, выявляя закономерности в куче графиков и десятках таблиц, довольно сложно. Но это не значит, что разбираться с инцидентами нужно только после жалоб от пользователей. О том, как обучить нейронную сеть и заставить ее оповещать о проблемах, на конференции Infostart Event 2019 Inception рассказал начальник сектора разработки ООО «Группа Полипластик» Владимир Крючков.

Как вы знаете, сейчас в тренде искусственный интеллект, нейронные сети, использование различных вероятностных и логических подходов. И я попытаюсь сегодня рассказать о том, как это можно применить на практике для 1С.

 

 

Также существует определенный тренд создания программных помощников. Мы тоже решили создать своего помощника и назвать его Лариса. Она не такая мощная, как Siri или Алиса от Яндекса, но тоже имеет определенный потенциал и возможности. И сегодня я хочу рассказать про то, как она мыслит, как она думает, как видит информацию, как обрабатывает и как принимает решения.

 

Практические задачи, которые мы хотели решать с помощью нейросети

 

 

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

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

Одна из идей, которую я считаю оптимальной – это получать информацию о том, что сейчас происходит в системе буквально в двух словах. К примеру – «Все хорошо» либо «Свистать всех наверх, облачный сервер 1С упал, или отвалился интернет провайдер».

Самый оптимальный вариант для решения этой задачи – это использование нейронных сетей.

 

Что такое искусственная нейронная сеть?

 

 

Когда мы с вами говорим про нейронные сети, то обычно подразумеваем искусственную нейронную сеть.

Искусственная нейронная сеть – это упрощение биологической нейронной сети, упрощение структуры мозга. Не обязательно мозга человека, может быть, животного (крысы, мыши).

Основное звено нейронной сети – это нейрон. Он является кирпичиком, из которого выстраивается данная сложная структура.

Нейронная сеть обрабатывает сигналы:

  •  на вход (один или множество входов) нейрона подается сигнал,
  •  дальше происходит его обработка – она может быть сложная или простая;
  •  и этот сигнал передается дальше.

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

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

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

 

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

 

 

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

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

  • дендриты;
  • тело;
  • и аксон.

Информация поступает на дендриты, дальше она через тело обрабатывается, и сигнал передается (или не передается) на аксон.

Соответственно, в упрощении нейрона все эти компоненты присутствуют:

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

 

Нейронные сети в цифрах

 

 

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

Относительно недавно было установлено, что в человеческом мозге порядка 86 млрд нейронов. И сейчас один из самых мощных нейрокомпьютеров содержит  порядка 160 миллиардов. Количественный критерий достигнут.

 

 

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

Как вы думаете, что произойдет, когда нейронная сеть достигнет уровня соответствующего уровню человека?

 

Самоорганизующиеся нейронные сети Кохонена (SOM)

 

 

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

 

 

Самоорганизующиеся нейронные сети  (SOM)– они обучаются без учителя.

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

У данного класса сетей довольно большие преимущества для поставленной выше задачи:

  • Используется простой алгоритм, это фактически однослойная нейронная сеть;
  • С помощью этой сети можно обрабатывать информацию без нормирования (нормирование – это стандартная процедура, когда вы переводите все доступные вам информационные сигналы к единой шкале значений от 0 до 1).
  • На вход сети вы можете подать любую информацию для анализа. Например, количество сотрудников или размер выручки (у одного клиента 300 тысяч долларов выручки и 75 сотрудников, у другого 85) – вы  подаете на вход сети эту информацию, и она все это понимает и обрабатывает.

 

 

Сеть устроена просто:

  • У вас есть определенный набор входных сигналов – той информации, которую вы хотите проанализировать.
  • Каждый вход соединяется с нейроном, а все нейроны выстраиваются на прямоугольной сетке.
  • И после обучения появляется некоторый рисунок разбиения на зоны. Эти зоны позволяют разбивать/разделять входящие данные на кластеры.

 

 

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

 

 

В нашем случае это:

  • рабочее состояние системы,
  • либо состояние, характеризующееся конкретным сбоем:
    • перегрузка, которая возникла,
    • состояние, когда произошел обрыв сети и т.д.

 

 

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

Потом, в результате исправления она вернется в нормальное состояние, потом может еще что-то произойти. И тем самым мы можем увидеть эту динамику.

 

 

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

Например, смотрим задачу, когда есть контрагенты, и для каждого из них отслеживается объем либо количество закупок. И в рамках этого разбиения у нас получаются определенные зоны – например, стабильные и нестабильные покупатели. Я здесь выделил две зоны, а их может быть больше.

Дальше, проводя анализ и кластеризацию в различные моменты времени, вы можете отследить, как контрагенты из одной зоны могут мигрировать в другую зону, и в результате провести какой-то анализ.

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

 

Как Лариса думает?

 

 

Итак, как в результате Лариса у нас думает?

Есть регламентное задание, которое запускает некоторую обработку:

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

 

 

В результате мы с вами имеем довольно простое суждение о состоянии нашей системы. Здесь приведена картинка – это динамический список в базе 1С. Цветами выделены различные области:

  • красным – проблемная зона;
  • розовым – критическая;
  • без цвета – это нормальная работоспособная система.

 

Нейронная сеть в 1С

 

 

Вы скажете, что использование нейронных сетей на 1С – это тяжело и нереально, однако на практике некоторые задачи решить на ней возможно.

  • Для нашего случая обработка входной информации по готовой нейронной сети на 1С выполняется очень быстро.
  • Основная проблема для 1С – это процесс обучения. Его лучше вынести на специализированные инструменты, такие, как Tensor Flow или написать какой-нибудь собственный API или обработку. 

 

 

Вот пример кода, который выполняет поиск решения нейронной сетью. Он в себе содержит не более 100 строчек кода и довольно прост.

 

 

Другой вопрос, который всегда возникает – как обучить нейронную сеть?

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

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

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

 

Где взять данные для обучения?

 

 

Другая часть задачи – это получение данных, на которых вы будете ее обучать.

  • Если вы ставите перед собой задачу обработки изображений, в интернете существуют довольно большие базы, которые имеют сотни тысяч изображений, разбитые на категории и т.д. Но у нас стоит задача мониторинга, в нашем случае получить такую выборку из интернета проблематично. Поэтому здесь мы используем информацию из Zabbix, если у вас есть такая система хранения, либо из того же самого ЦКК.
  • Второй вариант – провести моделирование, но это довольно сложный и тяжелый процесс. Поэтому останавливаемся на первом варианте.
  • После того, как у вас есть первичный набор данных, и проведено некоторое обучение, вы дальше можете в процессе работы использовать поступающие новые данные и новые ситуации, которые у вас появляются.

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

 

 

На слайде вы видите первую ситуацию, с которой мы столкнулись в процессе обучения. Здесь приведены примеры нагрузки на сервер 1С:

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

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

Соответственно, на нем можно выделить две области:

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

 

 

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

  • одна из групп является аварийной и характеризует проблемную ситуацию;
  • а другая – является нормальной, работоспособной системой.

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

 

 

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

Соответственно, количество анализируемой информации увеличилось – мы стали обрабатывать большее число критических случаев.

 

 

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

Здесь произошла ситуация, когда у одного из провайдеров в оборудовании произошло зависание системы, и она постепенно начала выкидывать клиентов из базы. Часть пользователей продолжала работать (1С показывала, что они в активном состоянии, что-то делают), но постепенно они тоже «отмирали».

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

 

Неизвестные режимы работы. Аномалии

 

 

Когда вы начали обучать своего помощника (допустим, с небольшого набора данных – вы знаете, что у вас такое состояние работоспособное). Возникает вопрос, как понять и отловить другие неизвестные ситуации? Для этого необходимо ввести некоторое понятие, как аномалии – отклонения от нормы.

 

 

Вы обрисовываете некоторые границы, в рамках которых поведение считается допустимым. И при превышении данного состояния/поведения наш помощник Лариса информирует о том, что что-то пошло не так, «я такой ситуации не знаю». И он будет вас информировать об этом, чтобы вы приняли решение по реагированию на эту новую ситуацию.

 

 

Например, на графике приведено состояние системы, где у вас есть зона нормальной работы – нагрузка порядка 50-60%, и произошел скачок очереди к процессору совместно с повышением загрузки процессора до 90-100%. Это является отклонением, о чем Лариса нам успешно сообщила.

 

 

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

Вместо этого обычно используют помощника для формирования сообщений о состоянии системы (система оповещения). Ведь для того того, чтобы Лариса могла самостоятельно принять какое-то решение, требуется некоторый свод правил. Таблицу анализа состояния (с помощью того же APDEX) – о том что у нас изменилось положение пользователей в худшую сторону, не изменилось, либо стало лучше. А это довольно сложно реализовать, настроить и соответственно не оправдано на текущий момент.

 

Организация оповещений

 

 

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

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

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

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

 

Структура решения

 

 

Итак, структурно данная схема довольно проста.

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

 

Проблемы нейронных сетей

 

 

Однако у самих нейронных сетей есть ряд проблем.

 

 

Конечно же, одна из проблем – это вопрос обучения. Замечательный пример – это диван леопардовой расцветки.

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

 

 

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

 

 

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

 

 

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

 

Выводы

 

 

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

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

 

 

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

У нейронных сетей, как я говорил, есть определенная возможность – она видит закономерности там, где мы не можем увидеть. Вы в голове не можете удержать 20-30-40-50 параметров для тысяч контрагентов и понять, чем контрагенты схожи между собой, а чем отличаются и почему.

 

Где найти проект?

Проект у нас открытый, выложен на GitHub https://github.com/Polyplastic/1c-parsing-tech-log . Если есть желание, можете присоединяться.

 

Вопросы:

  • Я понял, что на первый слой вашей нейросети подаются данные из Zabbix или других систем мониторинга. Если меняется количество входных параметров, сеть приходится каждый раз переобучать? Или вне зависимости от того, какие системы мониторинга мы к ней подключаем, она продолжает так же хорошо определять аномальные ситуации?
  • Конечно, ей требуется переобучение, либо она будет игнорировать поданные вами данные.
  • А переобучение у вас происходит в каком-то другом модуле, не в 1С-ном?
  • Если мы берем сеть Кохонена, но ее можно переобучить и в рамках 1С. Конечно же, это будет немного долго. Но если вы возьмете Tensor Flow, то там обучение производится через аппаратное ускорение GPU – это буквально минуты. А на 1С мы обучали порядка часа.
  • А почему вы выбрали такую простую структуру нейронной сети? Почему не используете сверточные, рекурентные?
  • Нейросети такого типа широко применяются для решения задач кластеризации. У вас есть наборы данных. И есть некоторое фазовое пространство, которое состоит из N-координат (30-40 координат). И в этом пространстве у вас есть наборы областей, в которых находится система. Она занимает не все пространство, а располагается шариками. Соответственно, данный подход удобно, просто и быстро обрабатывает эту сеть. Относительно использования других типов сетей – здесь есть сложности. Чем больше промежуточных слоев, тем тяжелее ее обучить, тем сложнее вопрос переобучения. И в итоге получается не столь эффективно.
  • А можете привести качественные показатели – сколько у вас правильных срабатываний, сколько ложных срабатываний в процентном отношении
  • У нас есть два варианта использования – сеть на нечеткой логике, и искусственная нейронная сеть. Нейронная сеть – порядка 90% срабатываний великолепно отрабатывает. А из-за влияния каких-то других параметров, которые мы не учли – мы можем неправильно интерпретировать, в результате мы просто заводим новые данные, которые позволяют скорректировать данное отклонение, соответственно, она будет лучше ловить. Все зависит еще и от настройки – сколько у вас данных и какого они качества.

 

****************

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Выбрать мероприятие

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user1089020 27.04.20 17:17 Сейчас в теме
2. protexprotex 129 28.04.20 08:23 Сейчас в теме
Ну в том виде, в котором сейчас существуют нейронные сети - качество мышления будет всегда на уровне микроба. Даже не таракана. Количественно можно в сеть хоть 300 миллиардов нейронов, но от этого качественный скачок не произойдет. Нужны качественно новые алгоритмы обучения сети. Т.к. при росте глубины сети возникает проблема синхронизации слоев сети между собой. Это решается путем остаточного обучения, но скорость сходимости оставляет желать лучшего. Чтобы обучить такую сеть даже на супермощных кластерах видеокарт нужно время - недели. А еще нужно выбирать оптимальную структуру сети - т.е. нужно запускать обучение несколько раз. В мозге все происходит по другому (пока точно не знает никто как). Т.е. об online обучении таких сетей пока и речи нет. Да и то - только распознавание кошек, собачек, голоса. А вот именно чтобы сделать online систему реагирующую на внешний мир хотя бы как таракан - тут бедааа... Но это не умаляет нейронные сети как аппроксиматор функции - и применение их в решении (например) указанным автором. Т.е. нейроныне сети - это не панацея (счас СМИ раздули из них чуть не аналог человеческого мозга (да и ученые специально подогревают интерес к ним чтобы финансирование получить)), а просто очередной инструмент решения определенного круга задач. Мне, например более близки алгоритмы бустинга - они более стабильны к переобучению.
3. wowik 837 28.04.20 12:47 Сейчас в теме
+1 за старания, картинки, изложение материала!
4. утюгчеловек 29 29.04.20 14:28 Сейчас в теме
Я пока не весь репозиторий вычитал. Интересно, но не понятно:

1. Есть ли вообще в индустрии ИТ кейсы применения карты кохонена для задачи мультиклассовой классификации? Я про карты Кохонена уже лет 8 точно не слышал. Кажется, что это древность покрытая пылью)

2. "90% великолепных срабатываний" - как измеряли и какая это метрика? Какой итоговый F1 для каждого класса (work/high/critical/overload)?

3. Было ли сравнение и по каким метрикам с базовыми решениями (простыми правилами на условиях, другими методами классификации - кажется в 1С есть дерево решений и К средних)

В публикации очень много воды. Зачем мне знать про аксоны и то как видит сеть (тем более что однослойная Лариса точно так не видит)?
troubleshooter; Terve!R; +2 Ответить
5. Terve!R 04.05.20 11:10 Сейчас в теме
Прочитать такую статью - лучший способ почувствовать себя тупой амебой)

Тема очень интересная, но и кажется невероятно сложной. Недаром даже Big Data в отельную профессию выделяют, а тут ИИ на стыке различных знаний и технологий. Даже не знаю, как найти время все это изучить и осознать, и получится ли)
Оставьте свое сообщение

См. также

Диспетчер Хранилища Запросов в SQL Server 2016+ (он же Query Store) Промо

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

Если вы используете SQL Server 2016 или более позднюю версию, то у вас есть возможность использовать встроенную систему мониторинга, которая позволяет отслеживать самые базовые метрики выполняемых запросов и статистику ожиданий (потребления ресурсов). Эта информация позволяет быстро получить самые ресурсоемкие запросы с их планами и агрегированной статистикой выполнения.

26.04.2019    12787    Aleksey.Bochkov    7    

Поиск причин блокировок СУБД

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

Расследование блокировок СУБД.

28.04.2021    3187    vasilev2015    11    

Тонкости эксплуатации, плюшки и особенности Postgres Pro Enterprise

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

В ходе онлайн-встречи INFOSTART MEETUP Novosibirsk Руководитель ИТ из компании ИнфоСофт Антон Дорошкевич поделился с коллегами тонкостями и опытом работы с Postgresql для 1С. 

22.04.2021    1114    a.doroshkevich    2    

Решение нестандартных проблем производительности на реальных примерах

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

На екатеринбургском Infostart Meetup выступил с докладом архитектор ИС центра разработки ФТО Александр Криулин. Он поделился с коллегами кейсами нестандартных проблем производительности и рассказал о способах их решения.

24.03.2021    3174    AlexKriulin    37    

Опыт миграции из собственного датацентра в облако AWS Промо

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

Хотя данная публикация и не имеет прямого отношения к 1С, она может быть интересна тем, кто занимается крупными базами данных на MS SQL Server. Описывается опыт миграции баз данных в облако AWS в компании glassdoor.com, где я занимался этим проектом. Это первый драфт текста, получившийся довольно скомканным - в процессе буду дополнять.

29.07.2018    11953    Aleksey.Bochkov    9    

Рецепты приготовления технологического журнала

Технологический журнал Бесплатно (free)

Понимание принципов событий технологического журнала позволяет решать многие проблемы производительности и стабильности работы платформы 1С. О том, как взаимосвязаны события технологического журнала и как с их помощью можно анализировать серверные вызовы 1С, на INFOSTART MEETUP Ekaterinburg.Online рассказал программист 1С из компании ДНС-Ритейл Максим Старков.

22.03.2021    2333    max_st    5    

Анализ полного технологического журнала, 100ГБ+

Технологический журнал Бесплатно (free)

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

18.03.2021    2000    Axel2009    17    

Анализ производительности: Трассировка + Логи системного монитора

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

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

16.03.2021    608    AlekseyBelyy    8    

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте Промо

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

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    31444    MrWonder    42    

Соединение вложенными циклами

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

Nested loops и отсутствующие индексы.

12.03.2021    2704    vasilev2015    21    

Негативное влияние большого количества ролей на производительность 1С

Производительность и оптимизация (HighLoad) Роли и права 8.3.14 ERP2 Россия Бесплатно (free)

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

10.03.2021    2151    aviconsult    21    

"Крест ИТ", или как жить, если у вас в ИТ ландшафте выросло Кудрово/Мурино/Девяткино

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

Добавлять новую функциональность в ИТ-ландшафт, базирующийся на тяжелых «монолитах», с каждым годом становится все сложнее. О способах преодоления проблем больших и сложных приложений на INFOSTART MEETUP Saint Petersburg.Online рассказал архитектор компании BIA Technologies Марат Шайхутдинов.

09.03.2021    830    MSChe    3    

Опыт оптимизации и контроля производительности в БД с 3000 пользователей Промо

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

Данная статья написана по материалам доклада, прочитанного на Конференции Инфостарта IE 2014 29-31 октября 2014 года. Меня зовут Сергей, являюсь руководителем отдела оптимизации и производительности систем в компании "Деловые линии". Цель этого доклада – поделиться информацией о нашем опыте работы с большой базой на платформе 1С, с чем пришлось столкнуться, как удалось обеспечить работоспособность. Уверен, что вам будет интересно, так как подобной информацией мало кто делится, да и про само существование таких систем их владельцы стараются не рассказывать, максимум про это «краем глаза» упоминают участвовавшие в проекте вендоры. **update от 04.03.2016 по вопросам из комментариев

05.08.2015    65776    Sergey.Noskov    119    

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

Zabbix Бесплатно (free)

Мониторинг бизнес-показателей в базе 1С помогает руководителям оперативно принимать решения, реагировать на сбои, видеть реальное состояние каждого из этапов бизнес-процесса. О том, как использовать Zabbix для построения дашбордов и мониторинга ключевых показателей бизнеса, на митапе Infostart Saint Petersburg.Online рассказал Алексей Орловский.

17.02.2021    4271    orlovskiy-a    0    

Highload-оптимизация 1С: теория и практика на примере консолидированной отчетности группы "Магнит" и розничной аптечной сети "Магнит"

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

Тема оптимизации 1С на больших данных бесконечная и всеобъемлющая, поскольку на производительность влияет целый ряд факторов – количество пользователей, данных, транзакций, неоптимальные запросы и т.д. Об инструментах для локализации проблем производительности и практических кейсах оптимизации рассказал Алексей Олейник, руководитель сектора автоматизации отчетности МСФО компании «Информационные технологии Магнит».

11.01.2021    22545    user662404_itlexusss    14    

Анализ блокировок СУБД: таблица изменений плана обмена 1С

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

Практический пример анализа типичной проблемы ожидания на блокировках СУБД, возникающих при использовании планов обмена 1С. Сервер СУБД: Microsoft SQL Server.

18.12.2020    2265    zhichkin    6    

Долго открывается конфигуратор Промо

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

В ОС Windows Server 2012 бывает полезно выключать службу Dynamic Fair Share Scheduling (DFSS позволяет балансировать и распределять ресурсы между пользователями), чтобы повысить производительность 1С:Предприятие 8 в ряде случаев.

22.04.2015    42529    Gilev.Vyacheslav    1    

Контекст всегда важен. История проблем производительности

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

Небольшая история о проблемах производительности из-за нехватки процессорных мощностей. А также описание основных показателей работы CPU.

26.11.2020    5854    YPermitin    21    

Анализ проблем производительности по динамике мониторинга RAS 1C

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

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

07.10.2020    4108    ivanov660    12    

Ускорение медленной работы строк в 1С на примере 1С:Документооборот КОРП

Производительность и оптимизация (HighLoad) v8 ДО Бесплатно (free)

Если у вас в 1С:Документооборот КОРП 2.1.11.5 (часть более старых и новых конфигураций): 1) Долго отправляется почта в формате HTML; 2) Медленно открывается документы внутренние / входящие / исходящие; 3) Тормозит область просмотра или открытие задач. Тогда вам сюда.

02.10.2020    4756    Nykyanen    16    

Повышенная нагрузка на диски сервера баз данных SQL Server Промо

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

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

15.03.2015    43680    gallam99    17    

Тест скорости работы мобильной платформы 1С

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

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

14.09.2020    1606    capitan    25    

Описание почти всех событий технологического журнала

Технологический журнал v8 Бесплатно (free)

Краткое описание событий технологического журнала с примерами. Все для быстрого старта.

19.08.2020    17792    YPermitin    30    

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

Технологический журнал v8 1cv8.cf Бесплатно (free)

Корректируем классификацию ошибок ТЖ в процессе работы для конфигурации мониторинг производительности

17.08.2020    732    ivanov660    0    

Как можно "положить" SQL сервер с помощью обычной консоли запросов 1С Промо

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

Описано как из 1С, с помощью безобидной на первый взгляд обработки, можно сделать неработоспособным SQL сервер. Предложены меры, позволяющие избежать этого.

22.01.2014    68409    yuraos    112    

SQL для 1С: пишем правильно, красиво, сложно

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

Многие программисты боятся работать с Null, считая, что от этих данных в запросах нужно избавляться. О том, как с помощью Null-полей в запросе решать востребованные в учете задачи по выборке данных, на конференции Infostart Event 2019 Inception рассказал ведущий разработчик ГК WiseAdvice Дмитрий Дудин.

14.08.2020    12611    dmurk    33    

Нестандартные блокировки при работе с OLAP-нагрузкой

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

Если выполнение отчета мешает работе других пользователей и провоцирует блокировки, даже с учетом «грязного чтения» – ситуация кажется парадоксальной. О том, как расследовать такие проблемы, на конференции Infostart Event 2019 Inception рассказали ведущий программист торгового дома «Петрович» Станислав Щербаков и специалист по производительности компании «СофтПоинт» Александр Денисов.

20.07.2020    2417    Филин    7    

Автоматическая классификация ошибок технологического журнала

Технологический журнал v8 1cv8.cf Бесплатно (free)

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

25.06.2020    3453    ivanov660    13    

Ускоряем списание партий УПП 1.2 / 1.3 / УТ 10.3 Промо

Производительность и оптимизация (HighLoad) v8 УТ10 УПП1 Бесплатно (free)

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

21.06.2013    58448    Антон Ширяев    117    

Выбор процессора для 1С: конец споров или начало?

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

Периодически занимаясь исследованиями производительности я повидал много решений. Делюсь некоторыми выводами на основании теста Гилева и собственных мыслей.

25.05.2020    20802    starik-2005    233    

Выявляем и оптимизируем ресурсоемкие запросы 1С:Предприятия

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

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

24.05.2020    9529    DataReducer    22    

[SQL Server] Использование trace flag 9592 для сжатия траффика в кластере AlwaysOn

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

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

18.05.2020    2469    Aleksey.Bochkov    4    

Сравнение скорости работы 1C+MSSQL и файлового варианта Промо

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

На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая? Затем обычно идет «флуд» на несколько десятков страниц. Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд. В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнения.

19.02.2013    57821    Gilev.Vyacheslav    46    

Учимся готовить кроликов с редиской: опыт применения Rabbit MQ и Redis в интеграционных проектах

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

При построении мощных производительных отказоустойчивых решений для интеграции во всем мире активно используются технологии обработки очередей сообщений с помощью брокера RabbitMQ и кэш-сервера Redis. О практическом опыте использования этих технологий при построении ИТ-ландшафта, включающего системы на 1С, на конференции Infostart Event 2019 Inception рассказал Сергей Наумов.

12.05.2020    7497    SergeyN    3    

Пример поиска ошибок в технологическом журнале

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

Примеры bash - скриптов для поиска ошибок в технологическом журнале.

23.04.2020    3528    vasilev2015    7    

Фреймворк "Мониторинг производительности". Руководство пользователя

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

Описание и руководство "Мониторинг производительности": краткое описание конфигурации, сборник из статей, примеров - собрано в одном файле.

21.04.2020    4313    ivanov660    3    

Параллельные вычисления в 1С 8 Промо

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

Решение позволяет ускорять выполнение запросов в 1С 8 в отчетах путем их параллельного выполнения в разных потоках.

11.02.2013    32727    gallam99    19    

Эти занимательные временные таблицы

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 Бесплатно (free)

Кое-что интересное о временных таблицах и работе платформы 1С с ними.

06.04.2020    14141    YPermitin    0    

Оптимизация запросов 1С посредством индексации временных таблиц. Миф? Тестируем, смотрим, считаем

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

Появилось свободное время, решил проверить на работе индексацию таблиц. Решил поделиться с Вами результатами исследования. Давайте порассуждаем на эту тему? Часто ли вы пользуетесь индексацией в запросах? Платформа 8.3.16.1224

03.04.2020    6609    feva    15    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    14898    informa1555    35    

Ubuntu vs CentOS vs Win2k8 vs Debian: производительность PostgreSQL Промо

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

Хотя интернет уже переполнен статьями о "правильной" настройке связки PostgreSQL и 1C 8.2, для подводных камней всегда остается место. При сравнении производительности СУБД PostgreSQL на разных ОС, показатели различаются в разы. Самую большую обиду принесла любимая Ubuntu (человечность). После долгих дней и ночей проведенных за консолью этой ОС, она разочаровала окончательно. Тормоза PostgreSQL в Ubuntu Server. Что с ними делать? Сколько раз можно наступать на грабли?

03.11.2012    45011    madmpro    32    

Многострочный контекст событий

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

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

31.03.2020    3539    vasilev2015    11    

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

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

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

20.03.2020    6137    vasilev2015    27    

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

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

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

18.03.2020    8095    kaliuzhnyi    44    

Улучшение пооперационного планирования в 1С:ERP 2.4 внешними средствами

Математика и алгоритмы Производительность и оптимизация (HighLoad) Бесплатно (free)

Задача построения оптимального производственного расписания требует сравнения тысяч и десятков тысяч вариантов. Выполнять такие вычисления средствами платформы 1С Предприятие нецелесообразно. Как реализовать пооперационное планирование с использованием генетических алгоритмов и параллельных вычислений в докладе на конференции Infostart Event 2019 Inception рассказал генеральный директор компании «ИНТЕХ» Сергей Сафаров.

02.03.2020    6285    ildarovich    8    

Делаем быстрее POSTGRESQL COUNT (*)

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

Предлагаю вашему вниманию перевод статьи Laurenz Albe "POSTGRESQL COUNT(*) MADE FAST". Оригинал доступен по ссылке https://www.cybertec-postgresql.com/en/postgresql-count-made-fast/

28.02.2020    3754    w.r.    1    

Простое обнаружение проблем производительности в PostgreSQL

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

Предлагаю вашему вниманию перевод статьи Hans-Jürgen Schönig "DETECTING PERFORMANCE PROBLEMS EASILY IN POSTGRESQL". Оригинал доступен по ссылке https://www.cybertec-postgresql.com/en/detecting-performance-problems-easily-in-postgresql/ Актуально для всех 1С ников, перешедших с MS SQL на Postgres

20.02.2020    6432    w.r.    4    

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

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

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

17.02.2020    12388    Evil Beaver    13    

Держи данные в тепле, транзакции в холоде, а VACUUM в голоде

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

Чтобы база работала быстро – в ней нужен порядок. Это касается как MS SQL, так и PostgreSQL. Как настроить базу, чтобы в ней поддерживался порядок, какие регламентные операции нужно проводить, чтобы данные чистились, индексы перестраивались и оперативная память высвобождалась в своём выступлении на конференции Infostart Event 2019 Inception поделился руководитель ИТ в компании «ИнфоСофт» Антон Дорошкевич. 

07.02.2020    16050    a.doroshkevich    22