3. Введение
• Производительность и надежность – главные ориентиры в
разработке линейки Docsvision 5
• Предпосылки
Увеличение масштаба внедрений
Повышение ожиданий клиентов
Изменение роли СЭД в деятельности предприятий
…
• Целевая программа: постоянное повышение
производительности и надежности на протяжении всего
жизненного цикла Docsvision 5!
Слайд: 3
www.docsvision.com
4. RoadMap выпуска платформы
Версия Docsvision 5.0 Docsvision 5.0 Docsvision 5.0
SR1 SR2
Функциональность Базовая Расширенная Корпоративная
Производительность До 50 До 500 До 5000
и надежность пользователей пользователей пользователей
Дата выпуска 15 мая 15 июня Сентябрь
Слайд: 4
www.docsvision.com
7. Оптимизации: сервер
• Новый сервис полнотекстового поиска
Позволяет выбрать данные, которые требуется индексировать
Снижает затраты на полнотекстовое индексирование
Поддерживает релевантность результатов поиска
Может быть вынесен на отдельную машину
• StorageServer
Оптимизирован алгоритм чтения данных и сериализации в Xml
Оптимизирован алгоритм конкатенации данных в представлениях
Оптимизирован алгоритм подсчета непрочитанных карточек
Слайд: 7
www.docsvision.com
8. Оптимизации: клиент
• Упрощение и ускорение установки клиентской части
Всего один инсталляционный пакет вместо 5
Не требует административных полномочий
• Локальное кэширование данных
Загружаемые данные (справочники, карточки) кэшируются на диске
клиента
Экономия трафика при следующих обращениях
Повышение быстродействия на узких каналах
Слайд: 8
www.docsvision.com
9. Оптимизации: Навигатор
• Новый Навигатор: отдельное .NET-приложение
• Не требует браузера!
• Автозапуск при старте Windows
+ Ускоряет первое обращение к Навигатору или карточкам по ссылке
-Постоянно задействует лицензию!
• Сворачивание в трей при закрытии
• Асинхронная загрузка данных
Хороший выигрыш на многоядерных процессорах
• Постраничная загрузка представлений и “Отмена”
Слайд: 9
www.docsvision.com
11. Оптимизации: карточки
• Асинхронная загрузка данных
Хороший выигрыш на многоядерных процессорах
• Вынесение медленных операций на сервер
• Предкэширование карточек при запуске Навигатора
Возможность гибкой настройки
• Пакетная загрузка данных (уменьшение количества
серверных вызовов)
• Отложенная инициализация элементов управления
• Вычисление ролей через специализированные хранимые
процедуры
Слайд: 11
www.docsvision.com
12. Оптимизации: Workflow
• Новый механизм активации ожидающих функций:
события
Push вместо pop
Полностью убирает “бесполезные” срабатывания функций
Максимальный выигрыш: задания, мониторинги, и т.п.
• Оптимизация хранимых процедур
Поиск активных процессов
Получение проходов функции
…
Слайд: 12
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 категорий
Слайд: 16
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: дискретная карта
Слайд: 17
www.docsvision.com
19. Индекс производительности
• Выделено 6 групп операций
Навигатор
Справочники
Карточки
Файлы
Представления
Workflow
• В каждой группе 10-15 операций
• Считается среднее время по каждой группе
• Общий индекс: среднее по всем группам
• Измеряется на минимальном клиенте!
Слайд: 19
www.docsvision.com
20. Группа Навигатор
• Запуск навигатора (старого)
• Запуск навигатора (нового)
• Открытие узла дерева навигатора (старого)
• Открытие узла дерева навигатора (нового)
• Экспорт в Excel 100 карточек
• Атрибутивный поиск
• Первичное удаление 100 карточек (старый)
• Первичное удаление 100 карточек (новый)
• Открытие карточки по ссылке (из нового навигатора)
• Открытие карточки по ссылке (из нового навигатора)
(навигатор свернут в трей)
Слайд: 20
www.docsvision.com
21. Группа справочники
• Открытие справочника сотрудников (нового)
• Открытие справочника контрагентов (нового)
• Отображение грида в универсальном справочнике
• Открытие справочника категорий (нового)
• Открытие справочник Виды карточек
• Открытие справочника Правила нумерации
• Открытие справочника Разметки
• Открытие справочника Состояния
• Открытие справочника скриптов
• Открытие справочника ссылок
• Открытие справочника Ролевая модель Слайд: 21
www.docsvision.com
22. Группа карточки
• Открытие карточки Документ (первое)
• Открытие карточки Документ (последующие)
• Сохранение карточки Документ
• Изменение состояния карточки Документ
• Отображение вкладки История карточки Документ
• Открытие карточки Задание (первое)
• Открытие карточки Задание (последующие)
• Сохранение карточки Задание
• Изменение состояния карточки Задание
• Отображение вкладки История карточки Задание
• Открытие Входящего документа (старый)
• Открытие Исходящего документа (старый)
• Открытие Внутреннего документа (старый)
Слайд: 22
www.docsvision.com
25. Группа Workflow
• Работа одного процесса во время выполнения 10 таких же
• Работа одного процесса во время выполнения 100 таких же
• Работа одного процесса во время выполнения 1000 таких же
• 1 процесс с функцией OR в цикле
• 1 подпроцесс создания 100 подпроцессов с заданиями
• 50 подпроцессов OR
• 100 подпроцессов с заданиями
• Подпроцессы с однократными «Сценариями»
• 50 подпроцессов OR
• 100 подпроцессов с заданиями
• Подпроцессы с зацикленными «Сценариями»
Слайд: 25
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,8
Workflow 42,9 12,4 12,4
Общий индекс 27,5 13,1 11,8
Слайд: 26
www.docsvision.com
27. Производительность под нагрузкой
• Отдельный сервер генерирует нагрузку, эмулируя
деятельность пользователей
• Для эмуляции используется среда Visual Studio Load Test
• Каждая бизнес-операция эмулируется программным
кодом, вызывающим методы сервера
• Измерения производятся на выделенном клиенте
Слайд: 27
www.docsvision.com
28. Портрет пользователя
• Интенсивность операций по ролям (100 пользователей)
за 1 час:
Регистрация документов – 32 штук
Добавление документа к карточке – 128 штук
Открытие карточки документа – 102 раза
Переход в другие папки – 104 раза
Выполнение поиска – 136 раз
Получение представления – 1 раз
Создание самостоятельных заданий – 20 штук
Открытие карточки задания – 104 раза
…
Слайд: 28
www.docsvision.com
30. Производительность: итоги и планы
• Достигнуты хорошие показатели производительности под
нагрузкой до 200 пользователей; удовлетворительные –
под нагрузкой до 500 пользователей
• Планы до сентября
добиться значения индекса производительности < 10
добиться хороших показателей под нагрузкой до 5000 пользователей
Слайд: 30
www.docsvision.com
32. Метрики надежности
• Что такое “Надежность” и как ее измерять?
• Варианты:
Стабильность (количество сбоев в единицу времени)
Наработка на отказ (время до первого сбоя)
Отказоустойчивость (реакция на внешние воздействия – отказ
оборудования и т.п.)
• Целесообразно использовать все эти метрики!
Слайд: 32
www.docsvision.com
33. Методика оценки надежности
• Показатели, зависящие от нагрузки (надежность сервера)
• Показатели, НЕ зависящие от нагрузки (надежность
клиента)
• Показатели надежности Workflow
• Внешние воздействия
• Использование ресурсов
Слайд: 33
www.docsvision.com
34. Метрики надежности: клиент
• Количество сбоев при автоматической установке клиентских
компонент из 50 попыток: сбоев нет
• Среднее время наработки на отказ (падения, зависания) навигатора:
6,7 часа
• Количество сбоев при обращении к виртуальной папке за 8 часов:
сбоев нет
• Возможность восстановления сессии после периода бездействия из
10 попыток: 10 успешно
• Количество сбоев выгрузки представлений в Excel из 10 попыток:
сбоев нет
• Количество визуальных интерфейсных дефектов за 8 часов
(изменение шрифтов, черные/серые области и т.д.): тема Silver - 0 шт;
тема Future - 1 шт; тема Blue - 0 шт; тема Classic - 0 шт
• …
Слайд: 34
www.docsvision.com
35. Метрики надежности: сервер
• Количество сбоев при применении представления к папке
с 1 000 000 карточек из 50 попыток при одновременной
работе 100 пользователей – нет сбоев
• Среднее количество сбоев при выполнении сложного
поискового запроса из 50 попыток при одновременной
работе 100 пользователей – нет сбоев
• Количество ошибок в логе сервера при типичной работе
пользователя под нагрузкой за 8 часов – 0 ошибок
• Количество ошибок в Журнале Windows/Приложения на
сервере DV при типичной работе пользователя под
нагрузкой за 8 часов – 0 ошибок
Слайд: 35
www.docsvision.com
36. Метрики надежности: Workflow
• Возобновление обработки активных бизнес-процессов после перезапуска
рабочего процесса WF из 50 попыток – 50 успешно
• Количество остановившихся по ошибке из 1000 бизнес-процессов за 120
часов – 0 штук
• Количество не разосланных заданий функцией Задание (из 20000 штук) – 0
штук
• Количество не отправленных почтовых сообщений из бизнес-процессов (из
2000 штук) – 0 штук
• Количество мёртвых блокировок при работе однотипных 1000 бизнес-
процессов за 120 часов – 0 штук
• Количество сбоев из-за превышения времени ожидания при перезапуске
сервиса WF из 50 попыток – 0 штук
• Количество не обнаруженных бизнес-процессов с зависшими или долго
обрабатывающимися функциями – 0 штук
Слайд: 36
www.docsvision.com
37. Внешние воздействия
• Клиент
Возможность продолжения работы клиента без перезапуска после отказа
локальной сети (50 попыток)
• Сервер
Возможность сохранения данных после потери соединения с сервером
SQL (50 попыток)
• Workflow
Возможность продолжения обработки бизнес-процессов после потери
соединения с сервером приложений (50 попыток)
Слайд: 37
www.docsvision.com
38. Использование ресурсов
• На клиенте
Расход и освобождение памяти при работе Навигатора
Расход GDI-ресурсов
• На сервере
Расход и освобождение памяти
Расход SQL-соединений
• Workflow
Расход и освобождение памяти
Расход и освобождение сессий к серверу DV
Слайд: 38
www.docsvision.com
39. Надежность: итоги и планы
• Достигнуты хорошие показатели надежности под
нагрузкой до 100 пользователей
• Цели до сентября
Добиться хороших показателей надежности сервера под нагрузкой до
5000 пользователей
Увеличить время наработки на отказ клиента > 8 часов
Добавить новые метрики и тесты надежности с учетом возможностей
кластеризации (корпоративная редакция)
Слайд: 39
www.docsvision.com
40. Заключение
• Повышение производительности и надежности –
долгосрочная целевая программа Доксвижн!
• Выработана методология и метрики
• Проводятся регулярные измерения
• Цикл: измерение->анализ->оптимизация->измерение…
• Улучшения: новые плановые версии платформы, сервис-
релизы и накопительные обновления
Слайд: 40
www.docsvision.com
41. Заключение (продолжение)
• Частая причина проблем с производительностью и
надежностью – плохая инфраструктура
• Наши цели:
Разработка методических рекомендаций по организации типовой
инфраструктуры для внедрения Docsvision
Предоставление услуг по консалтингу и оперативному решению проблем
с инфраструктурой
Реализация административных утилит для быстрой диагностики проблем
с инфраструктурой и повышения удобства управеления
Слайд: 41
www.docsvision.com