43
Производительнос Производительнос ть ть и надежность и надежность Docsvision Docsvision 5 5 Антон Варфоломеев Docsvision 13.06.2012

Производительность и надежность Docsvision 5

Embed Size (px)

Citation preview

Page 1: Производительность и надежность Docsvision 5

Производительность Производительность и надежность и надежность DocsvisionDocsvision 5 5

Антон ВарфоломеевDocsvision

13.06.2012

Page 2: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 2

Введение

Page 3: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 3

Введение

• Производительность и надежность – главные ориентиры в разработке линейки Docsvision 5

• Предпосылки Увеличение масштаба внедрений Повышение ожиданий клиентов Изменение роли СЭД в деятельности предприятий …

• Целевая программа: постоянное повышение производительности и надежности на протяжении всего жизненного цикла Docsvision 5!

Page 4: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 4

RoadMap выпуска платформы

Версия Docsvision 5.0 Docsvision 5.0 SR1

Docsvision 5.0 SR2

Функциональность Базовая Расширенная Корпоративная

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

До 50 пользователей

До 500 пользователей

До 5000 пользователей

Дата выпуска 15 мая 15 июня Сентябрь

Page 5: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 5

Оптимизация редакций

Page 6: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 6

Производительность:оптимизации

Page 7: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 7

Оптимизации: сервер

• Новый сервис полнотекстового поиска Позволяет выбрать данные, которые требуется индексировать Снижает затраты на полнотекстовое индексирование Поддерживает релевантность результатов поиска Может быть вынесен на отдельную машину

• StorageServer Оптимизирован алгоритм чтения данных и сериализации в Xml Оптимизирован алгоритм конкатенации данных в представлениях Оптимизирован алгоритм подсчета непрочитанных карточек

Page 8: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 8

Оптимизации: клиент

• Упрощение и ускорение установки клиентской части Всего один инсталляционный пакет вместо 5 Не требует административных полномочий

• Локальное кэширование данных Загружаемые данные (справочники, карточки) кэшируются на диске

клиента Экономия трафика при следующих обращениях Повышение быстродействия на узких каналах

Page 9: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 9

Оптимизации: Навигатор

• Новый Навигатор: отдельное .NET-приложение• Не требует браузера!• Автозапуск при старте Windows

+ Ускоряет первое обращение к Навигатору или карточкам по ссылке-Постоянно задействует лицензию!

• Сворачивание в трей при закрытии• Асинхронная загрузка данных

Хороший выигрыш на многоядерных процессорах

• Постраничная загрузка представлений и “Отмена”

Page 10: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 10

Выбор при установке

Page 11: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 11

Оптимизации: карточки

• Асинхронная загрузка данных Хороший выигрыш на многоядерных процессорах

• Вынесение медленных операций на сервер• Предкэширование карточек при запуске Навигатора

Возможность гибкой настройки

• Пакетная загрузка данных (уменьшение количества серверных вызовов)

• Отложенная инициализация элементов управления• Вычисление ролей через специализированные хранимые

процедуры

Page 12: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 12

Оптимизации: Workflow

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

• Оптимизация хранимых процедур Поиск активных процессов Получение проходов функции …

Page 13: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 13

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

Page 14: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 14

Методика измерений

• Измерение производительности без нагрузки (абсолютные значения) Индекс производительности

• Деградация производительности под нагрузкой (относительные значения) Ухудшение в % относительно абсолютных значений

Page 15: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 15

Характеристики сервера

• Сервер БД CPU: 2 * Intel Xeon (4 cores, 2.26 GHz) RAM: 6 * 4 GB 1333MHz HDD: 4 Tb

• Сервер приложений CPU: 2 * Intel Xeon (4 cores 2.26 GHz) RAM: 2 GB 1333MHz HDD: 3 * 250GB NS

• Сервер нагрузки CPU: 2 * Intel Xeon (4 cores, 2.26 GHz) RAM: 2 * 9 GB 1333MHz HDD: 2 * 250GB NS

Page 16: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 16

Тестовая БД

• Более 10000 папок, у 5% пользовательские иконки• Около 1 500 000 карточек документов • Около 3 000 000 файлов (от 0,5 до 1 МБ)• Около 3 500 000 заданий• 22 000 сотрудников в справочнике• 200 000 контрагентов в справочнике• 60 000 записей в универсальном справочнике• 300 видов документов• 200 ролей• 100 категорий

Page 17: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 17

Характеристики клиента

• Два разных клиента• Минимальный

CPU: Pentium IV 1 Ghz RAM: 1 Gb RAM Video: встроенное

• Рекомендуемый CPU: Core 2 Duo 2,5 Ghz RAM: 4 Gb Video: дискретная карта

Page 18: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 18

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

• Аналог оценки MS Windows

Page 19: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 19

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

• Выделено 6 групп операций Навигатор Справочники Карточки Файлы Представления Workflow

• В каждой группе 10-15 операций• Считается среднее время по каждой группе• Общий индекс: среднее по всем группам• Измеряется на минимальном клиенте!

Page 20: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 20

Группа Навигатор

• Запуск навигатора (старого)• Запуск навигатора (нового)• Открытие узла дерева навигатора (старого)• Открытие узла дерева навигатора (нового)• Экспорт в Excel 100 карточек• Атрибутивный поиск• Первичное удаление 100 карточек (старый)• Первичное удаление 100 карточек (новый)• Открытие карточки по ссылке (из нового навигатора)• Открытие карточки по ссылке (из нового навигатора)

(навигатор свернут в трей)

Page 21: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 21

Группа справочники

• Открытие справочника сотрудников (нового)• Открытие справочника контрагентов (нового)• Отображение грида в универсальном справочнике• Открытие справочника категорий (нового)• Открытие справочник Виды карточек• Открытие справочника Правила нумерации• Открытие справочника Разметки• Открытие справочника Состояния• Открытие справочника скриптов• Открытие справочника ссылок• Открытие справочника Ролевая модель

Page 22: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 22

Группа карточки

• Открытие карточки Документ (первое)• Открытие карточки Документ (последующие)• Сохранение карточки Документ• Изменение состояния карточки Документ• Отображение вкладки История карточки Документ• Открытие карточки Задание (первое)• Открытие карточки Задание (последующие)• Сохранение карточки Задание• Изменение состояния карточки Задание• Отображение вкладки История карточки Задание• Открытие Входящего документа (старый)• Открытие Исходящего документа (старый)• Открытие Внутреннего документа (старый)

Page 23: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 23

Группа файлы

• Добавление файла 100 Кб• Добавление файла 1Мб• Добавление файла 10 Мб• Сохранение файла 100 Кб• Сохранение файла 1Мб• Сохранение файла 10 Мб

Page 24: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 24

Группа представления

• 10 карточек (дайджест)• 100 карточек (дайджест)• 100000 карточек (дайджест)• 10 карточек (10 колонок)• 100 карточек (10 колонок)• 100000 карточек (10 колонок)

Page 25: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 25

Группа Workflow

• Работа одного процесса во время выполнения 10 таких же• Работа одного процесса во время выполнения 100 таких же• Работа одного процесса во время выполнения 1000 таких же• 1 процесс с функцией OR в цикле• 1 подпроцесс создания 100 подпроцессов с заданиями• 50 подпроцессов OR • 100 подпроцессов с заданиями • Подпроцессы с однократными «Сценариями»• 50 подпроцессов OR• 100 подпроцессов с заданиями• Подпроцессы с зацикленными «Сценариями»

Page 26: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 26

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

Группа Апрель Май ИюньНавигатор 70,7 16,4 12,6Справочники 3,9 3,7 3,3Карточки 4,8 3,5 3,5Файлы 5,8 5,2 4,2Представления 36,8 37,5 34,8Workflow 42,9 12,4 12,4

Общий индекс 27,5 13,1 11,8

Page 27: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 27

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

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

• Для эмуляции используется среда Visual Studio Load Test• Каждая бизнес-операция эмулируется программным

кодом, вызывающим методы сервера• Измерения производятся на выделенном клиенте

Page 28: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 28

Портрет пользователя

• Интенсивность операций по ролям (100 пользователей) за 1 час: Регистрация документов – 32 штук Добавление документа к карточке – 128 штук Открытие карточки документа – 102 раза Переход в другие папки – 104 раза Выполнение поиска – 136 раз Получение представления – 1 раз Создание самостоятельных заданий – 20 штук Открытие карточки задания – 104 раза …

Page 29: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 29

Измерения под нагрузкой

Время (сек)/% 1 100 200 500

БД 1: Запуск Навигатора 15 17 (13%) 17 (13%) 23 (53%)

БД 1: Открытие карточки Документ (первое)

3 3 (0%) 3,5 (16%) 6 (100%)

БД 1: Открытие карточки Документ (последующие)

1 1 (0%) 1 (0%) 1,5 (50%)

БД 2: Запуск Навигатора 18 20 (11%) 24 (33%) 33 (83%)

БД 2: Открытие карточки Документ (первое)

4 5 (25%) 6 (50%) 9 (125%)

БД 2: Открытие карточки Документ (последующие)

1 1,5 (50%) 1,5 (50%) 3 (200%)

Page 30: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 30

Производительность: итоги и планы

• Достигнуты хорошие показатели производительности под нагрузкой до 200 пользователей; удовлетворительные – под нагрузкой до 500 пользователей

• Планы до сентября добиться значения индекса производительности < 10 добиться хороших показателей под нагрузкой до 5000 пользователей

Page 31: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 31

Надежность

Page 32: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 32

Метрики надежности

• Что такое “Надежность” и как ее измерять?• Варианты:

Стабильность (количество сбоев в единицу времени) Наработка на отказ (время до первого сбоя) Отказоустойчивость (реакция на внешние воздействия – отказ

оборудования и т.п.)

• Целесообразно использовать все эти метрики!

Page 33: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 33

Методика оценки надежности

• Показатели, зависящие от нагрузки (надежность сервера)• Показатели, НЕ зависящие от нагрузки (надежность

клиента)• Показатели надежности Workflow• Внешние воздействия• Использование ресурсов

Page 34: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 34

Метрики надежности: клиент

• Количество сбоев при автоматической установке клиентских компонент из 50 попыток: сбоев нет

• Среднее время наработки на отказ (падения, зависания) навигатора: 6,7 часа

• Количество сбоев при обращении к виртуальной папке за 8 часов: сбоев нет

• Возможность восстановления сессии после периода бездействия из 10 попыток: 10 успешно

• Количество сбоев выгрузки представлений в Excel из 10 попыток: сбоев нет

• Количество визуальных интерфейсных дефектов за 8 часов (изменение шрифтов, черные/серые области и т.д.): тема Silver - 0 шт; тема Future - 1 шт; тема Blue - 0 шт; тема Classic - 0 шт

• …

Page 35: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 35

Метрики надежности: сервер

• Количество сбоев при применении представления к папке с 1 000 000 карточек из 50 попыток при одновременной работе 100 пользователей – нет сбоев

• Среднее количество сбоев при выполнении сложного поискового запроса из 50 попыток при одновременной работе 100 пользователей – нет сбоев

• Количество ошибок в логе сервера при типичной работе пользователя под нагрузкой за 8 часов – 0 ошибок

• Количество ошибок в Журнале Windows/Приложения на сервере DV при типичной работе пользователя под нагрузкой за 8 часов – 0 ошибок

Page 36: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 36

Метрики надежности: Workflow

• Возобновление обработки активных бизнес-процессов после перезапуска рабочего процесса WF из 50 попыток – 50 успешно

• Количество остановившихся по ошибке из 1000 бизнес-процессов за 120 часов – 0 штук

• Количество не разосланных заданий функцией Задание (из 20000 штук) – 0 штук

• Количество не отправленных почтовых сообщений из бизнес-процессов (из 2000 штук) – 0 штук

• Количество мёртвых блокировок при работе однотипных 1000 бизнес-процессов за 120 часов – 0 штук

• Количество сбоев из-за превышения времени ожидания при перезапуске сервиса WF из 50 попыток – 0 штук

• Количество не обнаруженных бизнес-процессов с зависшими или долго обрабатывающимися функциями – 0 штук

Page 37: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 37

Внешние воздействия

• Клиент Возможность продолжения работы клиента без перезапуска после отказа

локальной сети (50 попыток)

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

SQL (50 попыток)

• Workflow Возможность продолжения обработки бизнес-процессов после потери

соединения с сервером приложений (50 попыток)

Page 38: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 38

Использование ресурсов

• На клиенте Расход и освобождение памяти при работе Навигатора Расход GDI-ресурсов

• На сервере Расход и освобождение памяти Расход SQL-соединений

• Workflow Расход и освобождение памяти Расход и освобождение сессий к серверу DV

Page 39: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 39

Надежность: итоги и планы

• Достигнуты хорошие показатели надежности под нагрузкой до 100 пользователей

• Цели до сентября Добиться хороших показателей надежности сервера под нагрузкой до

5000 пользователей Увеличить время наработки на отказ клиента > 8 часов Добавить новые метрики и тесты надежности с учетом возможностей

кластеризации (корпоративная редакция)

Page 40: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 40

Заключение

• Повышение производительности и надежности – долгосрочная целевая программа Доксвижн!

• Выработана методология и метрики• Проводятся регулярные измерения• Цикл: измерение->анализ->оптимизация->измерение…• Улучшения: новые плановые версии платформы, сервис-

релизы и накопительные обновления

Page 41: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 41

Заключение (продолжение)

• Частая причина проблем с производительностью и надежностью – плохая инфраструктура

• Наши цели: Разработка методических рекомендаций по организации типовой

инфраструктуры для внедрения Docsvision Предоставление услуг по консалтингу и оперативному решению проблем

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

с инфраструктурой и повышения удобства управеления

Page 42: Производительность и надежность Docsvision 5

www.docsvision.comСлайд: 42

Вопросы?

Page 43: Производительность и надежность Docsvision 5

Спасибо за внимание!«ДоксВижн» 199155, Санкт-Петербург,наб. р. Смоленки, д. 33

+7 (812) 335-35-15 +7 (812) 335-35-32

[email protected] www.docsvision.com