- О компании
- История компании
- Статусы компании
- Система качества ISO
- Работа в компании
- Внедренные решения
- Статьи
- Мероприятия
Мониторинг проблем производительности информационной системы 1СЭти проблемы, проблемы производительности, могут проявляться по-разному, как различные симптомы болезни, однако, если в системе есть проблемы производительности, как правило, всегда имеет место хотя бы одно из следующего:
Отслеживание этих симптомов и является мониторингом проблем производительности, а целью такого мониторинга является не только разбор ошибок и лечение системы с явными проблемами, диагностика проблем, но, в первую очередь, их диагностика на ранней стадии. Ранняя диагностика проблем производительности информационной системы 1С, как и в медицине, позволяет вовремя провести профилактические меры, не допустить или снизить тяжесть острой фазы - то есть критической деградации, и снизить стоимость принимаемых мер и тяжесть последствий. Зачем и кому нужен мониторинг информационной системы 1С.Прежде всего это, конечно, уже заболевшие системы. Системы, в которых деградация производительности стала критической или приближается к ней. Критической деградацией мы считаем ситуацию, когда пользователь за отведенное время не успевает решить возложенную на него бизнес-задачу. Например, ему требуется провести всего 20 документов списания горючего в день, но в отчетный период он не может сделать этого из-за ошибок блокировок. Бизнес-критичные проблемы, медленная работа, неожиданные остановки, регулярные жалобы пользователей - все это уже явные симптомы заболевшей системы, но, надо сказать, симптомы уже вторичные. В таких системах мониторинг нужен по двум причинам: во-первых, он является средством диагностики проблем, во-вторых, он позволяет отслеживать динамику процесса, то есть видеть, какой результат дают, меры, которые принимают для исправления ситуации. Второй случай, это системы, испытывающие постоянные нагрузки, системы, которые на этапе их создания проектировались под большие нагрузки, либо они стали таковыми в ходе своей жизни. Разные системы рассчитаны на разные нагрузки, иногда и специально тренированная женщина может развивать скорость большую, чем мужчина. Однако если вы наденете рюкзак в 35-40 кг на ту же Магдалену Нойнер, побежит она гораздо медленнее, а устанет, скорее всего, гораздо быстрее. Причем когда человек бежит с рюкзаком, все-таки видно, что он на нем надет. А что в информационной системе 1С в процессе внедрения или эксплуатации запустили механизмы, мешающие быстрой работе не меньше, чем рюкзак быстрому бегу, люди, запустившие их, могут даже не догадываться. Третий случай, это система, полученная в наследство от предыдущей команды внедренцев, от собственной службы сопровождения 1С заказчика, да даже при переходе из проектного отдела в отдел сопровождения при передаче систему в промышленную эксплуатацию. Когда вы покупаете подержанный автомобиль, правильным подходом считается съездить на нем в автосервис на диагностику, если вы не доверяете собственным глазам и ушам при пробной поездке. Как минимум странно, почему такого не происходит при передаче информационных систем. Если вы не обследуете переданную вам систему в работе, это все равно что вы оцениваете только внешний вид салона автомобиля и качество инструкции по эксплуатации, но его внешний вид и ходовые свойства остаются для вас неизвестными. Как купленный автомобиль может содержать в себе любой сюрприз, например, 6,5 кг марихуаны, так и переданная вам информационная система может содержать массу интересного. И лучше если это выявите вы, и заранее, а не пользователи в отчете. Четвертый случай - это системы, готовые в ближайшее время к массовому старту, например, к вводу в промышленную эксплуатацию. Понятно, что по-хорошему для таких систем надо бы проводить нагрузочное тестирование, но на это часто нет ни времени ни бюджета. Поэтому это тестирование все равно происходит, но на живых пользователях при старте. На всех массовых соревнованиях, если вы замечали, организован как минимум старт и финиш с подсчетом результатов, дежурит бригада врачей (должна по крайней мере дежурить), на случай если кому станет плохо, тренеры спортивных школ смотрят на перспективных спортсменов. Вот такой мониторинг. Также и в системе 1С, запускаемой в эксплуатацию, подобный мониторинг может и должен быть организован, в ходе него даже могут быть получены сведения, которые никаким искусственным нагрузочным тестированием получены быть не могут. Как особенности выступления молодого спортсмена на массовом старте, эти бесценные данные могут сразу же дать путевку в жизнь работам, которые необходимо начать проводить в системе не теряя времени, чтобы она успешно прошла свой первый экзамен - первый отчетный период. Важные моменты при мониторинге производительности информационной системы 1С.
|
Модуль | № строки | Строка | Кол-во | Время чистое | % врем. |
---|---|---|---|---|---|
УниверсальныйОбменДаннымиXML.epf | 7 351 | Выполнить(Правило.ПослеЗагрузки); | 619 | 61,35742 | 26,71 |
УниверсальныйОбменДаннымиXML.epf | 5 337 | Результат = ЗапросПоиска.Выполнить(); | 1 878 | 19,02537 | 8,28 |
УниверсальныйОбменДаннымиXML.epf | 4 757 | Объект.Записать(); | 174 | 9,948717 | 4,33 |
ОбщийМодуль.НастройкаПравДоступа | 1 119 | Если НЕ Запрос.Выполнить().Пустой() Тогда | 611 | 9,776623 | 4,26 |
2. Технологический журнал. Позволяет получать технологическую информацию о работе приложений, как сервера, так и клиентов. Имеет гибкую систему настроек. О его настройке для целей мониторинга подробнее будет рассказано чуть позже.
3. Windows performance monitor. Позволяет измерять загрузку оборудования. Как настраивать и что смотреть, тоже в следующем разделе.
4. Различного рода самописные обработки, например, выводящие строковое представление функции ТекущаяДата() перед началом какого-то куска кода (например, НашДокумент.Записать(РежимЗаписиДокумента.Проведение)) и после его окончания.
5. Если нужно измерять и хранить время выполнения не одной операции, а, например, время проведения каждого документа в работающей базе, есть смысл воспользоваться функционалом подсистемы Оценка производительности из состава Библиотеки стандартных подсистем 1С. Как это делать - также ниже будет рассказано более подробно.
6. Специфический род "бесплатных" инструментов, больше доступных и привычных администраторам баз данных, чем 1С-никам. Это профайлер SQL-сервера, и аналогичные инструменты других СУБД. Для наших целей обладают некоторыми недостатками: во-первых, чтобы научить ими пользоваться, нужно гораздо больше времени, чем одна лекция, во-вторых, часть решений, получаемых с их помощью, может нарушать лицензионное соглашение 1С, в-третьих, развитие функционала Корпоративного инструментального пакета делает все меньше необходимость умение этими инструментами пользоваться, в-четвертых, эти инструменты все же больше предназначены для поиска и анализа ошибок, а не для ежедневного мониторинга.
1С:Корпоративный инструментальный пакет 8 ( http://v8.1c.ru/expert/etp.htm ). В его состав входят:
Существует легенда, что если купить этот пакет и установить его у себя, то проблемы производительности исчезнут сами собой. Это нельзя назвать неправдой, потому что оно так и случится... если вместе с покупкой пакета вы пригласите специалиста, умеющего им пользоваться. Применительно же к нашей лекции, из всего состава пакета нужны 2 вещи: Центр контроля качества поможет вам организовать правильное обслуживание базы, а Центр управления производительностью можно использовать для ежедневного мониторинга. Однако цель этой лекции - рассказать, как вести мониторинг с минимальными затратами, а покупка программы и тем более привлечение на постоянный мониторинг эксперта по технологическим вопросам это уже не минимальные затраты, и не каждому они по карману.
С помощью Performance monitor в простых случаях достаточно контролировать следующие параметры
Если показатели, особенно следующие: % загрузки процессора, средняя длина очереди к дискам, % использования выделенной памяти, превышают рекомендованные максимумы, это означает, что оборудование не справляется с нагрузкой.
Однако не спешите радоваться, если загрузка близка к нулю. Это может означать следующее:
Можно руководствоваться следующим правилом: если информационная система 1С работала нормально, а потом стала работать хуже, и если нет явной нехватки производительности оборудования (например, 100% загрузки процессора в течение длительного времени), то апгрейд оборудования исправить ситуацию не поможет. Это приходится утверждать вопреки распространенной практике.
Если вы не админ, попросите включить вас в группы Performance monitor users и Performance log users/
Если надо остановить счетчик или отослать файл, там же: Действия – Стоп (или ) нажать на черный квадрат.
Для старта перезагружать сервер не требуется.
Файлы по умолчанию собираются в папке: %systemdrive%\PerfLogs\Admin\1s (это 1s - имя группы сборщиков, заданное выше при настройке), или в папке, которую вы указали в качестве пути.
Каждый перезапуск счетчика начинает новый файл.
Длительность замера при указанных настройках не ограничена – счетчик работает, пока его не остановят, или не произойдет перезагрузки сервера.
Просматривать записанные логи можно, выбирая нужный файл в качестве источника в свойствах окна: Средства наблюдения - Системный монитор.
Если нет навыков, но прав хватает, в первый раз настройка может занять полчаса.
Настройка, наиболее подходящая для ежедневного мониторинга, должна выполняться так:
Время на настройку, если с правами все в порядке, минут пять, вместе со следующим пунктом.
Настройка 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"), то есть только на ошибки.
(БСП - Библиотека стандартных подсистем)
Пользователи могут начать жаловаться на "резкое снижение" скорости работы. Это, однако, субъективный показатель, и если его стоит принимать во внимание, то только для того, чтобы начать собирать объективные показатели.
Таким объективным показателем может быть время выполнения какой-то ключевой операции, например, время проведения документа Расчет себестоимости выпуска.
Чтобы иметь объективную картину, надо, чтобы при каждом нажатии кнопки ОК в критичном документе выполнялся замер времени и записывался в базу. Тогда у вас, во-первых, будет действительное понимание того, сколько на самом деле, а не со слов пользователя, проводятся документы, а во-вторых, вы можете видеть динамику процесса и сами можете увидеть тревожную ситуацию и начать принимать меры (например, время увеличилось вдвое - с 5 минут до 10, но основные пользователи в отпусках, а девочкам, их замещающим, кажется, что это нормально и они не жалуются).
Ниже приводится инструкция для библиотеки стандартных подсистем 1.2.2.3, для более новых версий отличие только в том, что Ключевые операции это не перечисление, а справочник.
Время на настройку - около 20 минут.
Перед п.12 потребуется обновить конфигурацию базы, причем не динамически, а с выходом всех пользователей.
Использование такого подхода предполагает, что замеры выполняются только при нажатии на кнопку ОК в форме элемента. Это не охватывает всех случаев, потому что, например, проведение документа может выполняться и с помощью других кнопок, заменить обработчики которых гораздо сложнее. Но можно считать, что для массовых документов выборка, получаемая таким образом, хоть и не будет охватывать всех случаев, может считаться достаточной, а для немассовых документов можно, например, попросить отдельных пользователей пользоваться для проведения документов только кнопкой ОК.
Причем не важно в каком состоянии ваша система - есть в ней явные проблемы, нет явных, но есть неявные, или нет проблем. Мониторинг в любом случае поможет понять, что происходит. Как уже показал, вся настройка суммарно занимает не больше часа времени, разумеется, если все под рукой, и на все хватает прав.
В услугу БИТ-Диагностика входят: настройка, сбор и анализ загрузки оборудования средствами Windows performance monitor, а также настройка, сбор и анализ технологического журнала 1С.
То есть два инструмента из трех разобранных, мы в услуге БИТ-Диагностика используем, причем с теми же настройками, что приведены в этой лекции.
Отличие в том, что кроме этого мы разбираем собранные данные более подробно и обстоятельно, также используем наше ноу-хау - опросный лист, анализируем cf-файл, и предоставляем отчет. Поэтому БИТ-Диагностика - услуга платная.
Все инструменты, о которых я рассказал, в идеале должны войти в программу всеобщего мониторинга производительности информационных систем 1С. Сейчас мы готовы в автоматизированном режиме разбирать и хранить в единой базе данные технологических журналов 1С, и делаем это. Скорость подготовки автоматизированного разбора данных двух других источников информации - Windows performance monitor и подсистемы Оценка производительности в значительной степени зависит от наличия реальных запросов по этим задачам. В ручном режиме мы это сейчас уже можем разбирать и, разумеется, разбираем, но возможности ручного режима по сравнению с автоматизированным в объемах сильно проигрывают.
Проекты, с которыми к нам обращаются, имеют разные причины неудовлетворительной производительности. Но ТОП-5 этих причин выглядит так:
Первые 4 причины прекрасно ловятся анализом технологического журнала. Оборудование при их наличии, как правило, недогружено или явно простаивает. Пятая - вопросом в лоб :)
Возможные методы решения для каждой из проблем.
Заметьте - в число наиболее распространенных причин проблем недостаточная производительность оборудования не входит. И как вариант их решения она не рассматривается. Все нужно решать по-другому.