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

13
Семинар партнеров фирмы «1С» Фирма «1С» 30 сентября – 2 октября 2005 г. Средства оценки производительности приложений на платформе 1С:Предприятие 8.0

Upload: helen-kopteva

Post on 15-Aug-2015

37 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: средства оценки производительности

Семинар партнеров фирмы «1С»Семинар партнеров фирмы «1С»

Фирма «1С»

30 сентября – 2 октября 2005 г.

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

приложений на платформе 1С:Предприятие 8.0

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

приложений на платформе 1С:Предприятие 8.0

Page 2: средства оценки производительности

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

Содержание

Общий подход к оценке производительности и оптимизации приложений на платформе 1С:Предприятие 8.0

Инструменты, используемые при анализе производительности и оптимизации

Принципы нагрузочного тестирование приложения

Диагностика и оптимизация клиент-серверного варианта использования 1С:Предприятия 8.0 на «низком уровне»

Page 3: средства оценки производительности

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

Уровни работы приложения

Уровень 2. Конфигурация

Уровень 3. Платформа 1С:Предприятия 8.0

Уровень 4. СУБД

Уровень 5. Операционная система и оборудование

Уровень 1. Автоматизированное рабочее место

Уровень 0. Автоматизируемые процессы предприятия

Page 4: средства оценки производительности

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

Диагностика, локализация и оптимизация проблем с производительностью

Проблема с производительностью:Проявляется (диагностируется) на уровне X

Локализуется (имеет причину) на уровне Y

Оптимизируется на уровне Z

При этом:Уровни X и Y чаще всего не совпадают

Уровни Y и Z так же могут не совпадать

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

Сценарий действий:Диагностирование проблемы на уровне X

Локализация проблемы на уровне Y

Поиск уровня Z, на котором возможно наиболее адекватное решение проблемы

Page 5: средства оценки производительности

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

Диагностика проблем производительности на уровнях0 и 1

Нагрузочное тестирование:Описание модели системы:

ТребованияКритерии работоспособностиПределы масштабируемости

Генерация тестовой базы с заданными параметрамиСценарий тестирования, включающий:

Виртуальных пользователейДействия виртуальных пользователейПоказатели производительности

– Время выполнения действия– Относительное время выполнения действия

Критерии для каждого показателя– Требования бизнес-логики– Относительное время на одной базе не должно увеличиваться– Относительное время на большей базе увеличивается незначительно

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

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

Page 6: средства оценки производительности

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

Диагностика проблем на других уровнях

Уровни 2 и 3. Прикладное решение и платформаИнструменты:

Режим замера производительности 1С:Предприятия 8.0Журнал регистрации

Симптомы:Неоправданно большое время выполнения отдельных операцийСообщения об ошибках блокировок (timeout и deadlok)Большое время отклика системы

Уровень 4. СУБД (только для клиент-серверного варианта использования):Инструменты:

– SQL Profiler– SQL Query Analizer

Симптомы:– Запрос выполняется неоправданно длительное время– План запроса содержит операции: Table Scan или Nested Loops

Уровень 5. Операционная система и оборудованиеИнструменты:

Performance MonitorКритерии:

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

Page 7: средства оценки производительности

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

Диагностика проблем на уровне СУБД. Общие сведения

Общие сведения:Проблемы проявляются на информационных базах большого объема

Использование файлового варианта для ИБ большого объема не типично

Рассмотрим средства диагностики проблем для клиент-серверного варианта

Уровень СУБД разделен на два подуровня:Уровень 4.1. Высокий уровень работы с данными. Запросы на языке Transact SQL

Уровень 4.2. Низкий уровень работы с данными. Планы запроса

Есть большая разница междузапросом на языке SQL и

операцией, которую будет выполнять SQL Server

Запрос может быть выполнен по-разному:Таблицы могут обрабатываться в разном порядке

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

Могут использоваться или не использоваться те или другие индексы

Объединение таблиц может осуществлятся несколькими разными способами

Page 8: средства оценки производительности

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

Диагностика проблем на уровне СУБД. Сценарий

Важно понимать, что:Разные планы - один результат запроса - за разное времяSQL сервер выбирает план на основании:

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

Кроме того на выбор плана может повлиять:Конфигурация компьютера, на котором работает SQL сервер:

– Количество процессоров– Объем оперативной памяти

Воздействовать на оптимизатор SQL сервера можно только косвенным образом

Сценарий диагностики проблем на уровне СУБД:Записать трассировку текущих обращений к базе данных (SQL Profiler)Просмотреть трассировку, обращая внимание на запросы, которые выполнялись в течение длительного времениПроанализировать планы выполнения «медленных» запросов, обращая внимание на следующие операции:

Table ScanNested Loops

Page 9: средства оценки производительности

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

Table Scan

Действие Table Scan свидетельствует о неоптимальной работе запроса, если:

TotalSubtreeCost достаточно великТаблица содержит большое количество записейКоличество возвращаемых записей незначительно

Опасность Table Scan в том, что время выполнения напрямую зависит от количества записей в таблице

Table Scan выполняется SQL сервером, если:Не существует подходящего индексаИндекс не обеспечивает достаточной селективностиВ запросе участвует большое количество полей, которые не содержатся в данном индексеА так же в результате ошибки оптимизатора

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

Добавление индекса может замедлить операции модификации данных!

Page 10: средства оценки производительности

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

Nested Loops

Операция Nested Loops свидетельствует о неоптимальной работе запроса в том случае если

Один из объединяемых подзапросов выполняется многократно (Executes > 1)

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

Nested Loops хорошо работает только в том случае, еслиОдин из подзапросов возвращает мало записей, удовлетворяющих условию объединения

Nested Loops – самый простой способ объединения двух таблиц

SQL сервер может выбирать план с Nested Loops, если:Нет актуальной статистикиВ запросе использованы сложные конструкции, включающие подзапросы и объединения подзапросовА так же в результате ошибки оптимизатора

Page 11: средства оценки производительности

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

Оптимизация запроса. Сценарий.

Желательно добиться устойчивой воспроизводимости ситуации. Для этого используйте:

Журнал регистрации Режим замера производительности

Сценарий оптимизации:Выполните реиндексацию таблиц информационной базыПопытайтесь подобрать индекс, подходящий для выполнения запроса:

Воспользуйтесь «Index Tuning Wizard» (ITW)Средствами конфигуратора создайте индекс в соответствии рекомендациями ITWЕсли ITW не дает рекомендаций, то запрос невозможно оптимизировать при помощи дополнительной индексацииПодходящий индекс не всегда может быть создан средствами 1С:Предприятия 8.0.

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

Попробуйте упростить запрос даже ценой его кажущегося «ухудшения»

Page 12: средства оценки производительности

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

Заключение

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

Большая часть проблем решается при помощи:Следования рекомендациям и стандартам разработки

Нагрузочного тестирования во время разработки

Оптимизации алгоритмов на уровне конфигурации

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

Анализ на уровне сервера SQL требует знания принципов работы MS SQL Server 2000 и владения SQL Profiler

Page 13: средства оценки производительности

Семинар партнеров фирмы «1С»Семинар партнеров фирмы «1С»

Фирма «1С»

30 сентября – 2 октября 2005 г.

Спасибо за внимание!Спасибо за внимание!