Рубрики

Мониторинг проблем производительности информационной системы 1С

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

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

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

Зачем и кому нужен мониторинг информационной системы 1С.

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

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

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

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

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

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

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

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

  1. Зафиксировать текущее состояние;
  2. Согласовать, что требуется улучшить;
  3. Провести работы;
  4. Зафиксировать новое состояние.

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

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

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

Фирма 1С считает, что достаточно корректной является методика APDEX, поэтому вкратце о ней.

На английском языке описание тут: http://apdex.org/index.html , http://en.wikipedia.org/wiki/Apdex

Смысл таков: если ваш документ Расчет себестоимости выпуска должен проводиться за 15 минут, то некоторые частные случаи будут выглядеть так:

  • если из 10 замеров он 9 провелся раз из 10 менее чем за 15 минут, а один раз - менее чем за 60 минут - это отлично;
  • если из 8 замеров он 7 раз провелся менее чем за 15 минут, а один раз - менее чем за 60 минут - это хорошо;
  • если из 9 замеров он 6 раз провелся менее чем за 15 минут, а 3 раза - менее чем за 60 минут - это удовлетворительно (некоторые говорят - плохо);
  • если из 10 замеров он 4 раза провелся менее чем за 15 минут, а 6 раз - менее чем за 60 минут - это очень плохо;
  • если все замеры показали результат хуже 15 минут - это неприемлемо.

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

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

 

Платные и "бесплатные" инструменты для мониторинга производительности информационной системы 1С.

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

Итак, "бесплатные" инструменты:

1. Замер производительности отладчиком 1С8. Включается так: Конфигуратор - Отладка - Замер производительности. Выключается так же. Позволяет оценить скорость работы кода конфигурации. Измеряет количество использования конкретных участков кода и время их выполнения. Справка находится во встроенной справке конфигуратора (F1) - 1С:Предприятие - Конфигурирование - Замер производительности.


Модуль№ строкиСтрокаКол-воВремя чистое% врем.
УниверсальныйОбменДаннымиXML.epf7 351Выполнить(Правило.ПослеЗагрузки);61961,3574226,71
УниверсальныйОбменДаннымиXML.epf5 337Результат = ЗапросПоиска.Выполнить();1 87819,025378,28
УниверсальныйОбменДаннымиXML.epf4 757Объект.Записать();1749,9487174,33
ОбщийМодуль.НастройкаПравДоступа1 119Если НЕ Запрос.Выполнить().Пустой() Тогда6119,7766234,26

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

3. Windows performance monitor. Позволяет измерять загрузку оборудования. Как настраивать и что смотреть, тоже в следующем разделе.

4. Различного рода самописные обработки, например, выводящие строковое представление функции ТекущаяДата() перед началом какого-то куска кода (например, НашДокумент.Записать(РежимЗаписиДокумента.Проведение)) и после его окончания.

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

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

Платный инструмент:

1С:Корпоративный инструментальный пакет 8 ( http://v8.1c.ru/expert/etp.htm ). В его состав входят:

  1. Тест-центр
  2. Центр управления производительностью
  3. Сценарное тестирование
  4. Центр контроля качества
  5. Стандартный нагрузочный тест

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

 

Теперь о "бесплатных" инструментах подробнее.

Как настроить и как использовать Performance monitor

С помощью Performance monitor в простых случаях достаточно контролировать следующие параметры

  • Memory (Память) - Pages/sec (обмен страниц/с) - норма - 0, рекомендованный максимум - не более 20.
  • Memory (Память) - Commited bytes in use (% использования выделенной памяти) - счетчик показывает процент относительно суммы размера оперативной памяти и файла подкачки. Не должен превышать размер оперативной памяти.
  • Processor [_Total] (Процессор [_Total])- % Processor Time (% загрузки процессора) - рекомендованный максимум - не более 70% в течение длительного времени.
  • System (Система) - Processor Queue Length (Очередь к процессорам) - рекомендованный максимум - не более 2 * количество ядер процессоров в течение длительного времени.
  • Physical Disk (Физический диск)- Avg. Disk Queue Length (Средняя длина очереди к дискам) - обязательно для системных дисков отдельно, для диска с базой отдельно, для диска с журналом транзакций (если такой есть) отдельно. Рекомендованный максимум - не более 2 * количество дисков, работающих параллельно.
  • Network Interface (Сетевой интерфейс)- Bytes Total/sec (всего байт/с). Рекомендованный максимум - не более 65% от пропускной способности адаптера.

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

Однако не спешите радоваться, если загрузка близка к нулю. Это может означать следующее:

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

Можно руководствоваться следующим правилом: если информационная система 1С работала нормально, а потом стала работать хуже, и если нет явной нехватки производительности оборудования (например, 100% загрузки процессора в течение длительного времени), то апгрейд оборудования исправить ситуацию не поможет. Это приходится утверждать вопреки распространенной практике.

Как настроить сбор логов perfmon (для Windows Server 2008 и Windows 7).

Если вы не админ, попросите включить вас в группы Performance monitor users и Performance log users/

  • Пуск – Выполнить-perfmon.
  • Группы сборщиков данных – Особый (правой кнопкой) – Создать – Группа Сборщиков данных.
  • Ввести имя (например, 1s) - Далее.
  • Создать журналы данных - галочку на Счетчик производительности - Далее.
  • Используя кнопку Добавить, добавить счетчики из списка:
    • Memory (Память) - Pages/sec (обмен страниц/с)
    • Memory (Память) - Commited bytes in use (% использования выделенной памяти)
    • Processor [_Total] (Процессор [_Total])- % Processor Time (% загрузки процессора)
    • System (Система) - Processor Queue Length (Очередь к процессорам)
    • Physical Disk (Физический диск)- Avg. Disk Queue Length (Средняя длина очереди к дискам) - обязательно для системных дисков отдельно, для диска с базой отдельно, для диска с журналом транзакций (если такой есть) отдельно
    • Network Interface (Сетевой интерфейс)- Bytes Total/sec (всего байт/с)
  • Когда набрали все счетчики, нажать ОК и Далее.
  • Если не хотите задать другой путь к файлам логов, предложенный путь оставить как есть, нажать Далее. Если вы не админ, создайте свою папку для логов там, куда у вас есть права на запись, хотя бы даже у себя в библиотеке "Документы" - вам, скорее всего, не хватит прав на C:\PerfLogs.
  • Поставить переключатель на СохранитьИЗакрыть, нажать Готово.
  • Встать на имя группы сборщиков (1s) – Действие – Пуск (или нажать на зеленую стрелку)
  • После этого даже если завершить сеанс пользователя, сборщик продолжит работу.

Если надо остановить счетчик или отослать файл, там же: Действия – Стоп (или ) нажать на черный квадрат.

Для старта перезагружать сервер не требуется.

Файлы по умолчанию собираются в папке: %systemdrive%\PerfLogs\Admin\1s (это 1s - имя группы сборщиков, заданное выше при настройке), или в папке, которую вы указали в качестве пути.

Каждый перезапуск счетчика начинает новый файл.

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

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

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

Как настроить и как использовать технологический журнал.

Настройка, наиболее подходящая для ежедневного мониторинга, должна выполняться так:

  • Завести на локальных дисках серверов приложений 1С специальную папку для технологического журнала. Например . И для дампов Например
  • Настроить журнал на сбор сообщений об ошибках (см. ниже пункт про файл logcfg.xml в подкаталог этого каталога. Подкаталог будем называть по дате: и т.д.
  • Сам файл logcfg.xml надо положить в каталог conf папки установки сервера 1С:Предприятия (например C:\Program Files\1cv82\8.2.15.301\bin\conf).
  • Обратить внимание - сервера, не клиента, т.к. это может быть один и тот же каталог, но могут быть разные. Т.е., например, если у вас 64-битный сервер, то сервер 1C по умолчанию ставится в C:\Program Files\(...), а клиент в C:\Program Files (x86)\(...).
  • После этого примерно через минуту убедиться, что в каталоге создалась папка C:\LOG\2011-02-16, и в ней еще подпапки с именами rphost_XXXX, ragent_XXXX, rphost_XXXX, а в них файлы.
  • Если создались, то все нормально, если не создались, то что-то не так.
  • Если что-то не так: наиболее распространенные ошибки - большие/маленькие буквы в именах каталогов (регистр должен совпадать), в файле настройки написали слеш на конце имени каталога (не нужен), а еще иногда требуется донастроить права пользователей на папки C:\LOG, C:\dumps, C:\Program Files\1cv82\8.2.13.205\bin\conf, если они чересчур "закручены", а такое может быть по умолчанию.
  • Если надо хранить данные за каждый день отдельно, каждый день в одно и то же время (например, в начале рабочего дня) менять имя каталога в файле logcfg на новое (подставлять другую дату). Данные за прошлый день архивировать в один файл с соответствующим именем, при необходимости высылать туда, где их могут обработать. После этого данные за прошлый день удалять.
  • Если не надо хранить данные за каждый день отдельно, можно ничего не делать, данные хранятся определенное количество часов (в нашей настройке, указанной ниже - 240, после чего сами удаляются)

   

Время на настройку, если с правами все в порядке, минут пять, вместе со следующим пунктом.

Настройка logcfg.xml.

Файл logcfg.xml сам по себе является семафором, его присутствие в нужном каталоге включает запись технологического журнала 1С, а его содержимое определяет, что, как и куда пишется.

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

Редактировать файл можно "блокнотом".

Содержимое файла для наших целей должно быть примерно таким (можно копировать):



    
    
        
        
            
        
    

В этом случае в технологический журнал пишутся только ошибки (eq property="name" value="excp"). Данные хранятся 240 часов, потом удаляются (log history="240"). Пишутся они в каталог C:\LOG\2011-02-16 (location="C:\LOG\2011-02-16"). Дампы при падении не создаются (dump create="false").

Такая настройка наиболее подходит для ежедневного мониторинга. Она не вызывает дополнительной нагрузки на систему, поскольку в файл пишутся только ошибки (повышение нагрузки - на уровне ошибок измерения). Она не забивает место на диске при создании дампов. Дампы нужны, если вы их собираете посылать на разбор в Фирму 1С. Анализировать их самостоятельно вы, скорее всего, не сможете.

Если происходит ошибка блокировок, она записывается в файл в текстовом виде, и выглядит она примерно так:

00:05.8840-0,EXCP,6,process=rphost,p:processName=ut,t:clientID=66,t:applicationName=1CV8,t:computerName=MS-11,t:connectID=49,SessionID=794,Usr=Иванов Петя,Exception=DataBaseException,Descr='Конфликт блокировок при выполнении транзакции:Microsoft OLE DB Provider for SQL Server: Lock request time out period exceeded.HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=12, Severity=10, native=1222, line=1'

00:05.8845-0,Context,3,process=rphost,p:processName=ut,t:clientID=66,t:applicationName=1CV8,t:computerName=MS-11,t:connectID=49,SessionID=794,Usr= Иванов Петя,Context='

{Документ.Событие.Форма.ФормаДокумента}
Документ.Событие : 734 : мойЗаписатьТелефонКонтрагента(Контрагент, мойТелефон);
    ОбщийМодуль.мойОбщий : 1073 : Список = мойПоискАбонентаПоТелефону(Телефон, Истина);
        ОбщийМодуль. мойОбщий: 992 : Результат = Запрос.Выполнить();'

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

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

Сгруппировать ошибки по их содержанию это более сложная задача, но тоже вполне решаемая. Тут пока мы готовы помогать всем желающим, разбирая логи технологического журнала по однократному запросу - пока бесплатно, на регулярной основе - за небольшие деньги. Условие - настроечный файл logcfg.xml должен быть, как у нас, настроен только на (eq property="name" value="excp"), то есть только на ошибки.

Как настроить и использовать подсистему Оценка производительности из БСП 1С

(БСП - Библиотека стандартных подсистем)

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

Таким объективным показателем может быть время выполнения какой-то ключевой операции, например, время проведения документа Расчет себестоимости выпуска.

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

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

  1. В конфигураторе.
  2. Сравнение и объединение с cf БСП 1.2.2.3.
  3. В окне сравнения-объединения Снимаем все галки.
  4. Действия – Отметить по подсистемам файла.
  5. Снимаем все галки.
  6. Галку ставим на ОценкаПроизводительности (подчиненные оставляем включать, родительские – не включать).
  7. Установить.
  8. В окне сравнения-объединения Общие – Подсистемы – Стандартные Подсистемы- ОценкаПроизводительности – Поставить галку.
  9. Выполнить объединение.
  10. В перечисление Ключевые операции добавить предопределенные элементы(напр. ПроведениеДокумента).
  11. Когда документ проводится при нажатии кнопки "ОК" и нам необходимо выполнить замер времени проведения:
    1. "ОК" стандартная кнопка.
      Для обычных форм:
      Открыть форму на редактирование, в контекстном меню кнопки выбирать пункт "Удалить", создать новую кнопку с таким же именем и разместить ее на форме.

      Для управляемых форм:
      Открыть форму на редактирование, в свойствах формы (свойство "Состав команд") отключить отображение команды "ОК", в редакторе форм создать новую команду с именем "ОК", расположить ее на форме, при необходимости установить свойство "КнопкаПоУмолчанию" в "Истина".

      Обработчик кнопки (команды) может выглядеть следующим образом (авторство кода http://v8.1c.ru ):
      &НаКлиенте
      Процедура КомандаОК(Команда)

      #Если ТолстыйКлиентОбычноеПриложение Тогда
      КлючеваяОперация = Перечисления.КлючевыеОперации.ПроведениеДокумента;
      #Иначе
      КлючеваяОперация = ПредопределенноеЗначение("Перечисление.КлючевыеОперации.ПроведениеДокумента");
      #КонецЕсли
      ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);

      Попытка
      #Если ТолстыйКлиентОбычноеПриложение Тогда
      ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
      #Иначе
      ПараметрыЗаписи = Новый Структура("РежимЗаписи");
      ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
      ЭтаФорма.Записать(ПараметрыЗаписи);
      #КонецЕсли
      Исключение

      //Обработка неудачного проведения документа
      //Впишите код для обработки неудачного проведения документа -->
      //...

      КонецПопытки;
      ЭтаФорма.Закрыть();
      КонецПроцедуры
       
    2. "ОК" не стандартная кнопка.
      Найти обработчик нажатия кнопки (команды) и изменить его следующим образом. (авторство кода http://v8.1c.ru ):
      &НаКлиенте
      Процедура КомандаОК(Команда)

      #Если ТолстыйКлиентОбычноеПриложение Тогда
      КлючеваяОперация = Перечисления.КлючевыеОперации.ПроведениеДокумента;
      #Иначе
      КлючеваяОперация = ПредопределенноеЗначение("Перечисление.КлючевыеОперации.ПроведениеДокумента");
      #КонецЕсли
      ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);

      //......
      //Код написанный в обработчике
      //......

      КонецПроцедуры
  12. Константу ВыполнятьЗамерыПроизводительности установить в Истину, для чего сделать обработку, с одной кнопкой и одной процедурой – обработчиком нажатия
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Константы.ВыполнятьЗамерыПроизводительности.Установить(Истина);
    КонецПроцедуры
  13. Для анализа значений APDEX, нужно использовать обработку «ОценкаПроизводительности» (Операции – Обработки…). Чтобы ее использовать, нужно задать период, шаг периода и целевое время, в списке оставить только свою ключевую операцию и «общую производительность системы» и нажать «Обновить показатели производительности»

Время на настройку - около 20 минут.

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

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

 

Что можно увидеть с помощью «бесплатных» инструментов.

  1. Общее состояние системы в объективном виде: перегруз/недогруз оборудования, наличие ошибок блокировок (даже если пользователи еще не жалуются), время выполнения ключевых операций.
  2. Динамику процесса - хуже/так же/лучше.

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

Что из этого входит в услугу БИТ-Диагностика.

В услугу БИТ-Диагностика входят: настройка, сбор и анализ загрузки оборудования средствами Windows performance monitor, а также настройка, сбор и анализ технологического журнала 1С.

То есть два инструмента из трех разобранных, мы в услуге БИТ-Диагностика используем, причем с теми же настройками, что приведены в этой лекции.

Отличие в том, что кроме этого мы разбираем собранные данные более подробно и обстоятельно, также используем наше ноу-хау - опросный лист, анализируем cf-файл, и предоставляем отчет. Поэтому БИТ-Диагностика - услуга платная.

Что из этого входит в услугу БИТ-всеобщий мониторинг.

Все инструменты, о которых я рассказал, в идеале должны войти в программу всеобщего мониторинга производительности информационных систем 1С. Сейчас мы готовы в автоматизированном режиме разбирать и хранить в единой базе данные технологических журналов 1С, и делаем это. Скорость подготовки автоматизированного разбора данных двух других источников информации - Windows performance monitor и подсистемы Оценка производительности в значительной степени зависит от наличия реальных запросов по этим задачам. В ручном режиме мы это сейчас уже можем разбирать и, разумеется, разбираем, но возможности ручного режима по сравнению с автоматизированным в объемах сильно проигрывают.

 

Примеры решения для некоторых проблем.

Проекты, с которыми к нам обращаются, имеют разные причины неудовлетворительной производительности. Но ТОП-5 этих причин выглядит так:

  1. Онлайновый партионный учет и онлайновый учет авансов.
  2. Использование события ПриВыводеСтроки и ПриПолученииДанных в формах списка документов для придания этим формам дополнительной функциональности.
  3. Контроль чего-нибудь по табличным частям документов при проведении.
  4. Ведение в типовых базах БП и ЗУП большого количества организаций с настроенной РЛС.
  5. Использование файловой базы.

Первые 4 причины прекрасно ловятся анализом технологического журнала. Оборудование при их наличии, как правило, недогружено или явно простаивает. Пятая - вопросом в лоб :)

Возможные методы решения для каждой из проблем.

  1. партионный учет, учет авансов:
    1. Если речь об 1С:УПП или 1С:КА - перейти на РАУЗ, если это БП 8 - перейти на УПП и в ней на РАУЗ.
    2. Отложенное проведение, иногда бухгалтера легче уговорить дождаться проведения в обед и ночью, вместо перспективы много раз безрезультатно нажимать на ОК.
    3. Смириться и терпеть, если проблема не очень остро стоит.
  2. некорректная работа с формой списка:
    1. Написать отчет, предоставляющий менеджерам ту же самую информацию.
    2. Использовать реквизиты документов.
  3. контроль по документам:
    1. Переделать механизм на контроль по регистрам.
    2. Вынести процедуру контроля из транзакции проведения: очень часто проверяют вещи, не требующие блокировки контролируемых ресурсов на время проведения документа.
  4. большое количество организаций в одной базе, надо заметить - речь именно о большом количестве, не о двух-трех, и только для случая, когда проблемы производительности себя проявляют:
    1. Провести серьезную оптимизацию типового решения.
    2. Использовать для каждой организации свою базу, для получения консолидированной отчетности использовать БИТ-Финанс, или 1С:Консолидацию 8.
  5. для файловой базы:
    1. Перейти на клиент-серверную версию, хотя бы на 32-разрядную. В качестве СУБД можно использовать бесплатную DB2 Exprecc-C.

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

 

По коммерческим вопросам обращаться:

e-mail: bit-diagnostika@1cbit.ru
http://www.trsoft.ru
http://www.1cbit.ru
 
Руководитель Центра технологической экспертизы компании 1С:БИТ
Автор: Филиппов Е.В.
Дата публикации: 04.09.2012 г.
(0.029 c.)

Мы Вам перезвоним

*
*
 

Я даю Согласие на обработку персональных данных в соответствии с Политикой Конфиденциальности