Центр управления производительностью 1с инструкция

Центр управления производительностью

«Центр управления производительностью» (ЦУП) — инструмент мониторинга и анализа производительности клиент-серверных информационных систем на платформе 1С:Предприятие 8. ЦУП предназначен для оценки производительности системы, сбора подробной технической информации об имеющихся «узких местах» и анализа этой информации с целью дальнейшей оптимизации.

Решаемые задачи

Основные задачи, которые могут быть решены при помощи ЦУП:

  • Анализ и интегральная оценка текущей производительности работающей многопользовательской информационной системы:
    • Как работает система?
    • Имеются ли проблемы производительности?
    • Можно ли повысить производительность?
  • Сбор и хранение информации о динамике производительности системы:
    • Как менялась производительность системы с течением времени?
    • Как менялась производительность системы при внесении каких-либо изменений?
  • Поиск и анализ «узких мест» в коде конфигурации. Получение детальной технической информации обо всех проблемах производительности, имеющихся в системе с целью дальнейшей оптимизации:
    • Какие проблемы производительности имеются в системе и насколько они серьезны?
    • Какие проблемы следует решать в первую очередь?
    • В чем конкретно заключается каждая проблема?
    • Какие объекты метаданных и строки кода конфигурации следует оптимизировать для того, чтобы решить данную проблему?
  • Регламентный мониторинг производительности системы с автоматическим контролем значений показателей производительности и реакцией на их изменения.

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

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

Основные возможности

Основные возможности ЦУП:

Мониторинг технологических показателей производительности работающей клиент-серверной системы:

  • оценка производительности системы в реальном времени;
  • запись и хранение исторической информации о производительности системы;
  • анализ сохраненных данных за произвольный период времени.

Анализ узких мест конфигурации:

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

Создание и редактирование сценариев работы ЦУП:

  • гибкий конструктор сценариев, позволяющий настраивать существующие сценарии работы ЦУП или создавать свои собственные.

Основные принципы работы

«Центр управления производительностью» представляет собой независимую информационную базу 1С:Предприятия, которая может подключаться к кластеру серверов 1С:Предприятия для исследования производительности.

Для работы ЦУП не требуется внесения каких-либо изменений в код исследуемой информационной базы либо в состав компонент сервера 1С:Предприятия исследуемой базы.

Центр управления производительностью

Начало работы

«Центр управления производительностью» предназначен для сбора и последующего анализа технологических показателей производительности клиент-серверной системы.
Технологические показатели можно разделить на две основные группы: 

  • оперативные показатели;
  • аналитические показатели.

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

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

Выбор сценария работы

В комплект поставки текущей версии ЦУП включены следующие сценарии:

  • «Мониторинг». Мониторинг производительности системы в режиме рального времени:
    • подключение к информационной базе в режиме он-лайн;
    • мониторинг производительности системы в режиме реального времени;
    • запись показателей производительности для дальнейшего анализа (включается вручную).
  • «Просмотр». Просмотр сохраненных результатов мониторинга производительности системы.
    • просмотр исторической информации по всем записанным показателям производительности системы за любой период в режиме офф-лайн;
    • анализ «узких мест» информационной системы с целью ее оптимизации;

Кроме того, пользователь может создавать собственные сценарии работы ЦУП, либо редактировать существующие.

Выбор информационной базы

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

Мониторинг производительности системы

В режиме мониторинга эксперт может анализировать текущую динамику показателей производительности в режиме реального времени.

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

Центр управления производительностью

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

Показатели производительности

Центр управление производительностью собирает информацию по следующим основным группам показателей:

  • работа запросов к СУБД;
  • серверные вызовы;
  • ожидания на блокировках данных;
  • количество взаимоблокировок;
  • количество таймаутов;
  • произвольные счетчики ОС.

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

В отдельную группу вынесены показатели, которые отражают качество работы системы. В отличие от показателей из предыдущих групп, которые являются количественными, показатели этой группы измеряются в процентах (от 0 до 100) и отражают, насколько хорошо или плохо работает система в том или ином ее аспекте.
Текущая версия ЦУП содержит один качественный показатель – проблемы с параллельностью работы.

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

  • Анализ запросов;
  • Анализ ожиданий на блокировках;
  • Анализ взаимоблокировок;
  • Анализ серверных вызовов;
  • Анализ длительных событий.

Сбор аналитической информации

При наличии в системе проблем производительности ЦУП автоматически соберет всю необходимую информацию, проанализирует ее и отобразит в виде иерархии «узких мест» системы — строк кода и объектов метаданных, являющихся источниками проблем. Затем эта информация может быть использована экспертом для оптимизации кода конфигурации и структуры метаданных.

Для решения этой задачи необходимо выбрать один или несколько показателей из группы «Анализ» и включить их запись. При использовании сценария «Регламентный мониторинг» выбор и запись соответствующих показателей будет выполнена ЦУП автоматически.

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

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

ВНИМАНИЕ! Включение записи аналитических показателей может привести к снижению производительности работы исследуемой базы. Но кроме варианта разбора анализа результатов мониторинга в текущей базе ЦУП существует также способ сохранения «сырых» данных результата для последующего разбора в другой информационной системе без анализа «сырых» данных.

Просмотр сохраненных данных

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

Центр управления производительностью

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

Центр управления производительностью

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

Задачи, решаемые при оптимизации системы

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

В системе может одновременно выполняться множество неоптимальных запросов, но не все они одинаково влияют на интегральную производительность системы. Один запрос может выполняться 1-2 раза в день, и даже если время его выполнения более 5 минут, не факт, что именно он является самой большой проблемой. Предположим, что есть другой запрос, который выполняется не более 2 секунд, но многократно — до нескольких тысяч раз в день — и при этом блокирует всех пользователей. В этом случае, решение первой проблемы практически никак не скажется на общей производительности системы, в то время как решение второй сразу же даст ощутимый прирост общей производительности системы.

Таким образом, для успешной оптимизации системы необходимо решить следующие задачи:

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

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

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

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

Все эти задачи автоматически решаются при сборе аналитической информации при помощи ЦУП.

Общий подход к анализу проблем в ЦУП

При сборе информации об узких местах в конфигурации ЦУП автоматически решает все три перечисленные выше задачи:

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

При сборе информации о проблемах, ЦУП «привязывает» каждую проблему к строкам конфигурации и объектам метаданных, которые являются ее источниками. При отображении проблем ЦУП заходит с другой стороны: показывает источники проблем, автоматически сортируя их по убыванию веса проблем, которые к ним относятся. Таким образом, эксперт получает полную информацию обо всех источниках проблем — узких местах в конфигурации системы.

Имеются две возможности оптимизировать систему: изменить код конфигурации (оптимизировать запрос и т. п.) либо изменить структуру метаданных конфигурации (добавить недостающий индекс и т. п.). Поэтому ЦУП отображает узкие места системы в двух независимых разрезах:

  • по коду конфигурации;
  • по объектам метаданных.

Затем эксперт анализирует узкие места, указанные ЦУП, в порядке убывания веса. Если в системе наблюдаются серьезные проблемы производительности, то узкие места, как правило, будут подчиняться правилу «20 на 80». То есть 20% всех узких мест системы, будут создавать 80% проблем производительности. Соответственно, эксперт будет иметь возможность быстро устранить основные проблемы и значительно поднять производительность системы за относительно короткое время.

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

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

  • Типичные причины неоптимальной работы запросов и методы оптимизации;
  • Типичные причины избыточных блокировок и методы оптимизации;
  • Анализ и устранение взаимоблокировок.

Анализ проблем в разрезе кода конфигурации

Дерево анализа данных о проблемах в разрезе кода конфигурации имеет следующий вид:

Центр управления производительностью

На первом уровне дерева представлены основные узкие места в коде конфигурации.

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

Дерево анализа данных о проблемах в разрезе структуры метаданных имеет следующий вид:

На первом уровне дерева представлены основные узкие места в разрезе объектов метаданных конфигурации.

Детальная информация по проблемам производительности

Большая часть проблем может быть решена путем анализа кода и структуры данных, без анализа подробной технической информации по проблеме. В некоторых случаях (например при анализе взаимоблокировок) бывает необходимо анализировать детальную информацию по проблеме. Эту информацию так же предоставляет ЦУП.

Детальная информация о медленных запросах

ЦУП предоставляет подробную техническую информацию обо всех проблемных (медленных) запросах, которые выполнялись в системе. Информация включает в себя:

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

Центр управления производительностью

  • полный текст запроса к СУБД на языке SQL;
  • полный текст запроса к СУБД на языке SQL с переводом таблиц и полей в термины метаданных 1С:Предприятия.

Центр управления производительностью

Подробная информация об ожиданиях на блокировках

ЦУП предоставляет подробную техническую информацию обо всех ожиданиях на блокировках данных, которые наблюдались в исследуемой системе. Информация включает в себя:

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

Центр управления производительностью

Подробная информация о взаимоблокировках

ЦУП предоставляет подробную техническую информацию обо всех взаимоблокировках (неразрешимых конфликтах блокировки) данных, которые наблюдались в исследуемой системе. Информация включает в себя:

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

Детальная информация о длительных серверных вызовах

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

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

  • время выполнения вызова;
  • длительность данного выполнения вызова;
  • пользователь «1С:Предприятия», при работе которого был выполнен серверный вызов;
  • контекст вызова (строка кода конфигурации, из которой он был выполнен).

Детальная информация о длительных событиях

Сценарий предназначен для расследования проблем, связанных с медленным выполнением какой-либо пользовательской операции (например, проведение документа), и при этом заведомо известно, что проблемы не связаны с ожиданием на блокировках.
Список длительных событий представляет собой два связанных списка:

  • первый список – длительные события, в котором события группируются по контексту и имеют следующие поля: время события, тип события,длительность события, пользователь «1С:Предприятия», номер ошибки;
  • второй список – значения реквизитов события, выбранного в первой группе.

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

 

  • Часть 1 — Установка компонента «COM-содинение«
  • Часть 2 — Установка конфигурации 1С
  • Часть 3 — Обновление конфигурации 1С
  • Часть 4 — Настройка Центра Управления Производительностью 1С
  • Часть 5 — Работа с Центром Управления Производительностью 1С

  • Часть 1
    Установка компонента «COM-содинение«

    Для работы ЦУП-а потребуется COM-соединитель, который по умолчанию
    не устанавливается при установке сервера 1С. Поэтому обычно требуется его
    установить. Перейдём на Windows-сервере в раздел установки/изменения программ,
    выделим курсором серверную часть 1С выберем Изменить.


    Может последовать стандартное Предупреждение. Продолжаем…


    Соответсвенно выбираем пункт «Изменить» и нажимаем кнопку Далее«:


    Находим необходимый нам пункт «COM-соединение«, напротив которого
    стоит «крестик» — это говорит, что данный компонент не установлен…


    Нажимаем на кнопку с «крестиком» и выбираем пунк,
    который установит данный компонент:


    «Крестик» превратиться в изображение накопителя на жёством носителе.
    Нажимаем кнопку «Далее«:


    Снова нажимаем кнопку «Далее«…


    …и кнопку «Установить«:


    Пойдёт процесс установки:


    Установка завершится. Нажмите кнопку «Готово«:


    Часть 2
    Установка конфигурации 1С

    Всё как обычно…


    Можно указать каталог установки:


    Процесс установки выглядит так:


    Снимаем галку — «Готово«:


    Часть 3
    Обновление конфигурации 1С

    Считаем, что стандартная база Центр Управления производительностью
    была установлена ранее и нам требуется лишь её обновление до последней версии.

    Запускаем Конфигуратор по базе Центра Управления производительностью.
    Заходим в меню Конфигурация —> Поддержка —> Обновить конфигурацию:


    Выбираем пункт Поиск доступных обновлений, нажимаем кнопку «Далее»:


    Для начала попробуем обновить конфигурацию выбрав пункт
    Искать в текущих каталогах шаблонов и обновлений.
    (Должно сработать на сервере).
    Нажимаем кнопку «Далее».


    Если обновления не найдены, то увидим такое вот окно.
    Вернёмся назад нажав кнопку «Назад«.


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


    Нажмём кнопку с тремя точками


    … и укажем каталог расположения новой конфигурации.
    Нажмём кнопку «Открыть«:


    Выбранный каталог будет показан в виде пути к нему.
    Нажмём кнопку «OK«:


    Новый путь появиться в списке выбора.
    По умолчанию он будет отмечен галочкой.
    Нажимаем кнопку «Далее».


    Увидим, наконец, наше обновление:


    Выберем нужное обновление и нажмём кнопку Готово:


    Будет показана информации об обновлении.
    Для обвновления нажимаем кнопку «Продолжить обновление«:


    Часть 4
    Настройка Центра Управления Производительностью 1С

    Запустим Центр Управления производительностью 1С в обычном режиме.
    Выберем снизу закладку «Монитор показателей производительности«.


    Далее сверху показавшегося окна нажимаем «Новое соединение«:


    Выбираем сценарий Мониторинг и нажимаем кнопку «OK«:


    Далее предлагается выбрать информационну базу, как при обычном запуске 1С.
    Изначально у нас нет базы, поэтому нажимаем кнопку «Добавить«:


    В самом начале отображается введение, как в книгах. Его стоит почитать.
    Затем нажмите «Далее«.


    Укажите наименование подключения и нажмите «Далее«.


    Укажите Центральный сервер и нажмите «Далее«.
    Если необходимо — поменяйте порт центрального сервера.


    Далее необходимо указать кластер исследуемой базы


    …выбрав его из выпадающего списка:


    Если вы ограничивали доступ к кластеру именем пользователя и паролем,
    то в секции Администратор кластера укажите их. (Не путайте с
    логином администратора информационной базы — он будет запрашиваться позже).
    Затем нажмите «Далее«.


    Если имя пользователя и пароль указаны неверно, то увидим вот такое сообщение:


    Если Администратор кластера не создавался,
    то оставьте пустыми поля имени и пароля в секции Администратор кластера.
    Затем нажмите «Далее«.


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


    Далее будет произведено подключение COM-соединителя к информационной базе:


    …и получение чего-то из информационной базы — вобщем — это тестирование соединения.


    Далее будет предложено выбрать Типы показателей.
    По умолчинию предлагаются типы показанные ниже на картинке.
    Просто нажмите «Далее«.


    По умолчанию, роль processadmin не назначается логину базы данных,
    поэтому и здесь она по умолчанию не отмечена:


    Роль processadmin указывается логину 1С (через который сервер 1С
    соединяется с SQL-сервером) в среде MS SQL Management Studio:


    Поставьте галочку и нажмите «Далее«.


    Читаем инструкцию — чего же там ещё требуется. Нжмите кнопку Инструкция:


    Вот что нам показывает инструкция:


    Идём в настройки пользователя, под которым мы собираемся запускать ЦУП…


    При добавлении группы ищем её по названию «Пользователи системного монитора«:


    Добавляем в список:


    Наблюдаем новую группу в списке:


    Если пользователь, под которым запущем ЦУП, не является членом группы
    «Пользователи системного монитора» («Perfomance Monitor Users«),
    ты на экране появиться следующее сообщение:


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


    Не забудьте поставить галочку напротив processadmin. Нажмите «Далее«.


    Далее требуется настроить Технологический журнал (ТЖ).
    Нажмите круглую зелёнкую кнопку с плюсиком,
    для добавления записи:


    Дальше «топайте» по кнопкам с «тремя точками» и указывайте пути:


    В итоге получится примерно следующее. Для продолжения нажмите «Далее«.


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


    Ещё раз попробовать нажать «Далее«…


    …и получить следующий набор сообщений об ощибках:


    Чего-нибудь поменять и снова пытаться перейти на следующий уровень,
    нажимая кнопку «Далее«.


    Редкий и оптимистичный «прогрессбар» может нам поднять настроение аж до 50%
    … но облом таки неизбежен.


    пытаемся, таки, прочесть инструкцию:

    А возможно, это просто очередная непредвиденная ошибка из набора 1С, связанная с вычислением времени.


    В конечном итоге необходимо приглядеться и указать в поле
    «Каталог настроек ТЖ:» сетевой, а не локальный путь.
    И, кстати, тут может возникнуть вопрос — а на какой локальный каталог
    должен указывать сетевой путь?
    .
    Отвечаю:
    На каталог из которого запускается сервер .
    Т.е. в любом случае 32-х-битный у нас сервер или 64-х-битный,
    необходимо расшаривать путь к каталогу: C:\Program Files\1cv82\conf.
    Т.е. никаких (x86) в пути!
    Расшарили, указали необходимые права, вписываем сетевой путь и жмём далее:


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


    Посмотрим инструкцию, посмотрим картинки.
    Сразу скажу — одна картинка «левая».
    Можете попробовать следовать инструкции и искать её сами,
    а можете посмотреть вот на эту, правильную картинку о том где искать параметры:


    Ну а это логичное продолжение предыдущей картинки — указано,
    что нужно отметить в SQL-сервере:


    Что здесь нужно указать написано в инструкции 1C, но по ней сложно понять.
    Даже если прочесть 5 раз. В конце концов, я догадался и поясню проще
    (как для людей):
    Здесь указывается локальный путь на SQL-сервере (именно локальный,
    а не сетевой, даже если мы настраиваем ЦУП на одной машине,
    а SQL-сервер запускается на другй).
    Путь к указываемому каталогу должен существовать.
    Для SQL-сервера должн быть предоставлен соответсвующий доступ
    в этот каталог — т.е. SQL-сервер будет туда писать. Жмём Далее.


    Ну наконец-то!
    Мы прошли этот Квест!


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


    На мониторе потекут красивые графики, примеры которых приведены ниже:





    Часть 5
    Работа с Центром Управления Производительностью 1С

    Далее работы выбираем «Новое соединение«:


    Выбираем сценарий Мониторинг и нажимаем кнопку «OK«:


    Выбираете нужную базу:


    Вот ещё немного картинок по работе 1С:ЦУП:





    Может так случиться, что 1С:ЦУП пропишет в файл C:\Program Files\1cv82\conf\logcfg.xml свои значения в секцию ns:log. Начинаться секция может с такого параметра:

    <ns:log xmlns:ns=»http://v8.1c.ru/v8/tech-log» history=»10000″ location=»D:\pmc_UPP\744be0e6-f7f0-42e0-9eea-37f5abd170d9«>

    1С:ЦУП может прописать такие чудные параметры для сбора логов, что даже после окончания работы с 1С:ЦУП сервер продолжит гадить плодить логи в каталог D:\pmc_UPP\744be0e6-f7f0-42e0-9eea-37f5abd170d9, тем самым быстро кушая свободное место на диске. Оно и правильно — это ведь технологический журнал! Так что имейте ввиду — быстро кончается место — ищите кто и куда чего плодит. С логами нужно быть поосторожней!


    Timur Shamiladze — Все видео |    11-11-2023 | Смотрели: 255238 | Продолжительность: 08:8:8

    Видео 1С Центр управления производительностью. Принцип работы 1С ЦУП. Часть №1 загружено на YouTube 11-11-2023. Канал автора видео — Timur Shamiladze



    Последние комментарии

    Солнцепек — Трейлер (2021)

    «Люблю русские драматические фильмы. Так что в ожидании премьеры. ПЫ.ЗЫ: показаны разные герои, чем-то напомнил испанский фильм «Дикие истории» »

    (Дата: 30.11.2023)


    Чем Москва ответит на новые санкции США? 60 минут от 15.03.2018 Веч…

    «Россия была, есть и будет Всегда Великой Державой! И никогда этим не будет (извините за каламбур) «выпендриваться».
    Но мы всегда будем поддерживать людей, которые попали в беду! Это наша русская душа. А на счет всех иностра…»

    (Дата: 30.11.2023)


    Зайка во дворе-Веселые детские песни

    «Текст песни «Зайка во дворе- прыгает»»

    (Дата: 30.11.2023)


    Фильм БОМБА запрещённый в Рашке город Шахты Ванеев ЕВРОДОН-Завернит…

    «Я тоже горюю по уходу с рынка Евродона и Ванеева. Я голосовала за эту власть прежде всего потому и тогда когда она поддерживала такие проекты.»

    (Дата: 30.11.2023)


    Семён Слепаков и Ленинград — Чемпионы-Ленинград | Leningrad

    «Да, слышала я разные футбольные гимны для этого чемпионата мира — и Наталья Орейро отметилась, и Дмитрий Губерниев вместе с Артуром Беркутом песню записали. Но вот так правду-матку может рубить только Шнур! Еще и со Слепаковым …»

    (Дата: 30.11.2023)




    Доброго дня, коллеги!

    Сегодня мы разбираем несколько приемов, которые помогут Вам заставить 1С работать НАМНОГО быстрее – и это займет у вас минимум времени.

    Это не просто какие-то “примеры из курса” – каждое видео имеет свою собственную, самостоятельную ценность и решает конкретную задачу.

    • Как ускорить запрос, отказавшись от индексов во временных таблицах (вопреки шаблонным советам разных “гуру”)
    • Простой способ в два раза ускорить запрос к итогам по регистру сведений
    • Как найти медленные запросы в Вашей базе с помощью 1С:Центр управления производительностью
    • Что дальше делать с медленным запросом – пример анализа и получение плана выполнения запроса

    “Хреновый совет”:
    как слепое следование “правильным рекомендациям” приводит к замедлению работы запроса в десятки раз

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

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

    Такая рекомендация встречается и на многих интернет-ресурсах – официальных и не только.

    Как бы не так!

    Как и многие советы – этот тоже не отличается тотальной универсальностью.

    Иногда эта рекомендация приводит к негативным последствиям: запрос может выполняться в десятки раз медленнее, чем неиндексированный аналог.

    В данном видео показан разбор такой ситуации.

    Запросы к периодическим регистрам сведений – ускорение в два раза

    Классический пример такого запроса – выборка цен товаров, в том числе по характеристикам и т.д.

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

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

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

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

    Как использовать 1С:ЦУП, чтобы найти “медленные” запросы, которые тормозят систему

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

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

    В частности будет показано:

    • Как с помощью ЦУП собрать информацию о медленных запросах
    • Какие настройки необходимо сделать при сборе этой информации
    • Как долго можно собирать данные для анализа.

    Анализ медленных запросов в 1С:ЦУП

    Это продолжение предыдущего урока.

    У нас уже есть данные о медленных запросах, теперь их нужно проанализировать.

    Это первый шаг к тому, чтобы работать не вслепую, “методом тыка”, а по наиболее актуальным точкам.

    В данном видео рассмотрим:

    • Как анализировать данные о медленных запросах
    • В каких разрезах ЦУП показывает информацию
    • Как узнать, из какой строчки кода был вызван запрос
    • Как посмотреть план выполнения запроса.

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

    Для тех, кто хочет системно ускорить работу 1С

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

    Он стоит всего 1500 рублей – но даст вам ПОЛНЫЙ анализ проблем, всех причин “тормозов”

    Одно это избавит вас от метаний “ну блин, вроде все проверил, может, уже вообще сервер поменять?” – будет сразу четкий план «что и где конкретно нужно поправить».

    И не нужно ждать, когда Ваша база начнет “залипать” и пользователи начнут охотиться за вашим скальпом.

    Проблемы лучше предотвращать заранее, это надежный признак умного человека :)

    Курс по диагностике проблем производительности 1С
    (всего за 1500 рублей!)

    плюс самый полный и исчерпывающий вариант:

    Пара отзывов от участников курса

    «Принцип любых курсов, Вам дают объем знаний, а Вы эти знания потом где-то применяете. Тут ситуация другая, есть список проблем, с которыми Вы можете столкнуться и направления знаний, которые Вам необходимы для решения проблем.»

    «Долгое время я думал, что тема уровня «1С:Эксперт» является недосягаемой, или так сказать не для «простых смертных»… Могу отнести курс к статусу «бестселлеров», как «базовый» и «продвинутый» от Евгения Гилёва»

    Архив номеров / 2008 / Выпуск №3 (64) / Анализируем производительность «1С:Предприятие». Краткий обзор специализированной конфигурации

    Рубрика:

    Администрирование / 
    Администрирование

    Facebook

    Twitter

    Мой мир

    Вконтакте

    Одноклассники

    Google+

    Андрей Луконькин

    Анализируем производительность «1С:Предприятие»
    Краткий обзор специализированной конфигурации

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

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

    Конфликт блокировок – это ситуация, которая приводит к тому, что один из двух конкурирующих процессов ставится в очередь, что вызывает замедление работы системы, а в некоторых случаях может привести к ошибке «lock timeout» или «deadlock».

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

    С использованием конфигурации «1С:Центр управления производительностью» («1С:ЦУП») версии 1.0 (бета) можно увидеть проблемы производительности и узнать, можно ли что-нибудь сделать для её увеличения.

    Приведу основные возможности «1С:ЦУП»:

    • Мониторинг показателей производительности работающей системы:
      • визуальная оценка текущего состояния системы в реальном времени;
      • запись и хранение исторической информации о производительности системы;
      • анализ сохраненных данных за произвольный период времени.
    • Анализ проблем производительности системы:
      • сбор подробной технической информации об основных проблемах производительности, имеющихся в системе;
      • автоматическое получение полного контекста каждой проблемы на всех уровнях функционирования приложения;
      • действия пользователей, которые привели к возникновению данной проблемы;
      • стек вызовов строк кода конфигурации, в результате работы которых возникла проблема;
      • выполнение запросов к СУБД, в результате которых проявилась данная проблема;
      • автоматическое ранжирование всех имеющихся проблем по степени важности;
      • рассмотрение проблем по убыванию влияния на общую производительность системы.

     Ввиду того что это бета-версия конфигурации и распространяется она бесплатно (http://users.v8.1c.ru, в разделе для пользователей), существует ряд ограничений:

    • бета-версия «1С:ЦУП» совместима с платформой «1С:Предприятие» версии не ниже 8.1.10;
    • бета-версия может подключаться для исследования производительности и анализа информации о взаимоблокировках только к информационным базам, работающим с использованием СУБД MS SQL Server 2005.

    «1С:ЦУП» может работать в двух режимах – мониторинга и просмотра.

    Режим мониторинга подразумевает подключение в режиме «online» к исследуемой базе и предназначен для отслеживания текущих значений выбранных показателей производительности, включения/выключения записи текущих значений показателей производительности.

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

    Расмотрим режимы подробнее.

    Рисунок 1. Мониторинг текущих значений выбранных показателей производительности

    Рисунок 1. Мониторинг текущих значений выбранных показателей производительности

    Работа в режиме мониторинга

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

    • текущие значения показателей производительности (см. рис. 1);
    • список выбранных показателей производительности.

    В верхней области текущих значений показателей данные отображаются графически, 60 последних значений – с частотой, заданной в настройках (по умолчанию 3 секунды).

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

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

    Работа в режиме просмотра

    Режим просмотра работает с той информацией, которая была записана в режиме мониторинга.

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

    При нажатии на кнопку «Анализ» в режиме просмотра информации становится доступным анализ данных.

    «1С:ЦУП» позволяет анализировать подробную техническую информацию о следующих проблемах производительности:

    • медленная работа запросов к СУБД;
    • ожидания на блокировках СУБД – простои системы из-за ожиданий на блокировках данных на уровне СУБД;
    • взаимоблокировки данных – неразрешимые конфликты блокировок.

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

    Таким образом, становится возможным увидеть конкретную строку программы, из-за которой возникает множество проблем, связанных с производительностью, и которую нужно оптимизировать или создать новый алгоритм для работы фрагмента программы (см. рис. 2).

    Рисунок 2. Дерево анализа проблем в разрезе кода конфигурации

    Рисунок 2. Дерево анализа проблем в разрезе кода конфигурации

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

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

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

    Типичные причины неоптимальной работы запросов:

    • несоответствие индексов и условий запроса;
    • некорректное использование параметров виртуальных таблиц;
    • отсутствие функции ВЫРАЗИТЬ для полей составного типа;
    • большая вложенность подзапросов, соединения с вложенными подзапросами;
    • получение лишних полей через точку.

    Ожидания на блокировках возникают в случае неоптимальной работы запроса, в случае методической ошибке при использовании объектов метаданных или из-за особенностей работы СУБД.

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

    Причины возникновения блокировок данного вида могут быть двух типов:

    • Неблокирующее чтение в начале транзакции и запись этих же данных в конце транзакции. Для исправления такой взаимоблокировки необходимо сделать чтение блокирующим (запрос с опцией «ДЛЯ ИЗМЕНЕНИЯ»).
    • Захват ресурсов в разном порядке – два или более процесса захватывают одни и те же ресурсы в разном порядке. Необходимо изменить код конфигурации таким образом, чтобы ресурсы захватывались в одинаковом порядке.

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

    Удачи!

    Приложение

    Устанавливать ли программу или просто скопировать папку запуска?

    Известно, что «1С:Предприятие 8» может запускаться, даже если платформа не была установлена, а всего лишь скопированы исполняемые файлы или произведен запуск с сетевого ресурса. Возникает закономерный вопрос: «А нужно ли устанавливать, если и так хорошо работает?» Скопировав папку, содержащую исполняемые файлы и необходимые для работы библиотеки (например C:\Program Files\1cv81\bin), мы сможем пользоваться программой, но при этом теряем некоторую часть функционала.

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

    • создает файлы с расширением .res и устанавливает сопроводительные файлы, соответствующие выбранному основному языку интерфейса;
    • регистрирует «1С:Предприятие 8» как сервер COM-соединения и automation-сервер;
    • при установке сервера «1С:Предприятие 8» производит регистрацию и настройку сервера в COM+ и создает специального пользователя для этого сервера;
    • регистрирует «1С:Предприятие 8» как установленное, что позволяет управлять набором необходимых компонентов через панель «Установка и удаление программ».

    Копирование исполняемых файлов «1С:Предприятие» может понадобиться в случае необходимости запуска на одном компьютере различных релизов платформы (в основном это бывает нужно разработчикам).

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

    Facebook

    Twitter

    Мой мир

    Вконтакте

    Одноклассники

    Google+

    ЦУП. Коротко о главном.

    В этой статье я хочу познакомить вас с самым мощным инструментом из КИПа( Корпортивный инструментальный пакет). Речь пойдет о ЦУПе (Центре управления производительностью). Со слов самой фирмы 1С «Центр управления производительностью» (ЦУП) — инструмент мониторинга и анализа производительности клиент-серверных информационных систем на платформе «1С:Предприятие 8». ЦУП предназначен для оценки производительности системы, сбора подробной технической информации об
    имеющихся «узких местах» и анализа этой информации с целью дальнейшей оптимизации.

    В отличие от «Тест-центра» ЦУП не встраивается в исследуемую базу, а представляет собой самостоятельную конфигурацию которую нужно развернуть как отдельную информационную базу. И, само собой, с помощью ЦУПа можно мониторить и анализировать неограниченное число баз. Сразу упомяну и о минусах ЦУПа: кроме немалой стоимости продукта могут быть сложности с его настройкой. Как правило сложности связаны с отсутствием необходимых прав. И в некоторых тяжелых случаях согласование назначения необходимых прав может растянутся на длительное время. Вообще редких ошибок при работе с ЦУП довольно много подробнее тут (они даже собраны в отдельную методичку), но зато в ЦУПе есть отличная инструкция по настройке  и пошаговый мастер настройки. И если на каком-то этапе мастера возникла ошибка, то необходимо внимательно прочитать соответсвующий пункт инструкции и внести необходимые изменения.

    Как уже говорилось ЦУП -это инструмент для мониторинга и анализа производительности, но естественно сам ЦУП ни коим образом не исправляет выявленные ошибки.

    По умолчанию в ЦУП созданы 3 сценария работы

    Мониторинг

    Просмотр

    Регламентный мониторинг (не пользуется популярностью).

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

    Показатели, с которыми работает ЦУП, можно разделить на 2 группы:

    • Оперативные и
    • Аналитические

    Оперативные показатели можно анализировать в режиме онлайн. К ним относятся например (Количество выполняемых запросов, Суммарное время выполняемых запросов, Максимальное время выполнения запросов, Суммарное время ожидания на блокировках СУБД и 1С, Количество взаимоблокировок, количество таймаутов и т.д).

    Аналитических показателей всего 3 (Анализ запросов, анализ взаимоблокировок и анализ ожиданий на блокировках). Для анализа аналитических показателей предназначен сценарий «Просмотр».

    Если Вы еще не знакомы со статьей из сайта 1С, то предлагаю ознакомится по ссылке.

    В этой статье я познакомлю Вас с тем,чего в статье недосказано.

    1) Полноценная работа с ЦУП возможна только с MS SQL в других случаях он будет бесполезен. Учтите это при покупке).

    2) ЦУП не расследует взаимоблокировки на уровне 1С. 

    3) Если конфигурация исследуемая конфигурация работает в автоматическом режиме, то ЦУП не всегда может определить гранулярность и режим блокировки.

    4) Оперативные показатели ЦУП собирает путем опрашивания консоли кластера с заданным промежутком времени(по умолчанию раз в 15 сек) и это не оказывает существенной нагрузки на сервер, поэтому включенными они могут быть сколь угодно. Иначе дело обстоит с аналитическими показателями. Информация получается считыванием логов технологического журнала и оказывает серьезную нагрузку на сервер, поэтому рекомендуется включать сбор информации примерно на 15 минут в период пиковой нагрузки.Чем дольше данные собираются тем дольше они затем будут анализироваться. Одна из ошибок почему аналитические данные не анализируются это то что в папке conf уже находится файл logcfg.xml. Решение элементарное -удалить или перенести файл в другое место.

    5) При анализе аналитических показателей ЦУП не всегда может точно определить виновника блокировки, в таком случае будет надпись «Предположение», если ЦУП уверен то надпись «Точные данные».

    6) ЦУП не показывает контекст вызванный из стандартных команд. 

    7) Показатели  «Количество таймаутов» и количество взаимоблокировок» распространяются не на исследуемую базу а на весь SQL сервер. Таким образом если у Вас на сервере несколько работающих баз, то обнаружив что показатель «Количество таймаутов» стал >0 не считайте что это 100% таймаут исследуемой базы.

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

    1С: Эксперт. Решение билета №11

    Вопрос 11.1

    В конфигурации определены следующие объекты метаданных:
    Справочник «Контрагенты». Структура:
    ДоговорСКонтрагентом (тип Документы.ДоговораСКонтрагентами.Ссылка)
    ДоговорАннулирован (тип Булево)
    ФотокопияДоговора (тип ХранилищеЗначений)
    Регистр накопления «ВзаиморасчетыСКонтрагентом». Структура:
    Сделка (составной тип из 28 видов документов). 

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

    Предложите более оптимальный способ решить эту задачу.

    Запрос = Новый Запрос;
    Запрос.Текст = «ВЫБРАТЬ
    |     Взаиморасчеты.Сделка КАК Сделка
    |ИЗ
    |     РегистрНакопления.ВзаиморасчетыСКонтрагентом КАК Взаиморасчеты
    |ГДЕ
    |     Взаиморасчеты.Сделка ССЫЛКА Документ.СчетНаОплатуПокупателю»;

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
         Сделка = Выборка.Сделка;
         Контрагент = Сделка.Контрагент;
         Если (Контрагент.ДоговорАнулирован) Тогда
              Сообщить(«Договор с » + Контрагент.Наименование + » анулирован!»);
         КонецЕсли;

    КонецЦикла;

    Ответ:

    1) Так как поле «Сделка» составного типа, то нужно использовать  функцию «Выразить».

    2) В запросе отбираются лишние данные, нужно отбирать  в запросе сразу задать условие где «ДоговорАнулирован = Истина».

    3) В цикле идет обращение через точку, следовательно, получаются запросы в цикле. Необходимо получать наименование контрагента сразу в запросе.

    Вопрос 11.2

    Что такое блокировка и для чего она нужна? Кто и когда устанавливает блокировку? Кто и когда снимает блокировку? Что такое ожидание на блокировке и когда оно происходит.

    Ответ:

    1) Что такое блокировка и для чего она нужна? Блокировка это информация о том, что некоторый ресурс заблокирован.

    2) Кто и когда устанавливает блокировку? Блокировка устанавливается явно и неявно.

    Явно устанавливает разработчик с помощью конструктора встроенного  языка Новый БлокировкаДанных.

    Неявно блокировка устанавливается платформой при записи(удалении) объектов, в обработке проведения и др.

    3) Ожидание на блокировке это ситуация когда транзакция не может установить свою блокировку так как ресурс уже заблокирован другой транзакцией.

    Вопрос 11.3

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

    Ответ:

    1)Если даже в однопользовательском режиме операция выполняется медленно значит есть неоптимальные запросы.

    С помощью замера производительности в отладчике определить самые «тяжелые» запросы и их оптимизировать.

    2) «Разгрузить» обработку проведения. Возможно некоторую  часть функционала  можно вынести из обработки проведения и вызывать их отдельными командами.

    1С: Эксперт. Решение билета №10.

    Вопрос 10.1

    Регистр накопления имеет следующую структуру:Измерения: СкладРесурсы: Товар, ОстатокДокумент имеет следующую структуру:Реквизиты: Организация, КонтрагентТабличная часть «Товары»: Товар, Склад, КоличествоДокумент проводится по регистру и реквизиты табличной части переносятся в измерения и ресурсы регистра по следующей схеме:

    Возможно ли реализовать такую структуру данных?

    Если да, то оптимальна ли такая структура?

    Ответ:

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

    Если да, то оптимальна ли такая структура? Скорее всего нет, так как обычно склад один и то же поэтому его следует перенести в шапку.

    Вопрос 10.2. Что такое уровень изоляции. Какие УИ поддерживает 1С Предпритие 8. Чем они отличаются с практической точки зрения?

    Ответ:

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

    В 1С поддерживаются следующие уровни изоляции:

    • Read uncommitted 
    • Read committed 
    • READ COMMITTED SNAPSHOT 
    • Repeatable read 
    • Serializable

    Вопрос 10.3

    В результате анализа проблемы взаимоблокировки в реально работающей системе на платформе 1с 8 была обнаружена ее причина: Запрос в транзакции без опции «Для изменения» и затем запись прочитанных данных. Почему в этом случае возникает взаимоблокировка? Как и почему изменится ситуация, если использовать опцию «для изменения».

    Ответ:

    Причина описанной взаимоблокировки называется «повышение уровня изоляции транзакции». В автоматическом режиме при чтении запросом  без опции «для изменения» устанавливается S блокировка до конца транзакции.

    При записи данных устанавливается X блокировка также до конца транзакции.

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

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

    1С: Эксперт. Решение билета №9

    Вопрос 09.1

    В
    конфигурации определен регистр накопления «ОстаткиТоваровНаСкладах», который
    имеет следующий набор измерений:

    ·       
    Склад

    ·       
    Товар

    Измерения регистра не проиндексированы.

    Пользователь
    А выполняет в транзакции запрос следующего вида:

    Запрос.Текст
    = “ВЫБРАТЬ

    | Остатки.Склад КАК Склад,

    | Остатки.Товар КАК Товар,

    | Остатки. КоличествоОстаток КАК Остаток

    | ИЗ


    РегистрНакопления.ТоварыНаСкладах.Остатки(,Товар=&Товар) КАК
    Остатки”;

    Запрос.УстановитьПараметр(“Товар”,
    Справочники.Товары.НайтиПоКоду(“00001”));

    Пользователь
    Б выполняет в запись следующего набора записей 
    регистра ТоварыНаСкладах:

    Склад

    Товар

    ОсновнойСклад

    Телевизор
    SHARP

    ОптовыйСклад

    Телевизор
    SHARP

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

    Ответ:

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

    Соответственно вторая транзакция не сможет наложить свою X блокировку при записи.

    Если Пользователь А укажет условие по складу «Резервный склад» то сможет использоваться поиск по кластерному индексу при выполнении запроса и транзакции смогут выполнится параллельно.

    Вопрос 09.2

    Код
    конфигурации содержит следующий фрагмент:

    НачатьТранзакцию();

                Процедура1();

                НачатьТранзакцию();

                            Процедура2();

                            НачатьТранзакцию();

                            Процедура3();

                            ОтменитьТранзакцию();

    Какие
    действия будут отменены в результате выполнения функции ОтменитьТранзакцию() в
    7 строке.

    Ответ:

    Будут отменены все действия, так как вложенные транзакции не поддерживаются.

    Вопрос 09.3

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

    Ответ:

    1) Скорее всего сервер не успевает выдавать лицензии, поэтому требуется настроить  файл nethasp.ini.

    2) Проверить используемый протокол. Если используется ipv6, то  следует перейти на протокол ipv4 так как HASP License Manager работает только с IPv4.

    3) Установка HASP License Manager на терминальный сервер

    4) Возможно сам ключ поврежден.

    Как установить заголовок приложения(системы)

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

    Функция    ПолучитьСиноним() Экспорт;
    ТекСиноним = Метаданные.Синоним;
    Возврат ТекСиноним;
    КонецФункции

    2) В модуле управляемого приложения вставляем код
    Процедура ПриНачалеРаботыСистемы()
        ТекЗаголовок = «learning1c.blogspot.com » ;
        ТекСиноним= ОбщийМодуль1.ПолучитьСиноним();
        НовЗаголовок =    ТекЗаголовок+ТекСиноним+ИмяПользователя() ;
        УстановитьЗаголовокКлиентскогоПриложения(НовЗаголовок);  
    КонецПроцедуры

    3) Устанавливаем сам заголовок в свойствах конфигурации.

    Получаем требуемую картину

    1С: Эксперт. Решение билета №8

    Вопрос 08.1

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

    Отбор = Новый Структура;

    Отбор.Вставить(«Организация»,
    Организация);

    Последовательности.ПартионныйУчет.УстановитьГраницу(ТекущаяДата(),
    Отбор);

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

    Ответ: 

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

    Параллельность можно повысить двумя способами:

    1) Убрать смещение границы последовательности из обработки проведения. Делать это оптимальнее с помощью фоновых заданий в нерабочее время.

    2) Добавить в последовательность еще один реквизит (например контрагент или договор) в этом случае параллельность также повысится.

    Вопрос 08.2

    Что
    такое транзакция? Для чего она нужна? В каком случае открывается транзакция?
    Поддерживаются ли вложенные транзакции?

    Ответ:

    В качестве ответа приведу фрагмент книги «Настольная книга эксперта по технологическим вопросам».

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

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

    Неявные транзакции начинаются, завершаются и отменяются средствами
    платформы. Любые операции, изменяющие данные (например — проведение и отмена проведения документов) выполняются только в транзакции. В неявной транзакции выполняются обработчики следующих событий прикладных объектов конфигурации (но не форм!), вызываемые как через модули этих прикладных объектов, так и через подписки на события:
    ПередЗаписью() ;
    ПриЗаписи() ;
    ОбработкаПроведения() ;
    ОбработкаУдаленияПроведения() ;
    ПередУдалением() ;
    ПередВыполнением() .

    Вложенные транзакции не поддерживаются.

    Вопрос 08.3

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

    Во время тестирования измеряется
    общая пропускная способность системы: общее количество строк документов (от
    всех пользователей), обработанных за единицу времени.

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

    В
    чем может быть причина уменьшения общей пропускной способности при количестве
    одновременно работающих пользователей более 150?

    Ответ:

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

    1С: Эксперт. Решение билета №6


    Вопрос 6.1. Документ РеализацияТоваров осуществляет движения по регистру ОстаткиНаСкладах, а именно списывает реализованное количество товаров со склада. В обработчике проведения документа выполняется проверка превышения лимитов — минимального допустимого остатка товара на складе и максимально допустимого размера отгрузки со склада. Запрос выглядит следующим образом:

    Ответ:

    Запрос.Текст = «ВЫБРАТЬ
    |     Товары.Номенклатура КАК Номенклатура,
    |     Товары.КоличествоНаСписание КАК Количество,
    |     Остатки.КоличествоОстаток КАК Остаток
    |ИЗ
    |     (ВЫБРАТЬ
    |          Товары.Номенклатура КАК Номенклатура,
    |          СУММА(Товары.Количество) КАК Количество
    |     ИЗ  Документ.Реализация.Товары КАК Товары
    |     ГДЕ Товары.Ссылка = &ДокументСсылка
    |     СГРУППИРОВАТЬ ПО
    |          Товары.Номенклатура) КАК Товары
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК Остатки
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛимитыОстатков КАК ЛимитыОстатков
    |     ПО ЛимитыОстатков.Номенклатура=Остатки.Номенклатура И ЛимитыОстатков.Склад = &Склад
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛимитыОтгрузкиСоСкладов КАК ЛимитыОтгрузки
    |     ПО ЛимитыОтгрузки.Номенклатура = Остатки.Номенклатура И ЛимитыОтгрузки.Склад = &Склад
    |ПО Остатки.Номенклатура = Товары.Номенклатура

    | ДЛЯ ИЗМЕНЕНИЯ»;

    1) После ДЛЯ ИЗМЕНЕНИЯ не указаны таблицы.  В случае если после предложения ДЛЯ ИЗМЕНЕНИЯ отсутствуют имена таблиц, блокироваться будут данные из всех таблиц, задействованных в запросе. Что приведет к избыточным блокировкам.

    Следует блокировать для изменения только таблицу остатков товара.

    2) Проверку лимитов нужно делать в самом запросе.

    3) Подзапрос следует заменить на ВТ.

    Вопрос 6.2. Имеется реально работающая многопользовательская система.  Необходимо решить следующие задачи:

    1) Определить пользователей, которые в данный момент выполняют длительные запросы к базе данных.

    2) Определить пользователей, которые заблокировали других пользователей.

    Ответ:

    На оба вопроса можно ответить с помощью консоли кластера.

    В колонке «захвачено СУБД» отображается время выполнения запроса.

    В колонке «заблокировано упр.» отображается номер сеанса которым заблокирован текущий сеанс. Номер сеанса можно увидеть и

    через монитор активности.

    Вопрос 6.3. В метаданных конфигурации описан  регистр накопления (остатков) ОстаткиНаСкладах, имеющий измерения «Склад» и «Товар». Информационная база работает в режиме клиент-сервер с использованием СУБД PostgreSQL. 

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

    Параллельность       Операция 1  Операция 2

    Запись набора записей со следующими условиями: 

    Склад= «Основной»

    Товар =«Телефон»

    Запись набора записей со следующими условиями

    Склад= «Основной»

    Товар =«Телевизор»

    Чтение с опцией «ДЛЯ ИЗМЕНЕНИЯ» регистра остатков по условию: 

    Склад= «Основной»

    Товар =«Телефон»

    Чтение без опции «ДЛЯ ИЗМЕНЕНИЯ» регистра остатков по условию

    Склад= «Основной»

    Товар =«Телефон»

    Чтение без опции «ДЛЯ ИЗМЕНЕНИЯ» регистра остатков по условию

    Склад= «Основной»

    Товар =«Телефон»

    Запись набора записей со следующими условиями

    Склад= «Основной»

    Товар =«Телефон»

    Ответ:

    Так как используется запрос с опцией «ДЛЯ ИЗМЕНЕНИЯ», то логично сделать вывод о том, что используется автоматический режим управления блокировками. Стоит помнить о том, что в автоматическом режиме  для версионных СУБД (коим и является PostgreSQL) минимальным уровнем гранулярности является таблица, поэтому с параллельностью тут дела будут хуже. Важно  помнить о том, что в СУБД версионниках  S и U блокировки не совместимы.

    Поэтому решение будет следующим:

    Параллельность       Операция 1  Операция 2
                  +

    Запись набора записей со следующими условиями: 

    Склад= «Основной»

    Товар =«Телефон»

    Запись набора записей со следующими условиями

    Склад= «Основной»

    Товар =«Телевизор»

                  —

    Чтение с опцией «ДЛЯ ИЗМЕНЕНИЯ» регистра остатков по условию: 

    Склад= «Основной»

    Товар =«Телефон»

    Чтение без опции «ДЛЯ ИЗМЕНЕНИЯ» регистра остатков по условию

    Склад= «Основной»

    Товар =«Телефон»

                  — Чтение без опции «ДЛЯ ИЗМЕНЕНИЯ» регистра остатков по условию

    Склад= «Основной»

    Товар =«Телефон»

    Запись набора записей со следующими условиями

    Склад= «Основной»

    Товар =«Телефон»

    1С: Эксперт. Решение билета №5.

    Вопрос 5.1 Обработчик проведения документа содержит следующий код:

    Запрос.Текст = 
    «ВЫБРАТЬ Товары.Номенклатура КАК Номенклатура,
    | Товары.КоличествоНаСписание КАК Количество,
    | Остатки.КоличествоОстаток КАК Остаток
    |ИЗ (ВЫБРАТЬ Товары.Номенклатура КАК Номенклатура,
    | СУММА(Товары.Количество) КАК Количество
    | ИЗ Документ.Реализация.Товары КАК Товары
    | ГДЕ Товары.Ссылка = &ДокументСсылка
    | СГРУППИРОВАТЬ ПО| Товары.Номенклатура) КАК Товары
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАКОстатки
    | ПО Остатки.Номенклатура = Товары.Номенклатура|ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ТоварыНаСкладах.Остатки»;
    Запрос.УстановитьПараметр(«ДокументСсылка», ТекущийДокумент);Запрос.УстановитьПараметр(«Склад»,СпрСклады.НайтиПоНаименованию(«Основной»));
    ВыборкаОстатков = Запрос.Выполнить() .Выбрать();
    Пока (ВыборкаОстатков.Следующий()) Цикл
    // Контроль остатков
    Если (ВыборкаОстатков.Остаток ВыборкаОстатков.Количество <= 0) 
    ТогдаСообщить («На складе нехватате товара!»);Отказ = Истина;
    КонецЕсли;
    КонецЦикла;// Увеличим счетчик проведенных документов на 1

    Константы.СчетчикДокументов.Установить(Константы.СчетчикДокументов.Получить)

    Укажите на неоптимальные решения и предложите более оптимальный вариант.

    Ответ:

    1) Изменение константы в обработке проведения -грубая ошибка.

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

    2) Соединение с виртуальной. таблицей. Следует заменить на соединение с врем. таб. 

    3) В запросе лучше сразу задать условие на количество, чтобы в цикле не делать проверку.

    Вопрос 5.2. В коде конфигурации описан сложный запрос текст которого состоит из нескольких сотен строк. Запрос содержит множество подзапросов большой вложенности и соединений с подзапросами.  При выполнении MSSQL выбирает план содержащий операции «table scan» и «nested loops». Все необходимые индексы для запроса определены. Обновление статистики не дает результатов. Предложите варианты решения этой проблемы.

    Ответ:

    1) Избавится от соединений с подзапросами, заменив подзапросы на временные таблицы. Это должно решить проблему «nested loops».

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

    3) Вообще  «table scan» — используется в основном с ВТ и не являются узким местом, поэтому возможно имелось в виду «index scan»  или «clusrered index scan».

    Вопрос 5.3. Что такое транзакция. Что такое блокировка данных. Как блокировка данных связана с транзакцией.

    Транзакция — это последовательность действий которые выполняются либо полностью либо не выполняются совсем.

    Транзакция обладает свойствами

    • Атомарность
    • Изолированность
    • Надежность
    • Согласованность

    Блокировка это информация о том что некоторый ресурс заблокирован.

    Блокировка возможна только в транзакции, вне ее блокировка не возможна.

    Во время транзакции блокировки накапливаются, так как в основном блокировки длятся до конца транзакции, за исключением транзакций с уровнем изоляции read committed.

    Понравилась статья? Поделить с друзьями:

    Это тоже интересно:

  • Централ б инструкция по применению цена отзывы аналоги
  • Целебрекс инструкция по применению цена таблетки 100 мг
  • Целебрекс инструкция по применению цена отзывы аналоги 200
  • Целебрекс инструкция по применению цена капсулы отзывы аналоги
  • Целебрекс инструкция по применению цена капсулы 200 мг

  • Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии